初めまして。閲覧ありがとうございます。
PHPを勉強中の素人です。
「Twitter」のBOTを何とか作りたいと思い、PHPを勉強しつつPHPのソースを公開している方を参考にさせて頂きながら何とか組んでみたのですが、どうしてもエラーが出てしまい動かせません。
構文エラーということは分かるのですが、何処がおかしいのか、分かる方は教えて頂けないでしょうか?初心者丸出しの質問で申し訳ありません。
長いのですがソースを書きます。
<?php
require_once 'HTTP/Client.php';
//自分のタイムラインを所得
$username = "ユーザー名";
$password = "パス";
$page = "statuses/friends_timeline.xml";
$basic = array('Authorization'=>'Basic '.base64_encode($username.':'.$password));
$client = new HTTP_Client(null, $basic);
$client->get("http://twitter.com/".$page );
$response = $client->currentResponse();
$body = mb_convert_encoding($response['body'], "EUC-JP","auto");
$xml = new SimpleXMLElement($body);
//ランダム発言を定義
$msg_pattern = array( "[someone]発言0",
"[someone]発言1",
"[someone]発言2",
"[someone]発言3",
"[someone]発言4",
);
if($xml) {
//var_dump ($xml);
//該当する最新5件の発言を取得
for($i=0;$i<5;$i++){
$post_member = (string)$xml->entry[$i]->title;
$post_date = $xml->entry[$i]->updated;
//発言時刻を取得し、タイムスタンプに
// 32400はGMTと日本時間とのズレ(9時間)
$date_array = array();
$rcd = mbereg("^([0-9]{4}).([0-9]{2}).([0-9]{2})T([0-9]{2}).([0-9]{2}).([0-9]{2})Z$",$post_date,$date_array);
$post_time = 32400 + mktime($date_array[4],$date_array[5],$date_array[6],$date_array[2],$date_array[3],$date_array[1]);
//発言の経過時間
$pasttime = $now_time - $post_time;
//発動は15分以内の発言に対して
if($pasttime > 0 && $pasttime < 900 && !array_search($post_member,$followed)){
$tofollow = "@".$post_member." ";
//発言をランダムで選択、相手の名前を置換
$msg = preg_replace("[\[someone\",$tofollow,$msg_pattern[mt_rand(0,count($msg_pattern)-1)]);
//twitterへの書き込み
$params = "status=". rawurlencode($msg);
$result = file_get_contents($url.$params , false, stream_context_create(array(
"http" => array(
"method" => "POST",
"header" => "Authorization: Basic ". base64_encode($username. ":". $password)
)
)));
//
array_push($followed,$post_member);
}
}
}else{
return;
}
?>
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
//発言をランダムで選択、相手の名前を置換
$msg = preg_replace("[\[someone\",$tofollow,$msg_pattern[mt_rand(0,count($msg_pattern)-1)]);
ここが " で閉じてないです
この回答への補足
ありがとうございます。
$msg = preg_replace("[\[someone\",$tofollow,$msg_pattern[mt_rand(0,count($msg_pattern)-1)]);
を、
$msg = preg_replace("[\[someone]\,$tofollow,$msg_pattern[mt_rand(0,count($msg_pattern)-1)]");
と直してみたのですが、やはり構文ミスが出てしまいます・・
"だけでなく[の数も違う気がしたのでいじってみたのですが違ったのでしょうか?
もし宜しければ、教えていただけると幸いです!
申し訳ありません・・!
No.2
- 回答日時:
PHPをブラウザで実行したら、何行目にエラーがある、と表示されるのではないでしょうか?
またエラーの際に表示される文章によって何故エラーが出るのかもわかるかと思います。
行数がわかればその周辺を確認して見ることで原因を見つけやすくなるのでは・・・?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP php ログイン 1 2022/11/01 00:24
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- PHP php テーブルが作成できない 1 2022/11/17 23:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpとmysqlで「あいまい検索」...
-
プルダウンメニューにDBの内容...
-
PHPでこのコード自体に意味は無...
-
PHPのカッコ[ ]の使い方について
-
$_SESSIONに二次元配列を使える...
-
別ファイルの構造体の値を読み...
-
postgresql関数をつかったレコ...
-
プログラミングのPythonのnoteb...
-
スカラーのベクトル微分
-
C言語の配列をPush(追加)する...
-
foreachのなかで次のキーを参照...
-
ファイルから指定行数分だけ読...
-
PHPで配列をPOSTデータで送った...
-
複数行のデータのPOST処理に関して
-
PHPで連想配列のプルダウンメニ...
-
エラーメッセージ(無効な間接...
-
String だと「 ByRef引数の型が...
-
配列同士の足し算のループ処理
-
PHP 配列の添字に変数は使えない?
-
fgetcsvでデータが何も表示され...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンメニューにDBの内容...
-
テキストボックスの日本語をロ...
-
QuickForm createElement での ...
-
2次元配列の値の受け渡しについ...
-
phpとmysqlで「あいまい検索」...
-
サイト名を取得するPHP
-
listへのappendが出来ない件
-
pukiwikiのユーザ認証の設定で...
-
mysqlにinsertするとエラーがで...
-
日付から順にデータを並び替えたい
-
「ローマ字 -> ひらがな」へPHP...
-
phpのin_array()でわからない事...
-
if の中の 複数のor についてお...
-
順位を付ける時のスコアの重複...
-
xmlからphpで出力したデータを...
-
usortで3つの項目を昇順・降順...
-
HTTPのメッセージボディについ...
-
cakephp2.6でfindを使い合計値...
-
しりとり 無限ループ?
-
NGワード設定もしくはテキス...
おすすめ情報