|
|
|
|
|
для: Николай2357
(09.11.2010 в 08:36)
| | мамо... класс... объект... мамо, роди меня обратно срочччно!!
:)))
не, ну что я скажу, достойный экземпляр :))
насчет "не списывал" - верю :)
------
.покажу-ка я еще варианты, которые пришли в голову перед тем, как я затеял всю эту бучу.
вариант со sprintf практически совпал с тем, что показал neadekvat, разве только закрывающий ?> был на месте.
вариант без форматных преобразований , но с str_replace
<?php
function a($x) { echo str_replace(chr(35), chr(0x27).$x.chr(0x27), $x) ; }
$v =
'<?php
function a($x) { echo str_replace(chr(35), chr(0x27).$x.chr(0x27), $x) ; }
$v =
#;
a($v);
?>
';
a($v);
?>
|
вариант без строковых функций
<?php
function a($x) {
for($i = 0; $i < strlen($x); $i++)
echo $x[$i] == chr(35) ? chr(0x27).$x.chr(0x27) : $x[$i]; }
$v =
'<?php
function a($x) {
for($i = 0; $i < strlen($x); $i++)
echo $x[$i] == chr(35) ? chr(0x27).$x.chr(0x27) : $x[$i]; }
$v =
#;
a($v);
?>
';
a($v);
?>
|
ну а вариант без функций вообще - это тот самый тяжеловес, который я показал (08.11.2010 в 16:55) | |
|
|
|
|
|
|
|
для: Trianon
(08.11.2010 в 22:34)
| | Ну и я туда же в калашный ряд )))
Не дотянул совсем без функций, но зато не списывал:
<?php
$a = chr(39);
class Example
{
private $clone;
public function __construct($text, $a)
{
echo '<?php'. $text;
$this->a = $a;
$this->clone = $text;
}
public function __clone()
{
echo ' $obj = new Example('. $this->a . addslashes($this->clone) . $this->a .', $a);
clone $obj;';
}
}
$obj = new Example('
$a = chr(39);
class Example
{
private $clone;
public function __construct($text, $a)
{
echo \'<?php\' .$text;
$this->a = $a;
$this->clone = $text;
}
public function __clone()
{
echo \' $obj = new Example(\'. $this->a . addslashes($this->clone) . $this->a .\', $a);
clone $obj;\';
}
}
', $a);
clone $obj;
|
| |
|
|
|
|
|
|
|
для: deimand
(09.11.2010 в 01:10)
| | $h = "?>"; вообще лишнее | |
|
|
|
|
 481 байт |
|
|
для: Trianon
(08.11.2010 в 17:24)
| | я забираю свои слова назад по поводу невозможности :)
<?php
function a($b)
{
$c = str_replace("\\", "\\\\", $b);
$d = str_replace("'", "\'", $c);
return $d;
}
$e = '; echo $i . $f . a($i) . $f . $e; ?>';
$f = "'";
$g = "\\";
$h = "?>";
$i = '<?php
function a($b)
{
$c = str_replace("\\\\", "\\\\\\\\", $b);
$d = str_replace("\'", "\\\'", $c);
return $d;
}
$e = \'; echo $i . $f . a($i) . $f . $e; ?>\';
$f = "\'";
$g = "\\\\";
$h = "?>";
$i = '; echo $i . $f . a($i) . $f . $e; ?>
|
и тоже хотел бы посмотреть еще варианты реализации.
на всякий случай аттач. | |
|
|
|
|
|
|
|
для: sim5
(08.11.2010 в 22:19)
| | для относительно непростой головоломки, и после продолжительного перерыва, в отсутствие призового фонда и начальника транспортного цеха опять же отклик вполне себе неплохой, я считаю :) | |
|
|
|
|
|
|
|
для: Trianon
(08.11.2010 в 22:09)
| | Нет, почему, Фсе по науке )
>Ну, граждане алкоголики, хулиганы, тунеядцы
То есть "трутни", зажужжали.... :) | |
|
|
|
|
|
|
|
для: sim5
(08.11.2010 в 19:33)
| | ненуачо?
кто-то недоволен? :))) | |
|
|
|
|
|
|
|
для: Trianon
(08.11.2010 в 17:25)
| | Все таки расшевелили "улей"? )) | |
|
|
|
|
|
|
|
для: Trianon
(08.11.2010 в 17:24)
| | да, так одинаково. | |
|
|
|
|
|
|
|
для: Trianon
(08.11.2010 в 17:24)
| | А вот так работает. :) | |
|
|
|
|