php中某些文件名的奇怪错误

时间:2016-06-15 19:24:18

标签: php

我有一个非常奇怪的错误,我有这个模板引擎(我认为它正常工作,因为它正确显示了大多数文件):

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
  <methodName>wp.editPost</methodName>
  <params>
    <param>
      <value>
        <i4>0</i4>
      </value>
    </param>
    <param>
      <value>user</value>
    </param>
    <param>
      <value>pass</value>
    </param>
    <param>
      <value>
        <i4>30</i4>
      </value>
    </param>
    <param>
      <value>
        <struct>
          <member>
            <name>post_content</name>
            <value>xyz</value>
          </member>
          <member>
            <name>post_date</name>
            <value>Wed Jun 15 15:15:27 EDT 2016</value>
          </member>
          <member>
            <name>post_status</name>
            <value>publish</value>
          </member>
          <member>
            <name>post_title</name>
            <value>xxx Wed Jun 15 15:15:27 EDT 2016</value>
          </member>
          <member>
            <name>post_type</name>
            <value>page</value>
          </member>
          <member>
            <name>comment_status</name>
            <value>open</value>
          </member>
          <member>
            <name>ping_status</name>
            <value>open</value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>

然后我将这个文件命名为topic.php,其中包含以下代码:

16-06-15 15:15:28:232 ERROR io.oplo.publish.components.Site - An exception was raised while talking to the website: HTTP server returned unexpected status: Internal Server Error
org.apache.xmlrpc.client.XmlRpcHttpTransportException: HTTP server returned unexpected status: Internal Server Error
    at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.getInputStream(XmlRpcSunHttpTransport.java:94)
    at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:152)
    at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:143)
    at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69)
    at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56)
    at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:167)
    at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:158)
    at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:147)
    at io.oplo.publish.components.Site.updateOrInsertPage0(Site.java:109)

我的模板&#34; templates / topic.php&#34;看起来像这样:

<?php

class Template
{
protected $template;
protected $vars = array();

public function __construct($template)
{
    $this->template=$template;
}
public function __get($key)
{
    // TODO: Implement __get() method.
    return $this->vars[$key];
}
public function __set($key, $value)
{
    // TODO: Implement __set() method.
    $this->vars[$key]=$value;

}
public function __toString()
{

    extract($this->vars);
    chdir(dirname($this->template));
    ob_start();
    include basename($this->template);

    //echo $this->template;

    return ob_get_clean();


}

}

最后我还有其他文件&#34; templates / test.php&#34;看起来像这样:

<?php
require ('core/init.php');
$template = new Template("templates/topic.php");
echo $template;
?>

如果在topic.php的第二行中我更改了$ template = new Template(&#34; templates / topic.php&#34;);到$ template = new Template(&#34; templates / test.php&#34;); 它只是正确打印,&#34;测试&#34;显示在网页上,但如果我想显示&#34; templates / topic.php&#34;它没有在网页上显示任何内容。如果我重构&#34; templates / topic.php&#34; to&#34; templates / topici.php&#34;例如,它工作正常。

这不是我需要提供的项目,解决方法非常简单......不要在模板目录中使用文件名topic.php,但我想了解发生了什么。

注意:此外,我还有其他类似结构的文件,例如文件名为&#34; create.php&#34;它应该显示的文件是&#34; templates / create.php&#34;他们都很好。

感谢您的帮助。

0 个答案:

没有答案