php
  • str-replace
  • 2010-02-15 2 views 0 likes 
    0

    Я хочу заменить одиночную кавычку (') в строке.str_ireplace не будет работать с одной цитатой

    Видимо, это не будет работать ...:

    $patterns = array(); 
    $replacements = array(); 
    $patterns[0] = "'"; 
    $patterns[1] = '\''; 
    $replacements[0] = 'Something'; 
    $replacements[2] = 'Same thing just in a other way'; 
    
    +1

    Где 'str_ireplace' ? – kennytm

    ответ

    0

    Похоже, ваш образец кода был более обезличенных (индексы 0 & 2 за $ заменители?) И над обрезано (где это вызов str_ireplace), однако ... Я предполагаю, что вы не полностью поняли str_ireplace.

    Первое, что str_ireplace не работает на месте. Это возвращаемое значение - это измененная строка/массив строк.

    Во-вторых, если у вас есть массив поисков и замен, PHP будет работать с использованием одного элемента из каждого массива и применения его к предмету/массиву объектов, прежде чем переходить к следующему элементу из каждого массив, а затем применить это к одному и тому же предмету (ов). Вы можете видеть это в приведенном ниже примере, где оба предмета заменяются «что-то» и «То же самое по-другому» никогда не появляются в результатах.

    $patterns = array();
    $replacements = array();
    $patterns[0] = "'";
    $patterns[1] = '\'';
    $replacements[0] = 'Something';
    $replacements[1] = 'Same thing just in a other way';

    $subjects[0] = "I've included a single quote.";
    $subjects[1] = "This'll also have a quote.";

    $newSubjects = str_ireplace($patterns, $replacements, $subjects);

    print_r($newSubjects);

    При запуске это дает

    Array ([0] => ISomethingve включен апостроф. [1] => ThisSomethingll также есть цитата.)

    2

    Замена (') с (") отлично работает для меня с str_ireplace.

    $test = str_ireplace("'", "\"", "I said 'Would you answer me?'"); 
    echo $test; // I said "Would you answer me?" 
    

    Также работает отлично замена (") с (')

    $test = str_ireplace("\"", "'", "I said \"Would you answer me?\""); 
    echo $test; // I said 'Would you answer me?' 
    
    Смежные вопросы