Testa något i stil med:
preg_match('/<a href="([^"]+)"[^>]*>('.preg_quote($word).')<\/a>/is', $str, $match);
Alternativt preg_match_all om du förväntar dig flera träffar på varje ord.
26 svar · 758 visningar · startad av Web-Tor · sida 2 av 2
Den här koden kommer att skiva ut "foo". Hur gör jag för att den istället ska skriva ut "6351529770" när den får träff på "foo"? Jag kan alltså inte ändra på words-arrayen för att få den att söka efter "6351529770" direkt. <? $str='dSI(0,0,6351529770,"foo and some more stuff",0,1)'; $words=array('foo','bar'); foreach ($words as $word){ if (pregmatch('/'.$word.'/is',$str,$match)){ echo
Läs frågan i sin helhet →Testa något i stil med:
preg_match('/<a href="([^"]+)"[^>]*>('.preg_quote($word).')<\/a>/is', $str, $match);
Alternativt preg_match_all om du förväntar dig flera träffar på varje ord.
För att vara på den säkra sidan ändrade jag lite men i stort sett ser det ut att funka. Tack igen :)
preg_match_all('/<a href="([^"]+)"[^>]*>[^"]*('.preg_quote($word).')[^"]*<\/a>/is',$str,$match)
Shit!
Ser nu att den bara plockar ett resultat fastän jag använder preg_match_all (). Vad kan det bero på?
Hur ser din aktuella kod ut nu ?
<?
function find_numbers($str) {
$words=array('presley');
global $svar;
foreach ($words as $word){
if (preg_match_all('/<a href="([^"]+)"[^>]*>[^"]*('.preg_quote($word).')[^"]*<\/a>/is',$str,$match)){
$svar.='<a href='.$match[1][0].'>'.$match[2][0].'</a><br>';
}
}
if ($svar)
echo $svar;
else
echo "Ingen träff";
}
$page='http://search.ebay.com/elvis-sandwich_W0QQcatrefZC6QQcatrefZC6QQcoactionZcompareQQcoentrypageZsearchQQcopagenumZ1QQfromZR10QQsojsZ1QQsosortpropertyZ1QQsospellrecommendationZ1QQsotrtypeZ1QQsotrvalueZ1';
$page=file_get_contents($page);
find_numbers($page);
?>
Du hämtar endast första elementet från arrayerna som kan innehålla flera värden.
if (preg_match_all('/<a href="([^"]+)"[^>]*>[^"]*('.preg_quote($word).')[^"]*<\/a>/is', $str, $match)){
for ($i=0; $i<count($match[1]); $i++) {
$svar.='<a href='.$match[1][$i].'>'.$match[2][$i].'</a><br>';
}
}
Ah! Visst är det så.
Tack för 15:e gången. ;)