2011-06-05 21 views
6

$str tiene algún valor en un foreach.php cómo hacer un si str_replace?

$str = str_replace('_name_','_title_',$str); 

cómo hacer un if str_replace?

Quiero hacer lo que if have a str_replace luego eco $str, de lo contrario, salte el actual foreach luego al siguiente. Gracias.

Respuesta

18

Hay un cuarto parámetro en str_replace() que se establece en el número de reemplazos realizados. Si nada fue reemplazado, se pone a 0. gota una variable de referencia allí, y luego comprobar que en su sentencia if:

foreach ($str_array as $str) { 
    $str = str_replace('_name_', '_title_', $str, $count); 

    if ($count > 0) { 
     echo $str; 
    } 
} 
5

Si necesita comprobar si una cadena se encuentra dentro de otra cadena, que le gusten este .

<?php 
if(strpos('_name_', $str) === false) { 
    //String '_name_' is not found 
    //Do nothing, or you could change this to do something 
} else { 
    //String '_name_' found 
    //Replacing it with string '_title_' 
    $str = str_replace('_name_','_title_',$str); 
} 
?> 

http://php.net/manual/en/function.strpos.php

Sin embargo, usted no debe necesitar, para este ejemplo. Si ejecuta str_replace en una cadena que no tiene nada que reemplazar, no encontrará nada que reemplazar, y continuará sin realizar ningún reemplazo o cambio.

Buena suerte.

+0

strpos tiene que tener primero el pajar. Esto es correcto: (strpos ($ str, '_name_') === false) –

0

Sé que esto es una vieja pregunta, pero me dan una pauta para resolver mi propio problema de cheques, así que mi solución era:

$contn = "<p>String</p><p></p>"; 
$contn = str_replace("<p></p>","",$contn,$value); 
if ($value==0) { 
$contn = nl2br($contn); 
} 

funciona perfectamente para mí. Espero que esto sea útil para otra persona.