我有一个非常奇怪的错误,我有这个模板引擎(我认为它正常工作,因为它正确显示了大多数文件):
<?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;他们都很好。
感谢您的帮助。