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 viniciusfroner
      Boa noite, gostaria de saber se alguém conhece algum plug-in que gere esse tipo de mapa, no caso a antiga API do google que fazia isso está off..
       
       
      <div> <iframe style="border:0; width: 100%; height: 350px;" src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d12097.433213460943!2d-74.0062269!3d40.7101282!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0xb89d1fe6bc499443!2sNome+SegundoNome!5e0!3m2!1smk!2sbg!4v1539943755621" frameborder="0" allowfullscreen></iframe> </div>  
    • By klasss
      Olá a todos, 

      Tenho aqui um erro parvo não estou a ver como resolver . 

      Na minha View tenho um botão que será para fazer a aprovação de documentos , que abre uma modal para fazer a confirmação : 
      O problema é que quis fazer a mesma coisa para rejeitar. 
       
      <a href="{{route('despesas.modal', $item)}}" ><i class="fas fa-check text-info mr-1"></i></a> <a href="{{route('despesas.modal2', $item)}}" ><i class="fas fa-ban text-danger mr-1"></i></a> <?php if(@$id != ""){ echo "<script>$('#modalaceitar').modal('show');</script>"; } ?> <?php if(@$id != ""){ echo "<script>$('#modalrejeitar').modal('show');</script>"; } ?> Será que consigo validar por exemplo criando um ID nos dois botões?  
       
      Obrigado!
    • By b2black
      Estava vendo para atualizar o Windows pro 11, e notei isso no site da Microsoft, alguém sabe qual repositorio, ou como pesquisar para desenvolver algo similar?
      Quando você rola a página, o menu fica transparente.
       
      Explore Windows 11 OS, Computers, Apps, & More | Microsoft
    • By Marcos RJ
      Bom dia, boa tarde, boa noite colegas.
       
      Tenho um projeto onde conterá diversos subdomínios. Ex.:
      empresa1.site.com.br empresa2.site.com.br empresa3.site.com.br Esses subdomínios acessarão o sistema que está dentro do seguinte diretório:
      site.com.br/sistema/ Gostaria de fazer com que os subdomínios acessassem o sistema sem alterar a url, pois o objetivo é quando fizer quaisquer alterações e/ou inclusões de novos recursos, não tenhamos a necessidade de fazer isso dentro de todos os subdomínios, haja vista que serão dezenas ou até mesmo centenas de subdomínios. As minhas tentativas foram diretamente no .htaccess:
      RewriteEngine on RewriteCond %{HTTP_HOST} ^empresa1.site.com$ [OR] RewriteCond %{HTTP_HOST} ^www.empresa1.site.com$ RewriteRule ^(.*) http://www.site.com/sistema/$1?key=empresa1 [P,L] E o PHP ficou dessa forma:
       
      $diretorio = $_REQUEST["key"]; if($directory != null){    require "http://".$diretorio.".site.com.br/sistema/class/conectCass.php"; }else{  require "conectClass.php";  } Mas não deu certo. Tentei diretamente pelo PHP, mas quando clico no link criado, ele me obriga que a página do link esteja dentro dos subdiretórios. Em cada subdomínio coloquei da seguinte forma:
      include 'sistema/'; E no index.php do diretório sistema/:
      $host = $_SERVER['SERVER_NAME']; $host = str_replace(['www.', '.site.com.br', 'site.com.br'], '', $host); if($host == '') {     // entra o conteúdo do sistema } else {     // Entra o conteúdo do subdomínio } Mas também não funcionou. Como eu poderia resolver isso?

      Muito obrigado!
    • By viniciusfroner
      Bom dia, quero fazer um botão onde ao der o click pelo pc leve a uma página de contato para o whatsapp e pelo celular leve o número de contato a discagem direta.
      Procurei em alguns lugares mas o método de implementação que encontrei dependeria de codigos javascript que pra mim ainda são muito complexos, como por exemplo:
       
      function detectar_mobile() { var check = false; //wrapper no check (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera); return check; } <a href="" class="get-started-btn scrollto">Ligue para nós</a>  
×

Important Information

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