E Emil W Medlem sedan mars 2009 512 inlägg Frågan 25 jan. 2010 15:19 #1 Hej alla på wF !
Jag försöker hämta text från min twitter
men jag får inte till det med preg_match.
någon som ser vad jag har gjort för fel ?
Här är koden
<?php
$file = file_get_contents('http://twitter.com/Emil_W');
$file = preg_match("/<span class=\"entry-content\">(.*?)</span>/",$file);
echo $file
?>
känns som det är lite omständigt att Screenscrapar det när du har ett XML data du kan hämta. sen får du väl bara ut en kollektion av träffarna i ditt regexp, så du måste ju rendera ut $file med?
for ($i = 0; $i < count($file[0]); $i++) {
echo $file[0][$i];
}
T The_Hulk Medlem sedan juni 2003 1 837 inlägg Har du läst på php.net hur preg_match fungerar?
http://se2.php.net/manual/en/function.preg-match.php
<?php
$m = array();
$file = file_get_contents('http://twitter.com/Emil_W');
if(preg_match("/<span class=\"entry-content\">(.*?)<\/span>/",$file, $m))
{
print $m[1];
}
?>
/red fixade ett kodfel
The_Hulk skrev:
Har du läst på php.net hur preg_match fungerar?
http://se2.php.net/manual/en/function.preg-match.php
<?php
$m = array();
$file = file_get_contents('http://twitter.com/Emil_W');
if(preg_match("/<span class=\"entry-content\">(.*?)</span>/",$file, $m))
{
print $m[1];
}
?>
Nu vet jag inte vem du menar om vem som har läst php.net , men ditt uttryck loopar inte ut träffarna, den tar väl bara ut den första <span class="entry-content">...</span> ? Du vill väl ändå loopar ut den?
Min kod är från Regexp buddy.
T The_Hulk Medlem sedan juni 2003 1 837 inlägg Självklart menade jag Emil W, ber om ursäkt för missförståndet. Eftersom han använde preg_match förväntade jag mig att han bara ville ha en träff. Han hade dock använt den lite fel.
Vill man få ut alla träffar ska man använda preg_match_all
<?php
$m = array();
$file = file_get_contents('http://twitter.com/Emil_W');
if(preg_match_all("/<span class=\"entry-content\">(.*?)<\/span>/",$file, $m, PREG_SET_ORDER))
{
foreach ($m as $n)
{
print $n[1];
}
}
?>
/red. Fixade ett kodfel
E Emil W Medlem sedan mars 2009 512 inlägg Det var att jag ville ha alla träffar.
Jag får detta när jag provar med din kod, det är när jag använder preg_match_all
Warning: preg_match() [function.preg-match]: Unknown modifier 'p' in C:\wamp\www\test.php on line 4
Men om du nu kan få datan som RSS/XML, varför ska du ge dig på preg_match överhuvudtaget?
En mycket bättre lösning skulle vara att du använder SimpleXML .
Kolla "Examples" > "Usage".
E Emil W Medlem sedan mars 2009 512 inlägg
MickeA.com skrev:
En mycket bättre lösning skulle vara att du använder SimpleXML .
Ok, ska ta och kika på detta.
T The_Hulk Medlem sedan juni 2003 1 837 inlägg
Emil W skrev:
Det var att jag ville ha alla träffar.
Jag får detta när jag provar med din kod, det är när jag använder preg_match_all
Warning: preg_match() [function.preg-match]: Unknown modifier 'p' in C:\wamp\www\test.php on line 4
Det var jag som missade att fixa till din kod helt och hållet.
Man måste lägga till \ vid </span> så att det blir <\/span>