2010-07-27 6 views
0

J'ai construit la variable $ ligne selon les critères suivants:chaîne de php à la variable

foreach ($regex as $each){ 
$parts = explode('::',$each); 
$pattern = '"/^'.$parts[1].'/i"'; 
$subject = '$row['.$parts[0].']'; 

$line .= 'preg_match'.'('.$pattern.','.$subject.')'; 
if (end($regex) != $each){ 
$line .= '&&'; 
} 
} 

J'ai une fonction qui appelle la ligne de $. Une fois appelé, écho $ ligne produit la sortie suivante:

preg_match("/^ab/i",$row[RG])&&preg_match("/^cd/i",$row[EX]) 

Je suis en train d'utiliser la variable $ ligne dans l'une des boucles et si preg_match ne fonctionne pas. Cependant, si je devais copier et coller la valeur de $ line dans l'instruction if cela fonctionne très bien. Toute contribution serait appréciée!

+0

Pouvez-vous formater le code comme du code? Cela rendrait la lecture beaucoup plus facile. –

+0

Aussi, que voulez-vous dire que vous avez une fonction qui appelle "la ligne $"? $ line semble être une chaîne, pas une fonction. –

+0

Salut! Je voulais dire que je passe $ line à une fonction qui appelle mssql stockée proc renvoyant des valeurs pour $ row [RG] & $ row [EX] plus tard dans le script. Le problème est que preg_match ne fonctionne pas si la ligne $ est utilisée dans l'une des instructions if, cependant, si je devais copier et coller la valeur de $ line (ie preg_match ("/^ab/i", $ row [RG]) && preg_match ("/^cd/i", $ row [EX])) dans la même instruction if cela fonctionne très bien. Merci beaucoup pour votre aide! – Don

Répondre

4

Voici une solution alternative à premisos et probablement mieux:

$passed = true; 
foreach ($regex as $each){ 
$parts = explode('::',$each); 
$pattern = '/^'.$parts[1].'/i'; 
$subject = $row['"'.$parts[0].'"']; 

if (!preg_match($pattern, $subject)) { 
    $passed = false; 
    break; 
} 
} 

if ($passed) { 
    echo 'Woohoo! It passed!'; 
} 

Ce serait probablement la méthode preferred, parce que si l'on preg_match échoue, tout échoue et il n'y a pas besoin de continuer.

+0

Ah oui, c'est beaucoup mieux et plus sûr. Joli. –

Questions connexes