首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php if语句

问php if语句
EN

Stack Overflow用户
提问于 2011-03-15 14:25:20
回答 2查看 261关注 0票数 0

我正在使用twitter类向我的帐户发布更新,因此我已经删除了我的twitter凭据,所以我知道XXXXX是错误的。我能够解析来自远程xml文件的文本。此xml文件文本始终显示为“没有激活代码”。因此,在if语句中,我说如果xml文件显示为“没有活动代码”。我不想在我的twitter上发布任何东西,但如果它更改了任何其他内容,那么我会解析这些信息并将其发布到我的twitter上。所以今天,当更新xml文件时,什么也没有发生。我知道twitter部分是正确的,因为我有一个类似的脚本,它没有使用if语句,并且它发布得很好。一旦我引入了if语句,我就遇到了无法post的问题。那么,只有当xml文件从“没有活动代码”更改时,我才能将其发布到twitter。其他的事吗?

代码语言:javascript
复制
// 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:

代码语言:javascript
复制
array(1) { [0]=> object(SimpleXMLElement)#3 (1) { [0]=> string(32) "There are no active codes." } }
EN

回答 2

Stack Overflow用户

发布于 2011-03-15 14:29:23

您可能应该使用字符串比较函数。如strcmp:http://php.net/manual/en/function.strcmp.php

代码语言:javascript
复制
if (strcmp($match,"There are no active codes.") != 0 )
{
    $connection->post('statuses/update', array('status' => 'New Code Available - ' . $match[0] ));
    return $connection;
}
票数 0
EN

Stack Overflow用户

发布于 2011-03-15 14:33:18

为什么不简单地添加一些调试代码并检查是怎么回事呢?回应你,$match[0],看看里面有什么。很难想象“如果”会被打破,不是吗?也许var_dump($match)只是想看看发生了什么事。然后,您可能应该修复您的条件或修复$match的检索。

检查数组:[0]元素是一个对象,而不是字符串。您需要获取该对象的第一个元素,如果您明白我的意思的话。

您正在比较:

代码语言:javascript
复制
Object(SimpleXMLElement)#3 (1) { [0]=> string(32) "There are no active codes." } 

至

代码语言:javascript
复制
"There are no active codes."

这显然是不一样的。

我不能在这里测试它,但可以查看simpelXMLElement的手册:http://php.net/manual/en/class.simplexmlelement.php

你可能只需要打个简单的电话就能脱身。只需检查您拥有的是哪种对象。一个简单的例子就是"$match-> childname ",但是我不能很快看到孩子的名字是什么。检查一下手册中的一些getchild或其他东西,应该不会太复杂

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5308218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档