Willkommen in der Webstatt Zum Webstatt Blog und Stories
Bonze am 15.10.06 18:09

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 ,.

netcup.de Warum gibt es hier Werbung?
Franky Franky am 15.10.06 19:20

regex :)
--> http://www.php-faq.de/ch/ch-regexp.html
--> http://tut.php-q.net/regex.html

Bonze am 15.10.06 21:22

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,.

brainnrg am 15.10.06 21:26

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

Bonze am 15.10.06 21:32

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

brainnrg am 16.10.06 00:39

jo weil du auch die / escapen musst
also \/, ein \ und ein /

nuit nuit am 16.10.06 13:37

$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*

Bonze am 16.10.06 14:26

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,.

Franky Franky am 16.10.06 18:07

mach print_r($ausgabe) ;-) dann siehste es

Michael Michael am 16.10.06 18:26

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 != '&nbsp;') {
print $value.' - '.$result[2][$index].' - '.$result[3][$index]."\n";
}
}
} else {
print 'nein';
}

Bonze am 27.10.06 17:31

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>

Bonze am 28.10.06 16:37

kann mir da keiner helfen wäre wirklich wichtig,..-

web4 am 28.10.06 18:29

//oups fuck it
hab falsch geklickt! wollte einen thread erstellen... tut mir leid!
bezüglich eines captcha's...

Al3x0r Al3x0r am 28.10.06 18:33

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

Bonze am 30.10.06 17:29

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]

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt