2014-09-22 17 views
5

Ich versuche, Telefonnummern mit [versteckt] zu ersetzen und zeigen sie wieder auf klicken. Es funktioniert gut, wenn es nur eine Nummer gibt. Aber wenn es mehr gibt, versteckt es es, aber das Problem ist, dass es die gleiche Zahl für beide versteckte Felder zurückgibt.PHP versteckt mehrere Telefonnummern

$check ='111 111 1111/222 222 2222';  
preg_match('/[(]*\d{3}[)]*\s*[.\- ]*\d{3}[.\- ]*\d{4}/', $check, $phone_matches); 
echo sizeOf($phone_matches); //returns 1, why not 2?? 

Ziemlich viel, wenn Sie mir die sizeOf($phone_matches) bekommen kann helfen, die richtige Menge zu zeigen, sollte ich von dort gut sein!

EDIT:

for($i=0; $i<sizeOf($phone_matches[0]); $i++){ 
    $check = preg_replace('/[(]*\d{3}[)]*\s*[.\- ]*\d{3}[.\- ]*\d{4}/', '<span class="hide">'.$phone_matches[0][$i].'</span><span class="show">show phone</span>', $check); 
} 

echo $check; 
+3

Versuchen 'preg_match_all': http://php.net/manual/en/function.preg-match-all.php –

Antwort

5

Sie wollen nicht preg_match_all, verwenden preg_match

preg_match_all('/[(]*\d{3}[)]*\s*[.\- ]*\d{3}[.\- ]*\d{4}/', $check, $phone_matches); 
print_r($phone_matches); 

Aber beachten Sie, dass sizeof($phone_matches) noch 1 sein wird, da die Anordnung der Spiele tatsächlich $phone_matches[0] ist.

Um durch alle Spiele durchlaufen Sie tun würde:

foreach ($phone_matches[0] as $match) { 
    //Do something with $match 
} 

Aber für das, was du bist tatsächlich zu erreichen versuchen, gibt es keine Notwendigkeit für preg_match_all alle an. Eine einfache einzeilige preg_replace wird der Trick:

$check = preg_replace('/[(]*\d{3}[)]*\s*[.\- ]*\d{3}[.\- ]*\d{4}/', '<span class="hide">$0</span><span class="show">show phone</span>', $check); 
+0

in Ordnung. Jetzt, wie kann ich den Scheck für $ phone_matches ausführen? Wenn ich sizeOf ($ phone_matches) mache, bekomme ich noch 1 – BragDeal

+0

@ user235196 Siehe meine Bearbeitung. – AlliterativeAlice

+0

Wie kann ich die korrekte Anzahl gefundener Telefone abrufen? In diesem Fall, wie kann ich 2 bekommen? – BragDeal

Verwandte Themen