如何解决一点点PHP代码清除了WordPress网站
| 我正在将数据动态加载到WordPress网站中: http://cybart.com/cywp/ 从另一个站点: http://youngeagles.com/factzone/thisday.asp 为此,我将以下代码插入wordpress页面:<div id=\"this_day_in_history\">
<h3>This Day in Aviation History</h3>
<?PHP
$contents=file_get_contents(\'http://www.youngeagles.com/thisday/absolutecr.asp?z=1\');
$convertedcontents=iconv(\"ISO-8859-1\",\"UTF-8//IGnorE//TRANSLIT\",$contents);
echo \"<script type=\\\"text/javascript\\\">\".$convertedcontents.\"</script>\";
?>
</div>
出于某种原因,此PHP代码段会擦除整个页面,将其保留为空白,仅显示其加载的数据。效果似乎只发生在Firefox和Chrome中;在Safari和IE中,我可以看到该网站。
对此,我将不胜感激。
解决方法
您正在获取的代码包含对
document.write()
的调用,如果在页面加载完成后调用该内容,它将清除所有内容:
document.write(\"\\n<P>...<\\/P>\");
有关更多信息,请参见MDC页面上的note以获得document.write。
您可能需要手动解析http://www.youngeagles.com/thisday/absolutecr.asp?z=1中的代码,例如:
<div id=\"this_day_in_history\">
<h3>This Day in Aviation History</h3>
<?php
$contents=file_get_contents(\'http://www.youngeagles.com/thisday/absolutecr.asp?z=1\');
$convertedcontents=iconv(\"ISO-8859-1\",\"UTF-8//IGNORE//TRANSLIT\",$contents);
if( preg_match(\'#^document\\.write\\(\"(.+)\"\\);$#s\',$convertedcontents,$matches) )
{
echo stripslashes(str_replace(\'\\\\n\',\'\',$matches[1]));
}
else
{
// TODO Format of $convertedcontents has changed. Log for developer review.
}
?>
</div>
请注意,您将需要使用s
模式修饰符,因为您要匹配的字符串中包含换行符。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。