За последние 24 часа нас посетили 21744 программиста и 1017 роботов. Сейчас ищут 725 программистов ...

Кавычки в переменной

Тема в разделе "PHP для новичков", создана пользователем andre2017, 13 авг 2017.

  1. andre2017

    andre2017 Новичок

    С нами с:
    3 авг 2017
    Сообщения:
    67
    Симпатии:
    2
    Здравствуйте, не нашел в инете как присваивать в переменную строку с разными кавычками. Везде пишут: экранируйте. А мне нужно поиск в произвольном тексте делать, как же я буду экранироввать?!.

    PHP:
    1. $data = "...<td><a href='?id=1027700070518'>ПАО "ГАЗПРОМ"<br /></td>......
    2. ..";
    3. if (preg_match_all('|<td>(.+)</td>|isU', $data, $arr)) {
    4.   echo $arr[0][0]." ".$arr[0][1]." ".$arr[0][2]." ".$arr[0][3];
    5.   echo "<br />";
    6. }
    Как быть?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Чем вам экранирование помещает сделать какой-то поиск? Экранировать надо, если вы прямо в исходном коде присваиваете значение, а-ля
    PHP:
    1. $e = "This is a text with \"quotes\"";
    В память при этом запишется без обратных слешей:
    Код (Text):
    1. This is a text with "quotes"
    Т.е. это нужно только, чтоб php понимал, что кавычка - часть строки, а не ограничитель строкового литерала.
     
    andre2017 нравится это.
  3. andre2017

    andre2017 Новичок

    С нами с:
    3 авг 2017
    Сообщения:
    67
    Симпатии:
    2
    это я понимаю.... я не понимаю как мне запустить программу поиска подстрок меду тегами. мне же нужно присвоить текст в переменную, а там оба типа кавычек! Вот я про что.
     
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    PHP:
    1. $data = "...<td><a href='?id=1027700070518'>ПАО \"ГАЗПРОМ\"<br /></td>......
     
    andre2017 нравится это.
  5. andre2017

    andre2017 Новичок

    С нами с:
    3 авг 2017
    Сообщения:
    67
    Симпатии:
    2
    Ок по другому спрошу.. у меня есть функция, которая ищет подстроки между тегами. В переменную информация загружается с разными кавычками и вроде бы даже работает. Но вот чтобы протестировать, я хотел создать свой текст и не смог записать его в переменную, так кк в нем есть и одинарные и двойные кавычки. Как поступают в таких случаях?
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Если информация приходит не из исходного текста, там могут быть любые кавычки, по барабану. Это уже просто байты. Это только для анализатора. Если всё же в исходном тексте, то так и пишите:
    PHP:
    1. $e = "This is a string with 'single quotes' and \"double quotes\", and everything is OK with it";
     
    andre2017 нравится это.
  7. andre2017

    andre2017 Новичок

    С нами с:
    3 авг 2017
    Сообщения:
    67
    Симпатии:
    2
    Спасибо!
     
  8. reallife

    reallife Новичок

    С нами с:
    12 мар 2020
    Сообщения:
    1
    Симпатии:
    0
    Други, подскажите, а то чтото не смог найти ответ на свой вопрос.
    есть текстовое поле
    Код (Text):
    1. <? echo '<input type="text"  id="name" value= "'.$name.'">' ?>
    переменная это название организации , типа ООО "Рога и Копыта" ,естественно не выводится, от кавычек и пробела избавится никак нельзя.
    как быть ? мой полет фантазии закончился уже, пните в нужном направлении
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    вопросы задавай в отдельной теме. а так, тебе надо выводить экранированное значение — htmlspecialchars($name) , тогда всё сработает
     
    reallife нравится это.
  10. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @reallife, очень сильно хочется ругаться матом, но напишу всего одно слово - htmlspecialchars
     
    reallife нравится это.