2010-09-24 7 views
0

J'ai un problème avec preg_match_all. Alors que preg_match renvoie la totalité de la correspondance en tant que premier élément du tableau, preg_match_all ne le fait pas - le premier tableau est vide. Au moins avec le motif que j'ai choisi (je n'ai pas essayé les autres puisque c'est celui dont j'ai besoin) ça ne marche pas. Voici mon code:preg_match_all ne répond pas correspond au tableau?

preg_match_all("/<\?\?(\t|)?translate(\t|)?;(\t|)?(.*)(\t|)?\?\?>/U", $file, $translate_info); 

Le modèle lui-même travaille et la production de résultats toujours manipuler.

+1

Pouvez-vous poster les données que vous essayez de faire correspondre contre? – Cfreak

Répondre

0

Mise à jour selon les nouvelles données: les détails

$file = '<?? translate ; foo bar??>'; 
$res = preg_match_all('/<\?\?(\t|)?translate(\t|)?;(\t|)?(.*)(\t|)?\?\?>/U', $file, $translate_info); 
echo "res='$res'\n"; 
var_dump($translate_info); 

Works pour moi, cela donne:

res='1' 
array(6) { 
    [0]=> 
    array(1) { 
    [0]=> 
    string(26) "<?? translate ; foo bar??>" 
    } 
    [1]=> 
    array(1) { 
    [0]=> 
    string(1) " " 
    } 
    [2]=> 
    array(1) { 
    [0]=> 
    string(1) " " 
    } 
    [3]=> 
    array(1) { 
    [0]=> 
    string(0) "" 
    } 
    [4]=> 
    array(1) { 
    [0]=> 
    string(8) " foo bar" 
    } 
    [5]=> 
    array(1) { 
    [0]=> 
    string(0) "" 
    } 
} 
+0

si je fais ça, ça ne trouve plus rien. Si je leur échappe une fois c'est pareil. Je recherche ou yajRs

+0

@yajRs: j'ai mis à jour ma réponse. – Toto

+0

Omg, im stupide, yajRs