Category: it

Category was added automatically. Read all entries about "it".

Quine!.. или "Понты программиста"

Два часа скрипения мозгами на грани помешательства, и вот оно - решение задачи интроспектбредхреньсрань программирования:

<?php
$s1 = '<?php
$s1 = ';
$s2 = 'vprintf("%s\x27%s\x27;\x0D\x24s2 = \x27%s\x27;\x0D%s", array($s1, $s1, $s2, $s2))?>';
vprintf("%s\x27%s\x27;\x0D\x24s2 = \x27%s\x27;\x0D%s", array($s1, $s1, $s2, $s2))?>

Эх, знало бы руководство... уволило бы нахуй.

UPDATE:
Всё-таки эти две последние строчки не дают покоя. Почему бы не выполнить пятую строку через переменную типа eval($s2)? Тогда встаёт вопрос "Что делать с закрывающим php тэгом"? Так ёпта - это ж текст, который легко вносится в строку $s2. Но если закрывающий тэг можно внести в строку как текст, то зачем объявлять лишнюю переменную для открывающего тэга? Избавляемся от неё, внося '<?php' в строку $s2. Убираем переносы, чтобы сэкономить на символах возврата каретки и окончательно имеем:

<?php $s3 = 'vprintf("<?php \x24s3 = \x27%s\x27; eval(\x24s3)?>", $s3);'; eval($s3)?>