2016-05-23 9 views
0

Ich habe diese Saite:aus dem String holt nur die erste Zeile

error_id: 44 
error_de: wrong number : 565 

Jetzt möchte ich alle Vorkommen des Wertes von error_id zu bekommen. Wie kann ich das machen?

+0

'preg_match ('~ fehler_id: \ s * \ K \ d + ~', $ string)' –

+0

Einschließlich 'erro r_de' auch? – chris85

Antwort

1
<?php 

if (preg_match('/error_id: (\d+)/', $string, $matches)) { 
    print_r($matches); 
} 

Ich denke, Sie wollen $matches[1] verwenden, aber ich kann mich nicht erinnern, aus der Hand!

1
<?php 

    // Your string. 
    $string = 'error_id: 44 error_de: wrong number : 565'; 

    // Find the error id from your string ($string). 
    if(preg_match('/error_id\:\s+([\d]+)/', $string, $matches)) 
    { 

     // Echo out the error id number 
     echo $matches[1]; 

    } 

Weitere Informationen zu preg_match finden Sie unter http://php.net/manual/en/function.preg-match.php.

1

Sie müssen preg_match verwenden _all, weil es mehr als eine ist

preg_match_all("/error_id:\s+(\d+)/", $theString, $errorIDs); 
Var_dump($errorIDs[1]); 

Beispiel Arbeiten, klicken preg_match_all
http://www.phpliveregex.com/p/fMH

Edit (wenn ich richtig verstanden?): Wenn Sie das brauchen "Falsche Nummer" Teil verwenden Sie auch dieses Muster: error_id:\s+(\d+).error_de: (.*) : (\d+)