Jump to content
viniciuzvieira

Pegando conteúdo de um atributo (href)

Recommended Posts

Galera, boa noite.

 

Estou participando de um desafio.

Já pensei em que forma resolver conceitualmente, mas ainda manjo pouco de PHP para codificar. Aqui vai a minha dúvida:

 

A grande tarefa é pegar todos os links que estão dentro do atributo "href="", referenciando só os que estão dentro da lista. E colocar dentro de um array, pois depois preciso pegar todos os links, e inserir em uma tabela do mysql.

 

Estou falando de PHP,  porque estou fazendo com o WordPress, mas podem me falar a solução em outra linguagem também.

<div class="pull-right article-index">
   <ul class="nav nav-tabs nav-stacked">
      <li class="toclink active">
         <a href="/home/index.php/lista-de-links?showall=" class="toclink active">Lista de Links</a>
      </li>
      <li><a href="/home/index.php/lista-de-links?showall=&amp;start=1" class="toclink">ANAC - Servi&ccedil;os</a></li>
      <li><a href="/home/index.php/lista-de-links?showall=&amp;start=2" class="toclink">ANAC - Manuais de Forma&ccedil;&atilde;o</a></li>
      <li><a href="/home/index.php/lista-de-links?showall=&amp;start=3" class="toclink">Meteorologia - Metar e TAF</a></li>
      <li><a href="/home/index.php/lista-de-links?showall=&amp;start=4" class="toclink">Meteorologia - Informa&ccedil;&otilde;es Gerais</a></li>
      <li><a href="/home/index.php/lista-de-links?showall=&amp;start=5" class="toclink">Plano de Voo - Naega&ccedil;&atilde;o A&eacuteeacute;rea</a></li>
      <li><a href="/home/index.php/lista-de-links?showall=1" class="toclink"> Todas as Páginas</a></li>
   </ul>
</div>
<div itemprop="articleBody">

 

 

Para inserir na tabela pensei no seguinte:

$array = array("link1","link2","link3"....);

for($c = 0; $c < $array.length; $c++){
   mysql_qeury("INSERT INTO tabela (campo) VALUES ('$array[$c]')");
}

 

Porém não sei como pegar todos esses links e colocar dentro de um array.

Espero que consigam entender o meu problema kk.

 

 

Share this post


Link to post
Share on other sites

Desta forma assim que carregar a pagina já vai estar pegando os links e enviando para um arquivo que fica responsável por coletar estes dados e salvar em um banco de dados. Da para alterar também e colocar o gatilho em um botão onde somente quando clicar ele coleta as urls e salva no banco de dados.

Espero que isso te ajude.

 

<div class="pull-right article-index">
   <ul class="nav nav-tabs nav-stacked">
      <li class="toclink active">
         <a href="/home/index.php/lista-de-links?showall=" class="toclink active">Lista de Links</a>
      </li>
      <li><a href="/home/index.php/lista-de-links?showall=&amp;start=1" class="toclink">ANAC - Servi&ccedil;os</a></li>
      <li><a href="/home/index.php/lista-de-links?showall=&amp;start=2" class="toclink">ANAC - Manuais de Forma&ccedil;&atilde;o</a></li>
      <li><a href="/home/index.php/lista-de-links?showall=&amp;start=3" class="toclink">Meteorologia - Metar e TAF</a></li>
      <li><a href="/home/index.php/lista-de-links?showall=&amp;start=4" class="toclink">Meteorologia - Informa&ccedil;&otilde;es Gerais</a></li>
      <li><a href="/home/index.php/lista-de-links?showall=&amp;start=5" class="toclink">Plano de Voo - Naega&ccedil;&atilde;o A&eacuteeacute;rea</a></li>
      <li><a href="/home/index.php/lista-de-links?showall=1" class="toclink"> Todas as Páginas</a></li>
   </ul>
</div>
<div itemprop="articleBody">

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript">
	$(document).ready(function () {
		var links = new Array();
		// Busca os links e coloca no array.
		$("li a").each(function(){
			links.push($(this).attr('href'));
		});
		// envia para uma página onde você pega estes dados com o php e salva no banco.
		$.ajax({
			type: "POST",
			url: "pagina.php",
			data: {'links':links},
			success: function(msg){
				alert(msg);
			}	
		});
	});
</script>

 

Share this post


Link to post
Share on other sites
$content = file_get_contents('pagina.html');
preg_match_all('/href\="(.*?)"/', $content, $matchs);
array_shift($matchs);
$result = array_filter($matchs[0]);

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By thgsousa312
      uma função que recebe uma frase e uma palavra antiga e uma palavra nova. A função deve retornar uma string contendo a frase original, mas com a última ocorrência da palavra antiga substituída pela palavra nova. A entrada e saída de dados deve ser feita no programa principal. Exemplo:  
      Frase: “Quem parte e reparte fica com a maior parte”
      Palavra antiga: “parte”  Palavra nova: “parcela”
      Resultado a ser impresso no programa principal: “Quem parte e reparte fica com a maior parcela”
       
      function trocarNome(){
              
          var frase = document.getElementById("frase").value;
          var strAntiga = document.getElementById("strAntiga").value;
          var strNova = document.getElementById("strNova").value;
          //frase = frase.split(" ");
          var a = frase.lastIndexOf(strAntiga);
          var fras2 = frase.lastIndexOf(strAntiga).replace(strAntiga,strNova);
          document.getElementById("demo").innerHTML = "Certo";
      }
    • By emmanuelsiqueira30
      Estou tentando inserir os valores de uma matrícula e gerar já as parcelas das mensalidades.
      Agradeço toda ajuda possível.
       
      cadMatriculaModel.php
      <?php include("../Controller/conexao.php"); include("../Controller/util.php"); header('Content-Type: text/html; charset=utf-8'); $id_aluno = $_POST['id_aluno']; $id_curso = $_POST['id_curso']; $data_matricula = date("Y-m-d"); $codunico_matricula = bin2hex(random_bytes(8)); $tipo_pag_matricula = $_POST['tipo_pag_matricula']; $dia_venc_matricula = $_POST['dia_venc_matricula']; $n_parc_matricula = $_POST['n_parc_matricula']; $sql_valor_curso = "SELECT * FROM curso WHERE id_curso = $id_curso"; $result_valor_curso = mysqli_query($con,$sql_valor_curso); $row_valor_curso = mysqli_fetch_assoc($result_valor_curso); $valor_curso = $row_valor_curso['valor_curso']; $dt_curso_ini = $row_valor_curso['data_inicio_curso']; $dt_curso_fim = $row_valor_curso['data_fim_curso']; $dif = strtotime($dt_curso_fim) - strtotime($dt_curso_ini); $periodo_curso_meses = floor($dif / (60 * 60 * 24 * 30)); $valor_parc = intval($valor_curso) / $periodo_curso_meses; $sqlmatricula = "INSERT INTO matricula (id_aluno,id_curso,data_matricula,codunico_matricula,tipo_pag_matricula,dia_venc_matricula,n_parc_matricula) VALUES ('$id_aluno','$id_curso','$data_matricula','$codunico_matricula','$tipo_pag_matricula','$dia_venc_matricula','$n_parc_matricula')"; $resultmatricula = mysqli_query($con,$sqlmatricula); $ultimamatricula = mysqli_insert_id($con); if($resultmatricula == true){ //echo "<script>alert('Matrícula realizada com sucesso.');</script>"; $x = 1; while($x >= $n_parc_matricula){ //for ($x = 0; $x == $n_parc_matricula; $x++) { /* $dia = date("d"); $mes = date("m"); $ano = date("Y"); $dt_venc_pr = date("Y/m/d",strtotime("+".$x." month",mktime(0, 0, 0,$dia,$mes,$ano))); echo $dt_venc_pr; */ $sqlpr = "INSERT INTO parcelareceber (id_matricula,id_aluno,id_curso,valor_parc_pr,dt_pag_pr) VALUES ('$ultimamatricula','$id_aluno','$id_curso','$valor_parc','$data_matricula')"; $resultpr = mysqli_query($con,$sqlpr); echo $sqlpr; if($resultpr == true){ echo "<script>alert('Parcelas geradas com sucesso.');</script>"; }else { echo "<script>alert('Erro na inserção das parcelas.');</script>"; echo $resultpr; } } echo $x; echo $n_parc_matricula; }else{ } cadMatriculaView.php
      <!DOCTYPE html> <html> <title>Matrícula do aluno</title> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> </head> <body> <?php include 'menuView.php'; ?></br></br> <?php ini_set( 'default_charset', 'UTF-8' ); ini_set( 'mbstring.http_output', 'UTF-8' ); ini_set( 'mbstring.internal_encoding', 'UTF-8' ); header("Content-Type: text/html; charset=UTF-8",true); ?> <font face="verdana" size="4"> <form action="../Model/cadMatriculaModel.php" method="POST"> <fieldset> <legend>CONSULTA DE ALUNO</legend> <label for="proprietario_id_prop">Digite o CPF do aluno: </label> <input type="text" class="form-control" name="textbox" id="textbox" placeholder="Digite CPF do aluno"></br> ALUNO: <select class="form-control" name="id_aluno" id="select" style="width: 400px"> <?php include ("../Controller/conexao.php"); $query = "SELECT * FROM aluno"; $consulta = mysqli_query($con,$query); while ($dados = mysqli_fetch_assoc($consulta)) { ?> <option value="<?php echo $dados['idaluno']; ?>"><?php echo $dados['cpfaluno'] . " - " . $dados['nomealuno']; ?></option> <?php } ?> </select></br> </fieldset> <fieldset> <legend>ESCOLHA DO CURSO</legend> CURSO: <select class="form-control" name="id_curso" id="select"> <?php include ("../Controller/conexao.php"); $query = "SELECT * FROM curso"; $consulta = mysqli_query($con,$query); while ($dados = mysqli_fetch_assoc($consulta)) { ?> <option value="<?php echo $dados['id_curso']; ?>"><?php echo $dados['nome_curso'] . " - " . $dados['turno_curso']; ?></option> <?php } ?> </select></br> </fieldset> TIPO DE PAGAMENTO: <select name="tipo_pag_matricula"> <option value="1">A PRAZO</option> </select></br> DIA DO VENCIMENTO: <input type="text" name="dia_venc_matricula" maxlength="2"> NÚMERO DE PARCELAS: <input type="text" name="n_parc_matricula" maxlength="2"><br> <span style="color: red; font-size: 8pt">* Campos obrigatórios.</span></br> <button type="submit" name="btninserir">INSERIR MATRÍCULA</button> </form> </font> <script> jQuery.fn.filterByText = function(textbox, selectSingleMatch) { return this.each(function() { var select = this; var options = []; $(select).find('option').each(function() { options.push({value: $(this).val(), text: $(this).text()}); }); $(select).data('options', options); $(textbox).bind('change keyup', function() { var options = $(select).empty().data('options'); var search = $(this).val().trim(); var regex = new RegExp(search,"gi"); $.each(options, function(i) { var option = options[i]; if(option.text.match(regex) !== null) { $(select).append( $('<option>').text(option.text).val(option.value) ); } }); if (selectSingleMatch === true && $(select).children().length === 1) { $(select).children().get(0).selected = true; } }); }); }; $(function() { $('#select').filterByText($('#textbox'), false); $("select option").click(function(){ alert(1); }); }); </script> </body> </html> E também est[a dando esse erro Notice: Undefined index: dia_venc_matricula in C:\xampp\htdocs\curso\Model\cadMatriculaModel.php on line 15 mas já verifiquei a variávewl e está correta.
    • By luigiferrari
      Boa Tarde, sou iniciante no php, mas acho q isso seria coisa simples de se fazer. Porem não estou conseguindo...
      Se puderem me ajudar. 
      Agradeço desde já!


    • By winter2018
      Boa tarde galera 
       
      Preciso por favor de uma ajuda.
      Estou a criar um sistema de cadastro de currículos em php.
       
      Preciso que ao escolher  as línguas que o usuário falar, essas informações sejam armazenadas num array para depois serem inseridas  no  mysql junto com outros campos, como  nome,  idade, etc.
       
       
      Sei programar em php mas não  tenho ideia de como fazer isso.
       
      Por favor me ajudem 
       
       
      Winter 2018
    • By Tuzzolino
      Boa tarde gente,
       
       
      Estou fazendo  um site  e  na hora que eu vou compartilhar ele no whatsapp  ele tá pegando o link corretamente mas ao invés de aparecer o titulo aparece somente o description  e não pega a miniatura da imagem  alguém tem algum exemplo de como  deveria ser ?
       
       
      A  imagem  é carregada assim 
       
      <amp-img height="320" width="470" id="img" src="890x610.jpg" layout="responsive" class="i-amphtml-element i-amphtml-layout-responsive i-amphtml-layout-size-defined i-amphtml-layout" i-amphtml-layout="responsive"><i-amphtml-sizer style="padding-top: 68.0851%;"></i-amphtml-sizer><img decoding="async" amp-img-id="img" src="890x610.jpg" class="i-amphtml-fill-content i-amphtml-replaced-content"></amp-img>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.