mirror of
https://github.com/php/php-src.git
synced 2024-10-21 08:22:42 +00:00
89 lines
1.2 KiB
Plaintext
89 lines
1.2 KiB
Plaintext
|
--TEST--
|
||
|
Reconstructing a script using token_get_all()
|
||
|
--FILE--
|
||
|
<?php
|
||
|
|
||
|
$phpstr = '
|
||
|
<?php
|
||
|
|
||
|
// A php script to test token_get_all()
|
||
|
|
||
|
/* a different
|
||
|
type of
|
||
|
comment */
|
||
|
|
||
|
// a class
|
||
|
class TestClass {
|
||
|
public function foo() {
|
||
|
echo "Called foo()\n";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$a = new TestClass();
|
||
|
$a->foo();
|
||
|
|
||
|
for ($i = 0; $i < 10; $i++) {
|
||
|
echo "Loop iteration $i\n";
|
||
|
}
|
||
|
|
||
|
?>';
|
||
|
|
||
|
$token_array = token_get_all($phpstr);
|
||
|
|
||
|
$script = "";
|
||
|
// reconstruct a script (without open/close tags) from the token array
|
||
|
foreach ($token_array as $token) {
|
||
|
if (is_array($token)) {
|
||
|
if (strncmp($token[1], '<?php', 5) == 0) {
|
||
|
continue;
|
||
|
}
|
||
|
if (strncmp($token[1], '?>', 2) == 0) {
|
||
|
continue;
|
||
|
}
|
||
|
$script .= $token[1];
|
||
|
} else {
|
||
|
$script .= $token;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var_dump($script);
|
||
|
|
||
|
eval($script);
|
||
|
|
||
|
?>
|
||
|
--EXPECT--
|
||
|
string(259) "
|
||
|
|
||
|
// A php script to test token_get_all()
|
||
|
|
||
|
/* a different
|
||
|
type of
|
||
|
comment */
|
||
|
|
||
|
// a class
|
||
|
class TestClass {
|
||
|
public function foo() {
|
||
|
echo "Called foo()\n";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$a = new TestClass();
|
||
|
$a->foo();
|
||
|
|
||
|
for ($i = 0; $i < 10; $i++) {
|
||
|
echo "Loop iteration $i\n";
|
||
|
}
|
||
|
|
||
|
"
|
||
|
Called foo()
|
||
|
Loop iteration 0
|
||
|
Loop iteration 1
|
||
|
Loop iteration 2
|
||
|
Loop iteration 3
|
||
|
Loop iteration 4
|
||
|
Loop iteration 5
|
||
|
Loop iteration 6
|
||
|
Loop iteration 7
|
||
|
Loop iteration 8
|
||
|
Loop iteration 9
|