За последние 24 часа нас посетили 16590 программистов и 1679 роботов. Сейчас ищут 852 программиста ...

Echo, ob_start и амперсанд

Тема в разделе "PHP для новичков", создана пользователем Error202, 1 дек 2014.

  1. Error202

    Error202 Новичок

    С нами с:
    1 дек 2014
    Сообщения:
    18
    Симпатии:
    0
    Echo при выводе заменяет символ & на &
    Как того избежать?

    Пример:
    $text='test message param=m1&s1';
    echo $text;
    Выводит:
    test message param=m1&s1
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Re: Echo и амперсанд

    думаю может помочь экранирование - '\'
    $text='test message param=m1\&s1';
     
  3. Error202

    Error202 Новичок

    С нами с:
    1 дек 2014
    Сообщения:
    18
    Симпатии:
    0
    Re: Echo и амперсанд

    Пробовал, не помогает... :(
    Выдает:
    test message param=m1\&s1
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Re: Echo и амперсанд

    Если это происходит на самом деле, значит в скрипте включена буферизация с функцией htmlspecialchars в callback.
    http://php.net/ob_start
     
  5. Error202

    Error202 Новичок

    С нами с:
    1 дек 2014
    Сообщения:
    18
    Симпатии:
    0
    Re: Echo и амперсанд

    Да-а! Точно...

    Код (Text):
    1.  
    2. ob_start();
    3. include "html.php";
    4. $view = ob_get_contents(); // $view содержит нормальный &
    5. ob_end_clean();
    6. ////////////////////
    7. // Тут обработка $view
    8. ////////////////////
    9. echo $view; // Выводит уже все & как &
    Вот только как поправить, чтоб не было замены?
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Приведенный код не меняет вывод, это легко проверить.
    что здесь?
     
  7. Error202

    Error202 Новичок

    С нами с:
    1 дек 2014
    Сообщения:
    18
    Симпатии:
    0
    str_replace('name', 'Вася', $view);