我正在使用twitter类向我的帐户发布更新,因此我已经删除了我的twitter凭据,所以我知道XXXXX是错误的。我能够解析来自远程xml文件的文本。此xml文件文本始终显示为“没有激活代码”。因此,在if语句中,我说如果xml文件显示为“没有活动代码”。我不想在我的twitter上发布任何东西,但如果它更改了任何其他内容,那么我会解析这些信息并将其发布到我的twitter上。所以今天,当更新xml文件时,什么也没有发生。我知道twitter部分是正确的,因为我有一个类似的脚本,它没有使用if语句,并且它发布得很好。一旦我引入了if语句,我就遇到了无法post的问题。那么,只有当xml文件从“没有活动代码”更改时,我才能将其发布到twitter。其他的事吗?
// Parse Message
$source = file_get_contents('WEBSITE_URL_GOES_HERE');
$dom = new DOMDocument();
@$dom->loadHTML($source);
$xml = simplexml_import_dom($dom);
$match = $xml->xpath("//code_message");
//Twitter class (Updating status)
require_once 'twitteroauth.php';
//Twitter credentials
define("CONSUMER_KEY", "XXXXXX");
define("CONSUMER_SECRET", "XXXXXX");
define("OAUTH_TOKEN", "XXXXXX-XXXXXX");
define("OAUTH_SECRET", "XXXXXX");
// Verify credentials
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_SECRET);
$content = $connection->get('account/verify_credentials');
//If Statement
if ( $match[0] == "There are no active codes." ) {
/* Do Nothing */;
} else {
$connection->post('statuses/update', array('status' => 'New Code Available - ' . $match[0] ));
return $connection;
}$match阵列的var_dump:
array(1) { [0]=> object(SimpleXMLElement)#3 (1) { [0]=> string(32) "There are no active codes." } }发布于 2011-03-15 14:29:23
您可能应该使用字符串比较函数。如strcmp:http://php.net/manual/en/function.strcmp.php
if (strcmp($match,"There are no active codes.") != 0 )
{
$connection->post('statuses/update', array('status' => 'New Code Available - ' . $match[0] ));
return $connection;
}发布于 2011-03-15 14:33:18
为什么不简单地添加一些调试代码并检查是怎么回事呢?回应你,$match[0],看看里面有什么。很难想象“如果”会被打破,不是吗?也许var_dump($match)只是想看看发生了什么事。然后,您可能应该修复您的条件或修复$match的检索。
检查数组:[0]元素是一个对象,而不是字符串。您需要获取该对象的第一个元素,如果您明白我的意思的话。
您正在比较:
Object(SimpleXMLElement)#3 (1) { [0]=> string(32) "There are no active codes." } 至
"There are no active codes."这显然是不一样的。
我不能在这里测试它,但可以查看simpelXMLElement的手册:http://php.net/manual/en/class.simplexmlelement.php
你可能只需要打个简单的电话就能脱身。只需检查您拥有的是哪种对象。一个简单的例子就是"$match-> childname ",但是我不能很快看到孩子的名字是什么。检查一下手册中的一些getchild或其他东西,应该不会太复杂
https://stackoverflow.com/questions/5308218
复制相似问题