【发布时间】:2011-09-18 18:21:26
【问题描述】:
最近我按照 Google 的 AJAX 抓取方法重建了我的网站。
一切正常,?_escaped_fragment_= 请求正常,但我注意到页面上的任何 php 都没有被解析并被注释掉,如下所示:<!--?php echo $myvar ?-->
有谁知道为什么会发生这种情况?这是我索引中的一些 PHP:
$fragment = $_GET['_escaped_fragment_'];
$file = '' . (isset($fragment) && $fragment != '' && $fragment != '/' ? preg_replace('/\//', '', $fragment) : 'home') . '.html';
$re = '/(^<[^>]*>)|(\n|\r\n|\t|\s{2,4})*/';
$handle = fopen($file, 'r');
if ($handle != false) {
$content = preg_replace($re, '', fread($handle, filesize($file)));
fclose($handle);
} else {
$content = 'Page not found!';
header(php_sapi_name() == 'cgi' ? 'Status: 404' : 'HTTP/1.1 404');
}
我注意到那里有一个正则表达式。也许这与它有关?我不能完全理解这里发生了什么,我不是专家。 如果它会保持这种状态,就不要完全想把我的网站备份起来..
请帮帮我
【问题讨论】:
-
正则表达式只是将空白片段更改为
home,或将任何/转义为非空白片段中的\/。如您所见,它不会创建 html 评论。实际上,该代码 sn-p 中没有任何内容创建 HTML cmets。 -
@Marc B 感谢您的信息,我对正则表达式一点也不方便,我忘了提到 HTML 文件包含 PHP,但我的 htaccess 有一个处理程序,也许这与是吗?
-
不知道。可能是某种安全模块,或者其他一些解析器认为 PHP 是无效的 xml(
<?也被 xml 使用)并试图“修复”它。 -
@Marc B 啊!谢谢你,实际代码是为 xml 开发的,所以可能是这样,我会尝试并报告回来
-
@Marc B 不,不幸的是这没有帮助.. 发生了什么事