0

私は非常に珍しい問題を抱えています。このスクリプトを使用してBloggerに投稿すると、たとえばブログIDを実際に入力したときに完全に機能します。

$blogID = '2542513707206115453';

uriしかし、スクリプトでブログIDを自動的にスクレイピングすると、入力しているのとまったく同じ番号をスクリプトがスクレイピングしている場合でも、無効についてのエラーが表示されます。

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スクレイピングされたものであれ、タイプされたものであれ、まったく同じ数であるため、これがどのように発生する可能性があるのか​​わかりません。そして、はい、私はダブルとトリプルで、こすったときにまったく同じ数であることを確認しました。どんな助けでも大歓迎です。

4

1 に答える 1

2

この電話のポイントは何ですか?

$blogID = rtrim($blogID[1], date("Y"));

rtrim の 2 番目のオプションは、文字列の末尾から削除する文字を指定します。日付を使用しているため (現在)、文字列から ANY 、、および文字2013を削除しようとしています。2013

つまり、

$blogID = '2542513707206115453';

あなたは実際に

$blogID = '254251370720611545';
                             ^--- see? no 3

これは同じ番号ではありません

于 2013-01-04T18:59:10.773 に答える