我遇到了一个非常不寻常的问题。当我使用此脚本发布到Blogger时,它实际上在我实际键入博客ID时非常有效,例如
$blogID = '2542513707206115453';
但是当我让脚本自动刮掉博客ID时,即使脚本正在拼写与我正在输入的完全相同的数字,它也会让我错误地讨论无效的uri
。
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_Query');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
$blog = file_get_contents($link.'/feeds/posts/default');
preg_match('/tag:blogger.com,1999:blog-(.*?)-/', $blog, $blogID);
$blogID = rtrim($blogID[1], date("Y"));
$service = 'blogger';
$client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service, null,
Zend_Gdata_ClientLogin::DEFAULT_SOURCE, null, null,
Zend_Gdata_ClientLogin::CLIENTLOGIN_URI, 'GOOGLE');
$gdClient = new Zend_Gdata($client);
$entry = $gdClient->newEntry();
$entry->title = $gdClient->newTitle($title);
$entry->content = $gdClient->newContent($body);
$entry->content->setType('text');
$uri = 'http://www.blogger.com/feeds/'.$blogID.'/posts/default';
$createdPost = $gdClient->insertEntry($entry, $uri);
$idText = split('-', $createdPost->id->text);
$newPostID = $idText[2];
我不知道这是怎么发生的,因为$blogID
是完全相同的数字,无论是否被刮掉或是否打字。是的,我有双倍和三倍检查,当刮,它是完全相同的数字。任何帮助将不胜感激。
答案 0 :(得分:2)
这次电话有什么意义?
$blogID = rtrim($blogID[1], date("Y"));
rtrim中的第二个选项指定应从字符串末尾修剪哪些字符。由于您使用的是日期(目前为2013
),因此您要尝试从中删除任何2
,0
,1
和3
个字符。字符串。
这意味着,给你的
$blogID = '2542513707206115453';
你最终会以
结束$blogID = '254251370720611545';
^--- see? no 3
不相同的数字