Autor Zpráva
TomAsQo
Profil
ahoj, nudim sa, tak som si pisal regular na parsovanie adresy/adries z googlu (vid kod)

<?php
$text = "<span class="a">www.commondreams.org/headlines04/1106-30.htm - 25k - </span>";
$reg = "@<span class="a">([a-zA-z0-9.-/]+)@";
preg_match($reg, $text, $found_urls);

var_dump($found_urls);


?>



a tu sa stala vec nacakana... vratilo mi totiz

array(2) { [0]=> string(53) "www.commondreams.org/headlines04/1106" [1]=> string(37) "www.commondreams.org/headlines04/1106" }

cize neviem, ze kde ostalo to "-30.htm" :(
neviete, kde je chyba? dik ;)
DJ Miky
Profil
Pomlčku musíš ve výčtu znaků escapovat, tzn.:

[a-zA-z0-9.\-/]

BTW, a co jiné znaky v adrese? Spíš bych to rozsekal na všechno od toho <span> až do mezery.
TomAsQo
Profil
predosly bog fixed, zabudol som escapovat "-", ale teraz mam este jeden problem, totiz som si upravil skript na


<?php

$search_word = $_GET['search_word'];
$g_url = "http://www.google.sk/search?hl=sk&q=".$search_word;
$text = file_get_contents($g_url);


$reg = "@<span class="a">([a-zA-z0-9.-/?=&]+)@";
preg_match_all($reg, $text, $found_urls);

var_dump($found_urls);



?>


a ten mi uz vracia len prazdny array :(
TomAsQo
Profil
2Dj Miky: hh, si ma predbehol ;) pomozes aj s tymto? ;)
DJ Miky
Profil
Ověř si, zda v $text opravdu máš obsah stránky.

Před použitím v adrese bys měl $search_word projet fcí urlencode().
TomAsQo
Profil
v $text mam obsah stranky a a dodal som aj tu funkciu urlencode... nic nepomohlo ;(
DJ Miky
Profil
Místo
<span class="a">
zkus dát
<span class=a>

(letmý pohled do zdrojáku Google)
TomAsQo
Profil
jjjj, tam bol pes zakopany :) aj ked nechapem, lebo mozilla mi ukazuje s apostrofmi, a opera bez...
TomAsQo
Profil
pre ludi, ktore su este vacsie lamy ako ja(snad take existuju ;-]) uverejnujem konecny skript ;) snad sa niekomu niekedy zide ;)


<?php # 4.7.2007
$g_url = "http://www.google.sk/search?hl=sk&q=".htmlentities (urlencode ($_GET['search_word']) )."&btnG=Google+Search";
$text = file_get_contents($g_url);
$text=strip_tags($text, "<span></span>");
$reg = "@<span class=a>([a-zA-z0-9.-/?=&]+)@";
preg_match_all($reg, $text, $found_urls);
echo "najdenych ".count($found_urls[0])." vysledkov <br />";

//var_dump($found_urls);
foreach($found_urls[0] as $h){
$h=strip_tags($h);
echo "<a href="http://$h">$h</a><br> ";
}

?>


DJ Miky: diky za pomoc :)
DJ Miky
Profil
jjjj, tam bol pes zakopany :) aj ked nechapem, lebo mozilla mi ukazuje s apostrofmi, a opera bez...

Opera zřejmě zobrazuje původní nezměněný zdroják a Mozilla už nějaký upravený / rozparsovaný nebo tak něco.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0