Здравствуйте. Пытаюсь вывести содержимое переменной в виде текста с помощью print_r,var_dump. Но неудобно то, браузер интерпретирует его как код страницы(внутри переменной часть будущего кода html страницы). Как сделать вывод содержимого без обработки браузером?
Re: Как вывести переменную, чтобы теги не интерпретировались Код (Text): <?php header('Content-type: text/plain; charset=utf-8'); print_r($_SERVER); ?>
Re: Как вывести переменную, чтобы теги не интерпретировались Если таки надо вывести на html странице, я делаю так: htmlspecialchars(var_export($var, TRUE))
Re: Как вывести переменную, чтобы теги не интерпретировались это всё костыли, неправильно будут отображаться пробелы и переводы строк (как в обычном HTML) Есть ещё такой костыль Код (Text): <xmp><?php print_r($_SERVER); ?></xmp> но это всё равно только костыль, делать так нельзя
Код (PHP): <?php function _dump(){ $args = func_get_args(); $content = ''; foreach ($args as $variable){ $content .= print_r($variable, true); } $content = htmlspecialchars($content); echo "<pre>" . $content . "</pre>"; } function vdump(){ $args = func_get_args(); ob_start(); $content = ''; foreach ($args as $variable){ var_dump($variable); } $content = ob_get_clean(); $content = htmlspecialchars($content); echo "<pre>" . $content . "</pre>"; }
Re: Как вывести переменную, чтобы теги не интерпретировались "правильно" или "неправильно" — зависит от контекста и ожиданий тестировщика. например внутри <pre> с пробелами и переводами каретки будет всё Ок. главное что var_export выдает данные именно в таком виде, каком их можно подставить в код, а htmlspecialchars делает вывод безопасным для любого места. можно хоть просто текстом, хоть в инпуты вывалить. так что я прав )))
Re: Как вывести переменную, чтобы теги не интерпретировались 2+2 независимо от контекста будет 4 (теорию относительности и её релятивистское сложение где 2+2= 3.9999 мы в расчёт не берём, её многие опровергнуть сейчас пытаются) да, но это как один из вариантов (из правильных замечу когда в паре с htmlspecialchars ) предложил topas а не ты каким найух безопасным, убейте кто нибудь меня об стену, не пугай меня так )))))) А я томат
Re: Как вывести переменную, чтобы теги не интерпретировались Vladson, ты не томат. ты пьяница и пиздобол, imho. прости за переход на личности.
Re: Как вывести переменную, чтобы теги не интерпретировались Не извиняйся, я и лесть не люблю и на правду не обижаюсь. Вот когда предлагают костыли вместо кода, это бесит, но и в этом случае извиняться не нужно, потому что я такое не прощаю
Re: Как вывести переменную, чтобы теги не интерпретировались костыли это все ваши решения вышеупомянутые =)
Re: Как вывести переменную, чтобы теги не интерпретировались дураки вы все © Добавлено спустя 10 минут 33 секунды: Re: Как вывести переменную, чтобы теги не интерпретировались? кстати, 2+2 может равняться и 2 и 22 и 1
А что тебе не понравилось? Объясни. Вывод через text/plain тут вряд ли подходит, т.к. основной контент скорей всего html. Предлагаю модифицированный костыль: значение переменной сохранять в файл, а потом выводить в теге object как раз таки с mime типом text/plain Код (PHP): <?php //var_to_plain.php $var='переменная тут с пробелами и с переводами строк . '; ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>ы</title> </head> <body> <?php echo $var; var_dump($var); file_put_contents('temp.txt',$var); ?> <object data="temp.txt" codetype="text/plain" type="text/plain"></object> </body> </html>
Re: Как вывести переменную, чтобы теги не интерпретировались Тема о том, вывести одну переменную для отладки. Нет?
Re: Как вывести переменную, чтобы теги не интерпретировались Да какая теперь разница? Тебя Vladson не простил.
Re: Как вывести переменную, чтобы теги не интерпретировались То что это называют "безопасностью" это лишь приведение переменной в другой (понятный браузеру) формат, т.е именно то что по логике там должно быть, и его "безопасность" это лишь отсутствие явного бага. Слово безопасность должно описывать совсем другие ситуации. Добавлено спустя 6 минут 18 секунд: Re: Как вывести переменную, чтобы теги не интерпретировались? Просто стараюсь соответствовать своей подписи На самом деле не вполне понятно о чём, если эта переменная должна быть в уже сформированном HTML в каком-то месте (тогда подойдёт вариант с htmlspecialchars в тегах pre) например типа того Код (Text): ob_start(); print_r($_SERVER); echo "<pre>" . htmlspecialchars(ob_get_clean()) . "</pre>"; или это делается вместо вывода страницы (тогда подойдёт мой вариант с text/plain) когда вместо вывода шаблона выводится отладочная информация
Re: Как вывести переменную, чтобы теги не интерпретировались владсон, не парься. мы верим, что ты понимаешь. ну хотябы наполовину.
Re: Как вывести переменную, чтобы теги не интерпретировались ничего не выводит вот код Код (Text): <?php header('Content-type:text/html;charset=utf-8'); /*Получение данных.*/ function data($path,$host) { $fp = fsockopen($host, 80); if (!$fp) { die('ошибка'); } else { $out = "GET $path HTTP/1.0\r\n"; $out .= "Accept: image/gif, application/xhtml+xml, */*\r\n"; $out .= "Accept-Language: ru\r\n"; $out .= "Host: $host\r\n"; //прикинемся оперой-мини $out .= "User-Agent: Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1716; ru; U; ssr)\r\n"; $out .= "Cache-Control: no-cache\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); $headers = ""; while ($str = trim(fgets($fp))) $headers .= "$str\n"; $body = ""; while (!feof($fp)) $body .= fgets($fp); fclose($fp); } //возвращаем данные return $body; } $host='1c.ru'; $path='/rus/support/release/categ.jsp?GroupID=88'; //запуск $s=data($path,$host); //выдаем результат (ТРЕТИЙ ЭТАП) //print_r($s); //var_dump($s); htmlspecialchars(var_export($s, TRUE)); ?> А вот результат Добавлено спустя 6 минут 10 секунд: Re: Как вывести переменную, чтобы теги не интерпретировались? xdebug может отслеживать значения переменных на удаленном сайте? Кстати var_dump() выводит не так как нужно. Мне нужно вывести структуру переменной, чтобы отсечь лишнее в результате работы граббера
Re: Как вывести переменную, чтобы теги не интерпретировались блин, конечно не выводит. )) htmlspecialchars не выводит ничего, он возвращает строку. можешь вывести ее в echo или die
Re: Как вывести переменную, чтобы теги не интерпретировались Во-первых может, во-вторых он делает цветной html-вывод переменных и массивов и т.п. Добавлено спустя 2 минуты 32 секунды: Re: Как вывести переменную, чтобы теги не интерпретировались? Вардамп единственная функция, которая выводит всё 100% правильно =) уж прости, что-то ты не то делаешь.
Re: Как вывести переменную, чтобы теги не интерпретировались сейчас var_dump(htmlspecialchars(var_export($s, TRUE))); выручает. xdebug может отслеживать значения переменных на удаленном сайте или только на локальном?
Re: Как вывести переменную, чтобы теги не интерпретировались о боже мой... ты понимаешь что ты дампишь не значение переменной? зачем???????????? на любом может, но IP прописывается жестко =) ташто считай только на локальном.