
唐突に質問失礼致します。PHPの初心者です。
1ヶ月ほど試行錯誤した結果、暗礁に乗り上げてしまって困っているので教えて頂きたいです。
下記を参考にPHPでFC2ブログに投稿するスクリプトを書いているのですが、
FC2ブログに記事を投稿するスクリプト
http://blog.ishitoya.info/entry/20080330/1206907 …
投稿文を自分のTwitterのタイムラインにしたいと思っています。
そこで上のスクリプトの上方の一部に少しだけ下記のように書き加えました。
/////////////////////////
$url = "http://api.twitter.com/1/statuses/user_timeline. …(Twitterユーザー名)&page=".$_POST['page'];
$tweets = json_decode(file_get_contents($url));
foreach ($tweets as $tweet) {
echo "<li>".$tweet->text."</li>";
}
try{
$bm = new FC2BlogManager($fc2_host, $fc2_xmlrpc_path);
$bm->setUser($fc2_user);
$bm->setPassword($fc2_passwd);
$bm->postEntry("PHPから投稿テスト4-Title",
"テスト4-Dsescription [".$tweet->text."]<br/>改行コード埋め込み \n なんかいけてそう");
var_dump($bm->getBlogs());
}catch(Exception $e){
echo $e->getMessage();
}
/////////////////////////////////////
↓のようにすることでブラウザ上のphp実行画面では、Twitterのタイムラインがテキスト化されて表示されるのですが、
$bm->postEntry(" [".$tweet->text."]");
実際に投稿されるのはTwitterをテキスト化した時の一番下のツイート(一番古くしたツイート)のみなのです。
[ ]内をどのように書き直せば、タイムライン(.jsonのテキスト化内)がすべて拾えるでしょうか?
また、記事タイトルをその日のものに自動指定したり、時間を指定して(例えば24時間など)その時間内にしたツイートを限定して拾える方法、ツイート内にURLがあった場合自動リンクする書き方もお手数でなければ、教えていただけたら幸いに存じ上げます。
誠に勝手で稚拙な質問で恐縮ですが、教えていただけたら幸いに存じ上げます。
No.1ベストアンサー
- 回答日時:
>foreach ($tweets as $tweet) {
>echo "<li>".$tweet->text."</li>";
>}
この記述で全部拾えているのですよね?であれば
$str = '';
foreach ($tweets as $val) { $str .= $val->text . "\n"; }
$bm->postEntry(" [". $str ."]");
などとすればいいのでは?
>記事タイトルをその日のものに自動指定したり、時間を
>指定して(例えば24時間など)その時間内にしたツイートを
>限定して拾える方法、ツイート内にURLがあった場合自動
>リンクする書き方
とりあえず
var_dump($tweets);
として、どういうデータが拾えるのかを確認してみては如何ですか?多分、tweetした日時も取れているとは思いますが・・・
この回答への補足
shimix様。本当にありがとうございます!
ご教授の通り行ない、調べたり試行錯誤して、見事にテキストから、時間日時、自動リンクまで作成することができました。この1ヶ月でのどに詰まっていたことがスッと解決しました!
とても簡潔にわかりやすく回答を下さったshimix様に心から御礼申し上げます。
そしてvar_dump($tweets);でオブジェクトを引き出して入力できるようになりました!
ただ、そこで少し疑問が生じまして、補足という名目で再度聞いて恐縮なのですが、
foreach ($tweets as $val) { $str .= $val->text .'<br />' .$val->created_at .'<br /><br />'."\n";
現在は、このような形で、ツイートと時間を引き出していますが、リツイートのみテキストが途中で「 ...」と切られてしまって困っています。
例えば、var_dump($tweets);でオブジェクトを見てみるとこのような感じに、途中で途切れてに表示されているテキストと、
そのすぐ次の次のオブジェクトに、全部フルで表示されているオブジェクトがあります。
12 =>
object(stdClass)[25]
public 'text' => string 'RT @xxxxxxxx: 吾輩は猫である。名前はまだ無い。どこで生れたか頓(とん)と見當がつかぬ。何でも薄暗いじめじめした所でニヤーニヤー泣いて居た事丈は記憶して居る。吾輩はこゝで始めて人間といふものを見た。然(しか)もあとで聞くとそれは書生といふ人間中で一番獰悪(だうあく)な種族であつたさうだ。此書生といふのは時々我々を捕 ...' (length=344)
※(同じ12 =>内で、[26]、[27]と下位オブジェクトに並んでいます)↓
object(stdClass)[27]
public 'text' => string ' 吾輩は猫である。名前はまだ無い。どこで生れたか頓(とん)と見當がつかぬ。何でも薄暗いじめじめした所でニヤーニヤー泣いて居た事丈は記憶して居る。吾輩はこゝで始めて人間といふものを見た。然(しか)もあとで聞くとそれは書生といふ人間中で一番獰悪(だうあく)な種族であつたさうだ。此書生といふのは時々我々を捕(つかま)へて煮て食ふといふ話である。' (length=388)
13 =>
object(stdClass)[29]
:
:
自分自身のツイートは文字数フルでツイートされていても、全テキスト表示されるのですが、リツイートの長いテキストのみ文末が「...」にされてしまいます。
おそらく「RT @xxxxxxxx:(これだと14文字)」分の文字数が多いので、押し出された文末が「...」に省略されてしまうのだと思います。(入力された文字の短いリツイートは全部表示されます)
この場合、リツイートのツイートのみを、上のように「...」で省略せずに、
下の全部フルテキストのオブジェクトの方を指定して引き出したいのですが、この場合はどう指定して書けばいいでしょうか?
誠に勝手にも続けて質問して恐縮ですが、教えていただけたら幸いに存じ上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpにて、ipアドレスによる処理...
-
バッチを用いたフォルダの自動移動
-
FTPコマンドでディレクトリごと...
-
「クラス関数」「メンバ関数」...
-
PHPのif文でその処理を途中で抜...
-
Subversionのリポジトリの削除
-
PHPの文字化け
-
PHPで韓国語の表示がうまくいき...
-
Visual C++ 2005 Express Editi...
-
LoadLibraryの戻り値(HMODULE)...
-
インクルードした部分が表示さ...
-
mPDFでのPDF出力がうまくいかな...
-
HOSTSファイルについて
-
テキストリンクを2回クリックし...
-
mysql複数レコードをまとめて削...
-
PHPから別なPHPへ移動(?)する方法
-
require_once()でファイルが読...
-
FTP接続の例外処理
-
includeでHTMLファイルを呼出し...
-
onedrive にexcelファイルをア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3つ以上の論理積は利用可能なの...
-
php4.3のオブジェクト解放
-
メールフォームが文字化けしま...
-
コーディングの綺麗な、サンプ...
-
PHPスクリプトにプロキシを弾か...
-
GPLライセンスについて
-
海外のphpスクリプトを日本語対...
-
レッツPHP内スクリプトが思うと...
-
外注PHPソースからWorm.Avron検...
-
データの送受信を行うための環境
-
$_SERVER と $_ENV の違い
-
ブログのようなコメント機能を...
-
PHPで指定サイトで検索した結果...
-
phpと<?xml version="1.0" enco...
-
読み込み先を制限するには…
-
ステップカウンタ(PHP)
-
スクリプト終了時に呼び出す関...
-
オブジェクト指向の勘違い?
-
携帯電話でphpのコーディングを...
-
最後1行だけ…どのように書き直...
おすすめ情報