Функция str_replace работая с переменной а не со строкой не срабатывает

Код php, для примера использую строку и переменную

 $active_series_done=''.$elcat['PROPERTY_SERIYA_VALUE'].'';
            $active_series_done1='"';
            $active_series_done2='';
            $active_series_done3='ЭМАЛЬ  "ПТИЧИЙ ДВОРИК';
            $active_series_done4='"';
            $active_series_done5='';
            echo '<pre>';
            echo $active_series_done.'<br>';
            echo $active_series_done3 ;
            echo '</pre>'; 
            $active_series_done3=str_replace($active_series_done4, $active_series_done5, $active_series_done3);
            $active_series_done=str_replace($active_series_done1, $active_series_done2, $active_series_done);
             echo '<pre>';
            echo $active_series_done.'<br>';
            echo $active_series_done3;
            echo '</pre>';  

результат :результат работы кода выше

Код без одинарных кавычек:

$active_series_done=$elcat['PROPERTY_SERIYA_VALUE'];
            $active_series_done1='"';
            $active_series_done2='';
            $active_series_done3='ЭМАЛЬ  "ПТИЧИЙ ДВОРИК';
            $active_series_done4='"';
            $active_series_done5='';
            echo '<pre>';
            echo $active_series_done.'<br>';
            echo $active_series_done3 ;
            echo '</pre>'; 
            $active_series_done3=str_replace($active_series_done4, $active_series_done5, $active_series_done3);
            $active_series_done=str_replace($active_series_done1, $active_series_done2, $active_series_done);
             echo '<pre>';
            echo $active_series_done.'<br>';
            echo $active_series_done3;
            echo '</pre>'; 

Результат без одинарных кавычек

Почему str_replace не срабатывает?

сравнил переменную, с результатом после str_replace:

$active_series_done3=str_replace($active_series_done4, $active_series_done5, $active_series_done3);
            $active_series_done=$elcat['PROPERTY_SERIYA_VALUE'];
            $active_series_done1='"';
            $active_series_done2='';
            $active_series_done10=str_replace($active_series_done1, $active_series_done2, $active_series_done);

            if($active_series_done===$active_series_done10){
                echo 'равны';
            }

Результат они равны:смотреть

применил к переменной функцию htmlspecialchars() :

$active_series_done=htmlspecialchars($elcat['PROPERTY_SERIYA_VALUE']);

Результат htmlspecialchars


Ответы (1 шт):

Автор решения: V.Baryshev

Проблема была в том, что в переменной знак " это был знак " когда я писал $active_series_done=str_replace('"', '',$elcat['PROPERTY_SERIYA_VALUE'] ); он просто не видел символ ", поэтому я написал так: $active_series_done=str_replace('"', '',$elcat['PROPERTY_SERIYA_VALUE'] ); и код заработал

→ Ссылка