微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一点点PHP代码清除了WordPress网站

如何解决一点点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 举报,一经查实,本站将立刻删除。