<?php
$text = file_get_contents(basename($_SERVER['PHP_SELF']));
preg_match_all("/{(.*?)}/", $text, $matches);
var_dump($matches[0]);
echo str_replace($matches[0],"Test",$text);
?>
是我当前的代码,这是从我的索引页面调用的:
require_once 'functions/SkriptParser.php';
当我打开index.php时,它会替换正确的字符串[它会替换{}内的任何字符串,但是,它似乎正在替换<?php
,我不知道为什么。
有什么想法吗?
答案 0 :(得分:0)
我不确定我完全理解你想要做什么。
此行$text = file_get_contents(basename($_SERVER['PHP_SELF']));
解析为本地文件名,该文件名将包含在其中的脚本名称中。
它不会加载该脚本将输出的页面,它将加载文件而不执行代码。 $text
的内容将是包含纯php内容的字符串。
当我从命令行运行代码并使用“这是{your code}的测试”作为我的字符串时输出为:
{your code}<?php
require_once 'includetest.php';
print_r(basename($_SERVER['PHP_SELF']));
echo "Here's a test of Test";
如果我从浏览器运行它并查看源代码我也看到了,但是浏览器会逃脱php,因此它不会在页面上呈现。所以(至少对我来说),你的概念有点有效。但是,代码未执行的事实意味着它永远不会按照您的意图执行。
这是我不太懂的东西。在index.php中,你告诉你的代码要做的是加载一个脚本,该脚本将加载index.php的另一个副本并替换其中的内容。
如果要更改index.php的行为然后更改index.php中的代码,请不要生成不合适的输出,然后加载另一个脚本以尝试解析它,然后再返回它。只需按照您想要的方式输出它。
您要移除的{}
内的内容来自何处?你为什么要/需要删除它?如果您可以准确地阐明您的目标,那么建议解决方案会更容易。