Мне тут задали задачку, я выдал два разных рабочих ответа (правда их не приняли ), теперь хочу размять ваши мозги. Попробуйте из головы, без помощи гугля и учебников, написать на PHP программу, которая бы вывела полный собственный текст. А я проверю: дурак ли я или всё-таки меня как-то неправильно тестировали. Update: Не читай свой файл! Спасибо!
Ок, буквально такая фраза не звучала. Но пусть будет: "не читай свой файл". У меня остался один ответ
Блин, неудержался, прогуглил писать ответ конечно не буду =) Добавлено спустя 3 минуты 54 секунды: Но я был на верном пути, конечно - php умный - и прекрасно знает что он выполняет и откуда =) Добавлено спустя 20 минут 8 секунд: Да но это решение всё же читает собственный файл, ммм а вот второе мудрёное решение...
Не знаю что такое собственное отражение =) не похоже на него, через замену в самом себе, может это ты имел в виду? )))
echo "полный собственный текст"; Добавлено спустя 28 минут 32 секунды: сидел думал думал .. вот че надумал 1. условие себя не читаем .. ок мы себя копируем в новый файл "чегототам.html" и редиректимся на этот файл .. пока еше не гуглил - просто мыслями кидаюсь
Вот я эту задачу встречаю не в первый раз, и не только на PHP, но и на Pascal, на C++ и т.п. У меня один вопрос - а нахрена уметь решать такую задачу?
Видимо пользователи должны видеть код. После всех моих бредовых мыслей меня уже на хаха начинает пробивать .. это чтото типа как мне показать свои кишки или мозК всем Добавлено спустя 7 минут 52 секунды: надо еще подумать .. это ладно - у меня на работе была задача сделать конвертер из аксеса 97 в постришку .. причем - необходимо сохранить все данные, все связи, все права .. конвертилку сделал - но вот какая была штука - файлов с данными достаточно много - штук 15 на 4 гига .. и чего я придумал - сделал 1 файл основной - в нем стартуеш функцию .. результат функции - она копировала файл - помойму 8 раз ( циферку меняла) потом - на 2 серваках по 4 ядра - запускала аксес - все эти 8 файлов .. такая веселуха начиналась =) часа на 3.. а если в 1 потоке все делать - заняло часов 16 помомойму .. тест был
Если учесть, что именно препроцессор PHP отправляет в output всё за пределами дескрипторов <? ?>, то любой текст без этих дескрипторов является программой на php, выводящий свой код =) Добавлено спустя 1 минуту 36 секунд: По аналогии с обезьяной и печатной машинкой, программа, выводящая рандомный текст, когда-нибудь выведет свой код. Следовательно, возможно генерировать с помощью вычислений исходный код программы, вместо тупого print
Вася, ты повторил моё решение №2 ))) Ответ у меня не приняли, да и фиг с ним. Я считаю он верный, мало того, ответ элегантный. У языка PHP есть особенность и здесь она использована. Но есть и другие решения - я потом находил.
из головы - но не придумал а вспомнил. квайнами увлекался одно время, писал свои, смотрел как другие подходят к решению. этот запомнился - ибо короткий и простой.
Код (PHP): <?php $a='<?php $a=2; echo str_replace(1+1,chr(39).$a.chr(39),$a); ?>'; echo str_replace(1+1,chr(39).$a.chr(39),$a); ?> Код (PHP): echo "Hello"; Код (PHP): <?php show_source(__FILE__); ?>