Mit preg_match Stringteil auslesen

Sasser

Erfahrenes Mitglied
Guten Abend!

Ich möchte in einem String eine Zahl auslesen.

PHP:
$content = file_get_contents ( $url );
preg_match_all ( "/(About )(.*)( results)/is", $content, $matches ); 
echo var_dump ( $matches );

Nun bekomme ich ausgegeben:

Code:
array(4) { [0]=>  array(1) { [0]=>  string(277) "About 13 results (0.10 seconds) 
Tip: Save time by hitting the return key instead of clicking on "search"

Kommt man über preg_match_all an die 13 bei "About 13 results" heran oder funktioniert das nur über explode()?
 
Zuletzt bearbeitet:
Du hast nur ein Teil deines Arrays gepostet. Da fehlen die Indexe 1-3....

Brauchst du wirklich preg_match_all oder reicht preg_match?

Teste deine Ausdrücke mal auf http://www.regex-tester.de/regex.html.

Anschliessend machst du dich mit Arrays vertraut, dann merkst du, dass explode() da gar nich zu suchen hat.
 
Ich habs nun doch anders gelöst.

Aber vielen Dank für die Seite, die ist echt nützlich. Habe ich bisher noch nie gefunden :-)
 
Es wäre nett wenn du deine Lösung präsentierst vielleicht gibt es User die auch mal ein derartiges Problem haben.
 
Hi

der reguläre Ausdruck sollte so aussehen:
PHP:
$str = "About 13 Results (0.10 seconds) ...";
$pattern = "/About (?<results>\d*) Results.*/";
preg_match($pattern,$str,$match);
echo "Results: ".$match["results"];
 
Zurück