php не дает вывести php :o
-----upd
php был подключен как CGI-приложение
Чтобы было яснее. Я не понимаю, как можно убрать на выхлопе скрипта на веб-сервер следующее php содержимое:
и не убрать это:
не обработав вывод (со стороны интерпретатора/веб-сервера) каким-нить re или какими-либо другими непосредственными манипуляциями
А вот как может <!-- <?php BZ ?> --> не выполниться, не понятно.
получаю страницу:
На это:
или это:
получаю вот это:
Именно так и не иначе. А выдвигать предположения о том, что я там или сям не туда / не так смотрел, можно до бесконечности. =)
А еще интереснее становится от того, что в одном из относительно недавних постов в другой ветке вывод php содержал '<?php что-то там внутри ?>'. Не думаю, что он был снят руками с интерпретатора, скорее обыденным способом из браузера.
-----------------------------------------
Все оказалось проще. Пользуюсь преимущественно Google Chrome, в других браузерах проверить сообразил только сейчас. Так вот, в opera все выводится так, как полагается. Т. о., Chrome просто пытался по-особому трактовать "<?php ... ?>" (не знаю, из каких именно соображений), вырезал это, а на замену ничего не подставлял.
Ты уверен, что смотрел исходный код страницы в браузере?
apache 2.2.11, php 5.2.9
Смотрел и делал все так, как и описывал. Ниже аттачмент. Это премудрость Chrome, а с php все в порядке. Так что проблемы в нет в принципе.
ОТКРЫВАЕМОМ ПО "КОТНЕКСТНОЕ_МЕНЮ->ПРОСМОТР_КОДА_СТРАНИЦЫ", НЕ ПОКАЗЫВАЕТ <?...?> КАК МИНИМУМ ПРИ ВЫВОДЕ НЕ РАЗ ОБОЗНАЧЕННОГО ВЫШЕ ИСХОДНИКА.
Скриншот даже выкладывал. Даже не смешно. :O
ОТКРЫВАЕМОМ ПО "КОТНЕКСТНОЕ_МЕНЮ->ПРОСМОТР_КОДА_СТРАНИЦЫ", НЕ ПОКАЗЫВАЕТ <?...?> КАК МИНИМУМ ПРИ ВЫВОДЕ НЕ РАЗ ОБОЗНАЧЕННОГО ВЫШЕ ИСХОДНИКА.
И тем нарушает стандарт. Хотя чего ждать от бэтки.
[COLOR="Silver"](Сам себе) И когда же люди претендующие на звание адекватного разработчика научаться проводить пряморукое тестирование. Которое будет заключаться хотя бы в том, что бы просмотреть сорцы в разных браузерах, причем сразу по возникновении проблемы.[/COLOR]
Смотреть результат в разных браузерах — резонно, смотреть сырцы в разных браузерах — до этого случая (о_О) и в голову бы не пришло. ДИКО. Не знаю, кто, как и где, а я под каким-нибудь "source code of ..." именно исходный код понимаю, ожидаю его увидеть и именно так его воспринимаю. Я полагаю, если прочитать ветку от начала до конца внимательно (двух страниц даже нет :O), то последовательность поиска врядли покажется такой, что придется самому себе что-то там говорить привздыхающе. Хотя если еще пара человек аналогично отпишется, я приму за веру, что искать причину из класса обозначенной в топике стоит именно во встроенных средствах просмотра исходного кода разных браузеров. А там уж, наверное, и до включения/отключения сессий путем манипулирования favicon недалеко (imv+ho).
Я же просто отталкивался от того предположения, что, получая специфичные для CGI переменные окружения от apache, php менял свое поведение на отличное от того, которое показал в командной строке. Тем более, что в памяти зависла пара открывающий/закрывающий тэгов в исходнике, приведенном в одной из тем HTML раздела. Зря, как оказалось. Но предположение о недокументированной фильтрации хоть и выглядело дико, а и рядом не стояло с таким вот видением понятия сырец от GOOGLE.
Спасибо, весело. =)
Не знаю, кто, как и где, а я под каким-нибудь "source code of ..." именно исходный код понимаю, ожидаю его увидеть и именно так его воспринимаю.
В данном контексте правильно под сорцами понимать именно тот код, который ты видишь в браузере при "просмотреть исходный код страницы". Мы же веб разработкой занимаемся ;)
Лично для меня дико не просмотреть сорцы страницы в разных браузарах при возникновении проблемы сразу же. В это тыкают носом всех новичков. Смотрите исходный код страницы, смотрите в разных браузерах... Нередко хорошо так тыкают, от все души фейсом об тейбл и совершенно правильно. Вбивать нужно что бы это оседало на бессознательном уровне, что бы человек делал это уже автоматически.
Если тебя это весилит, да ради бога. Хорошее настроение благоприятно сказывается на самочувствиии человека.
P.S. Если кто считает данный подход неверным, вэлкам с обоснованием.
P. S. Предваренный заголовком 'Content-Type: text/plain' упоминавшийся мной ранее код php вывелся в Google Chrome как следует.
Многим бы в голову пришло что броузер искаверкает сорс страницы ?
Думаю не больше чем половине, и то только потому что уже встречались с подобным.
Посмотри как FF осображает сорс выделеного фрагмента. Часто отличается от оригинала. Весь сорс кажысь показывает as is.
Что касается коверканья именно сырца всей страницы, то, если это частое явление, остается только каким-нибудь специализированным предсказуемым инструментом вывод веб-сервера ловить. Я таким тот браузер, какой в данный период преимущественно используется, и считал. =) Это не проблема, но еще более удручает, что даже с такой ерундой у браузеров уже в 2009 году не лады.
Если, конечно, для такого поведения нет какого-то раузмного обоснования (может, даже формально закрепленного).
P. S. Наверное, в 99.9% вывод веб-сервера снимал той или иной версией Opera. Получился хороший пример, показывающий, что чрезмерная опека — тоже вредно. ^)
Еще раз подчеркну — исходного кода, а не результата его интерпретации или чего бы там ни было, что подразумевает преобразование этого самого кода.
Потому, что результат инерпретации может не совпадать с тем, что ты расчитываешь видеть. Хотя бы бы из CSS, хотя понятно в данном случае его нет, но это не более чем частный случай. Поэтому нужно просматривать именно исходник, а не то, что мне пытается отрисовать браузер. Я очень часто лезу в исходный код нагенерированной страницы, когда возникают проблемы я лезу туда всегда. Если проблема не решается с ходу или выглядит аномально, то лезу в исходник не только всегда, но и всегда с разных браузерах, а в особо клинических случаях еще и сохраняю из брауезра страницу и смотрю, чего же он там насохранял. Это хорошее правило которое может при дебаге съкономить кучу времени особоенно когда разребаешь чужую генерацию страниц.
Сколько ты с этим промучился? Час? Два? Доведись мне столкнуться с подобным, проблема была бы решена максимум минут за 15-ать.
Я, кстати, выше указывал, что считаю, что браузер выдает исходник не путем построения его по дереву DOM, а именно так, как он его принял — т. е. хранит исходник где-то у себя. Тот же Chrome показывает в сырце продублированные тэги body, незакрытые, перекрывающиеся и т. п. тэги как они есть. В дереве же продублированных body, например, нет. Как нет и в innerHTML элемента, тэгами которого он обрамлен (или где-либо выше по дереву). Так вот, стоило бы тогда мое мнение опровергнуть, если какой-либо стандарт или просто практика построения браузеров утвердила вывод сырца преобразованным (в смысле семантики, а не цветов, незначащих отступов и всяких рюшечек-свинюшечек), а не как копию оригианала.
А Chrome или сам KHTML, возможно, вообще отдельная история, т. к. построен на том же, нутро чего должен просматривать (в случае других браузеров это либо не так, либо у них просто все грамотно). Тут же вспомнился недавний случай, когда при просмотре исходного кода страницы, куда уже авторизовался, просмотрщик Chrome стабильно (многократно и неизменно) терял авторизацию и выдавал страницу приглашения авторизоваться (может я какую-то важную деталь успутил, но запомнил именно так).
HTML спецификация явно запрещает изменение документа, поэтому Chrome и сохраняет его "as is". Т.е. получается, что даже исходный код он выводит как отрендеренные данные. Именно поэтому я бывает предпочитаю сохранять страницу и уже смотреть исходный код в текстовом редакторе, хотя с таким своеволием браузера еще ни разу не сталкивался.
http://www.w3.org/TR/html401/charset.html#h-5.2.2
User agents may provide a mechanism that allows users to override incorrect "charset" information. However, if a user agent offers such a mechanism, it should only offer it for browsing and not for editing, to avoid the creation of Web pages marked with an incorrect "charset" parameter.
Мне кажется это достаточно явным указанием на запрет перекодирования. Браузер занимается только интерпретацией потока байт от сервера и ни когда не вносит в него какие либо изменения (можно как опыт для страницы переключиться на другую кодировку и сохранить её, сохраненая копия все равно будет идеинтична данным с сервера).