Pegando conteúdo de um atributo (href)

1 resposta
htmljavascriptmysqlphp
Viniciusvieira04

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.

1 Resposta

G

Com PHP não conheço algum jeito de pegar os atributos href, mas você pode usar javascript para isso e passar para o php utilizando ajax.

Javascript:

$(document).ready(function () {

//Percorre todos os 'li'
$('ul li').each(function(){

	//Chama o arquivo PHP que vai adcionar o link a tabela
	$.ajax({
          type: "get",
          url: "pagina_que_insere_no_banco.php",
          data: { link: $(this).children('a').attr('href') },
          dataType: 'html',
          contentType: "html"
	  }).done(function(obj) {

	        //Retorno de sucesso
	        //A variavel obj é o retorno que vai vir da pagina PHP

	  });

});

No PHP você acessa o link enviado por $_GET[‘link’] e com esse dado você faz a query para para inserir no banco de dados.

OBS: Nesse exemplo vai inserir o link no banco a cada passada de each, então vai ser chamado o ajax varias vezes, tem como guardar todos os links em um array e passar o array via ajax, mas preferi fazer assim.

Criado 23 de outubro de 2017
Ultima resposta 26 de jul. de 2018
Respostas 1
Participantes 2