mit $seite = "http://www.----de";
$parser_start = '<font class="storytitle">';
$parser_ende = '<b>- Weitere Termine in Vorbereitung -</b>';
$element = explode ($parser_start, implode ('', file ($seite)));
$result = explode ($parser_ende, $element[1]);
echo "<b>$result[0]</b>";
kann ma ja ne fremde seite auslesen , das funktioniert auch wunderbar , doch wie kann man aus dem ergebnis z.B. termine rausfiltern?
hab via google nichts nützliches gefunden
es müsste ja ein anfangswert und endwert geben ,.
regex :)
--> http://www.php-faq.de/ch/ch-regexp.html
--> http://tut.php-q.net/regex.html
mhh habs verstanden aba irgendwo steckt der wurm drin ..
###termine rausfiltern
error_reporting(E_ALL);
$suchtext=" <tr valign=\"top\">
<td class=\"a10nf\"><b>(.*)</b></td>
<td class=\"a10nf\"><b>(.*)</b></td>
<td class=\"a10n\"><b>(.*)</b> <b>(.*)
</b></td>
</tr>/siU";
preg_match_all($suchtext, "$result/\[0/\]", $ausgabe);
print $ausgabe[0][1][2][3];
hab ich bekomme aber immer in dem preg_match nen Fehler,.
weil du am anfang und ende des regex auch ein / schreiben musst
ala
$suchtext="/<tr valign=\"top\">
<td class=\"a10nf\"><b>(.*)</b></td>
<td class=\"a10nf\"><b>(.*)</b></td>
<td class=\"a10n\"><b>(.*)</b> <b>(.*)
</b></td>
</tr>/siU";
am ende stehts eh, aber anfang hast das vergessen,
ansonsten hab ich mir den regex NICHT genauer angeschaut
bekomme da solche fehler
: preg_match_all() [function.preg-match-all]: Unknown modifier 'b' in E:\xampp\xampp\htdocs\projects\buddylist\auslesen.php on line 29
Notice: Undefined offset: 0 in E:\xampp\xampp\htdocs\projects\buddylist\auslesen.php on line 30
jo weil du auch die / escapen musst
also \/, ein \ und ein /
$suchtext="#<tr valign=\"top\">
<td class=\"a10nf\"><b>(.*)</b></td>
<td class=\"a10nf\"><b>(.*)</b></td>
<td class=\"a10n\"><b>(.*)</b> <b>(.*)
</b></td>
</tr>#siU";
so sollte es klappen ;D was du als delimiter hinsetzt ist egal...es soll bloss ein sonderzeichen sein, kann auch ein % oder # sein statt /
wenn du dieses Sonderzeichen im RegEx verwenden willst, dann musst du es escapen ;)
deshalb verwend ich da lieber eine Raute, nachdem du sonst so viel escapen musst *g*
mhh ich göaub ich hab die eigentlich funktion verfehlt, bbzw da fehlt noch was?
und zwar will ich ja die gefunden werte dann mit $ausgabe[0], $ausgabe[1] abrufen , es geht aber nich,.
mach print_r($ausgabe) ;-) dann siehste es
als Grobversion
$data = file_get_contents('http://www.be-insi.de/modules.php?name=News&file=categories&op=newindex&catid=13');
if(preg_match_all('/<tr valign="top">.*?<td class="a10nf">(.*?)<\/td>.*?<td class="a10nf">(.*?)<\/td>.*?<td class="a10n">(.*?)<\/td>.*?<\/tr>/si',$data,$result)) {
//print_r($result);
foreach($result[1] as $index => $value) {
if($value != ' ') {
print $value.' - '.$result[2][$index].' - '.$result[3][$index]."\n";
}
}
} else {
print 'nein';
}
so,. hab hier mal ein neues problem ,. preg_match_all('/class=\"content_500\".*?<div align=\"left\".*?valign=\"top\">(.*?)<\/td>.*?valign=\"top\">(.*?)<\/td>.*?valign=\"top\">(.*?)<\/td>.*?/is',$data,$match);
#$result =
#print_r(array_filter($result, " "));
$result[1] = explode('<br>',$match[1][0]);
$result[2] = explode('<br>',$match[2][0]);
$result[3] = explode('<br>',$match[3][0]);
$result[1] = preg_replace("/<.*?>/","",$result[1]);
$result[2] = preg_replace("/<.*?>/","",$result[2]);
#<.*?,'.. |||/$will ich haben|| ')".*?</a>
##gibt /events/xxx.jpg zurück
/* $zeile zur Kontrolle ausgeben */
print "<br>".nl2br($zeile);
$result[3] = preg_replace("/<.*?>/","",$result[3]);
foreach($result[1] as $index => $value) {
das funzt zwar soweit allerdings steckt in dem $result[3] noch ein link drinnen den ich haben möchte , bekomme ihn aber nicht raus hat einer von euch ne idee?
die komplette zeile aus der der Link raus soll sieht so aus!
?????? <a class="link" href="#" onMouseOver="don('','../events/ladysnight.jpg')" onMouseOut="doff()">Ladies Night</a><br>
kann mir da keiner helfen wäre wirklich wichtig,..-
//oups fuck it
hab falsch geklickt! wollte einen thread erstellen... tut mir leid!
bezüglich eines captcha's...
Falls es auch was anderes sein darf:
Mawcha hat sich schon einige Male bewährt: http://forum.webstatt.org/thread.php?threadid=1263&hilight=mawcha
so nach mehrerer stunden probieren hab ich es geschafft! :D
$suchmuster = "/\<a .*\,'\.\.(.*?)'\).*?\<\/a\>/si";
$result[4] = preg_replace($suchmuster, "\\1", $result[3]);
allerdings bekomme ich jetzt keine ausgeba mehr bei $result[3][$index]