Zdravím,
věřím, že nějaký zkušený guru mi poradí, zda by nešlo následující regulární výrazy trochu zjednodušit. Potřebuji ze stránky kešky vytáhnout jména kačerů, kteří zalogovali Found it. Napsal jsem si tedy následující skriptík (viz níže). A nyní dotaz: daly by se regulární výrazy více zjednodušit (např. jen do jednoho, kratši forma atd…)? Všem díky za ochotu.
<?php
$server = "www.geocaching.com";
$port = 80;
$fp = fsockopen($server,$port);
if($fp):
@$connection=mysql_Connect("mujserver","mujnick","mojeheslo");
mysql_select_db("mojedatabaze");
fputs($fp, "GET /seek/cache_details.aspx?guid=fda96c0e-5bb8-4a45-a0f9-b19325b078de&log=y HTTP/1.1\r\nHost:www.geocaching.com\r\n\r\n");
while ($line=fgets($fp)):
if (eregi("<a name",$line)):
$line = preg_replace("/(<img src='http:\/\/www.geocaching.com\/images\/icons\/icon_enabled.gif|<img src='http:\/\/www.geocaching.com\/images\/icons\/coord_update.gif|<img src='http:\/\/www.geocaching.com\/images\/icons\/icon_maint.gif|<img src='http:\/\/www.geocaching.com\/images\/icons\/icon_greenlight.gif|<img src='http:\/\/www.geocaching.com\/images\/icons\/icon_disabled.gif|<img src='http:\/\/www.geocaching.com\/images\/icons\/icon_sad.gif|<img src='http:\/\/www.geocaching.com\/images\/icons\/icon_note.gif)[^]]+?<\/a>/i","",$line);
// nyni mam pouze logy Found it
$line = preg_replace(" /<[^<]+?>/","",$line);
//nyni jsem se zbavil vsech html tagu
$line = preg_match_all("/(?<=[[:digit:]] by )[^><]+?(?= \()/i",$line,$pole);
//nyni mam jmeno kacera (je mezi jakoukoli cislici, kterou nasleduje slovo "by", a levou kulatou zavorkou)
for($i=0;$i<count($pole[0]);$i++) {
echo $pole[0][$i]."<br/>";
mysql_query("SET character_set_results=utf8, character_set_connection=utf8, character_set_client=utf8");
mysql_query("replace into mojetabulka values (‘’,‘".html_entity_decode($pole[0][$i],ENT_QUOTES,‘UTF-8’)."’)");
}
break;
endif;
endwhile;
endif;
echo "-----KONEC-------";
fclose($fp);
?>