За последние 24 часа нас посетили 62954 программиста и 1742 робота. Сейчас ищут 1172 программиста ...

проблема с ковычками

Тема в разделе "PHP для новичков", создана пользователем kanapus, 28 май 2009.

  1. kanapus

    kanapus Активный пользователь

    С нами с:
    10 мар 2009
    Сообщения:
    34
    Симпатии:
    0
    Передаю методом GET переменную содержащую кавычки вот так (кодировка utf8):
    Код (Text):
    1.  
    2. $a = 'OOO "Рога и копыта"';
    3. $a = htmlspecialchars($a,ENT_QUOTES);
    4.  
    5. print <<<HERE
    6. <a href="1.php?a=$a">xxx</a>
    7. HERE;
    Листинг 1 .php
    print $_REQUEST[a];

    В результате выводит: ООО "

    А если передать OOO "рога и копыта", то все нормально.
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Мне кажется одна кавычка потерялась:
    PHP:
    1. $a = 'OOO "Рога и копыта"';
     
  3. kanapus

    kanapus Активный пользователь

    С нами с:
    10 мар 2009
    Сообщения:
    34
    Симпатии:
    0
    нет, это я тут в примере ошибся
     
  4. vital

    vital Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    PHP:
    1. <?
    2. $text = "ooo \"tabak-invest\"";
    3. echo $text;
    4. ?>
     
  5. kanapus

    kanapus Активный пользователь

    С нами с:
    10 мар 2009
    Сообщения:
    34
    Симпатии:
    0
    я так уже пробовал, результат тот же. Интересно, что проблема возникает, только когда фраза, заключенная в кавычки, в верхнем регистре. Может быть дело в настройках php... хотя
    magic_quotes_gpc = off
     
  6. kanapus

    kanapus Активный пользователь

    С нами с:
    10 мар 2009
    Сообщения:
    34
    Симпатии:
    0
    может быть какой-то нюанс связан с utf8?
     
  7. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
    Народ, ипанулись совсем??

    Подумайте во что превратит htmlspecialchars двойную кавычку

    Попробуйте вывести массив $_GET print-ом и надеюсь поймете в чем косяк

    PHP:
    1.  
    2. print_r($_GET);
    3.  
     
  8. kanapus

    kanapus Активный пользователь

    С нами с:
    10 мар 2009
    Сообщения:
    34
    Симпатии:
    0
    Оказалось, что проблема другого характера.

    Если я передаю гиперссылкой переменную у которой значение начинается на Р, то на принимающей странице я не могу ее отобразить. Причем на странице явно указываю кодировку:
    Код (Text):
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    Самое интересное, что такое наблюдается только с "Р".