| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

21-01-2009, 09:55
|
|
SLSB02
Newbie
|
|
Registriert seit: Jul 2004
Beiträge: 79
|
|
preg_match in quelltext suchen
Hallo,
ich habe folgendes Problem. Ich möchte gerne einen Quelltext nach einem bestimmten Wert durchsuchen. Bis jetzt, habe ich folgendes:
PHP-Code:
$Start_ean = '<tr> <td>EAN Code</td>';
$End_ean = '</td>';
preg_match("#$Start_ean(.*)$End_ean#", $w, $ean);
$output_array[$products_model[$a]]['ean'] = $ean[1];
nur leider wird nichts gefunden. Der Quelltext, sieht so aus:
PHP-Code:
<tr> <td>EAN Code</td>
<td align="center">47110815</td> </tr>
ich würde mich freuen, wenn mir jemand weiterhelfen kann!?
Grüße aus Berlin
|

21-01-2009, 10:31
|
|
MelloPie
PHP Master
|
|
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
|
|
1. verwende preg_match_all
2. benutze die modifier s und U
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
|

21-01-2009, 10:34
|
|
SLSB02
Newbie
|
|
Registriert seit: Jul 2004
Beiträge: 79
|
|
Hallo MelloPie,
genau da ist ja mein Problem. Ich habe schon viele Versuche gestartet, die ich so bei google finden konnte. Vielleicht, kannst du mir dazu mal ein kleines Beispiel geben, ich wäre dir sehr verbunden!
|

21-01-2009, 11:26
|
ghostgambler
Master 
|
|
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
|
|
Na er hat dir doch zwei *konkrete* Hinweise gegeben. Damit kannst du doch arbeiten und dein Problem mal genauer angehen.
Google hat damit nix zutun...
|

21-01-2009, 11:34
|
|
SLSB02
Newbie
|
|
Registriert seit: Jul 2004
Beiträge: 79
|
|
Hallo,
ich habe versucht, über google eine Lösung zu finden. Mein Problem ist, dass ich nicht richtig verstehe, wie man diese:
#$Start_ean(.*)$End_ean#
am besten zusammensetzt. Entschuldigung, aber da hilft mir auch ein s & U nichts. Es gibt ja unendlichen Möglichkeiten, zwischen Anfang und Ende Werte anzugeben wie z.B. [0-9] usw... Aber ich finde die Lösung für s & U nicht? Leider hilft auch die php.net dabei nicht viel weiter oder ich habe was übersehen, dass kann auch sein...
|

21-01-2009, 11:39
|
|
hhcm
PHP Senior
|
|
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
|
|
Du weisst aber schon was s und u sein soll oder?
__________________
gruss Chris
Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
|

21-01-2009, 11:41
|
|
SLSB02
Newbie
|
|
Registriert seit: Jul 2004
Beiträge: 79
|
|
Hallo,
nein scheinbar, weiß ich das nicht. erklär es mir doch bitte einmal.
Ich danke dafür...
|

21-01-2009, 11:41
|
 |
fireweasel
Registrierter Benutzer
|
|
Registriert seit: Sep 2008
Ort: At home
Beiträge: 680
|
|
Re: preg_match in quelltext suchen
Zitat:
Original geschrieben von SLSB02
Ich möchte gerne einen Quelltext nach einem bestimmten Wert durchsuchen. Bis jetzt, habe ich folgendes:
PHP-Code:
$Start_ean = '<tr> <td>EAN Code</td>';
$End_ean = '</td>';
|
Ist das dein Suchmuster?
Zitat:
PHP-Code:
preg_match("#$Start_ean(.*)$End_ean#", $w, $ean);
$output_array[$products_model[$a]]['ean'] = $ean[1];
|
So lange du noch kein Reg-Ex-Ex-perte ;-) bist, aber auch, wenn du benutzerdefinierte Suchmuster verarbeiten möchtest, würde ich dir dringend die Funktion preg_quote() ans Herz legen. Die sorgt dafür, dass Zeichen, die in einem PCRE eine besondere Bedeutung haben "entwertet" werden.
Und gleichzeitig solltest du in solchen Fällen natürlich auf die lustige Variablenexpansion verzichten, die PHP mit seinen "doppelt-gequoteten" Strings bietet.
PHP-Code:
$sart_ean = '<tr> <td>EAN Code</td>';
$End_ean = '</td>';
$pcre = '/' .
preg_quote($start_ean, '/') .
'(.*?)' . // kuerzestmoeglicher (?) Text dazwischen (.*)
preg_quote($end_ean, '/') .
'/s'; // sorgt dafuer, dass . fuer ein beliebiges Zeichen steht
// findet das erste Auftreten deines Suchmusters
preg_match($pcre, $heuhaufen, $treffer);
Wenn du alle passenden Einträge finden möchtest, solltest du den Tipp mit preg_match_all() beherzigen.
__________________
PHP-Code:
class Brick implements Throwable {
// ...
}
|

21-01-2009, 11:49
|
|
hhcm
PHP Senior
|
|
Registriert seit: Jun 2005
Ort: Viersen, NRW
Beiträge: 1.829
|
|
Zitat:
Original geschrieben von SLSB02
Hallo,
nein scheinbar, weiß ich das nicht. erklär es mir doch bitte einmal.
Ich danke dafür...
|
Wenn du Google mit z.B mit Modifier+Regex gefüttert hättest, wärst du vielleicht selbst drauf gekommen. Das steht in so ziemlich jedem Tutorial.
Schau dir einfach mal
das an.
Erstens kannst du damit deine Ausdrücke testen und gleichzeitig findest du da auch ein Tutorial.
__________________
gruss Chris
Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|