PHP初心者です。どうしてもエラーが出てしまいます。プログラマさんお願いします!!
初めまして。閲覧ありがとうございます。
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;
}
?>
お礼
細かい指摘ありがとうございました。 ですが、やはりパースエラーが出てしまいました。 後、カテゴリ違いの指摘もしていただき、ありがとうございました。 次回から気をつけたいと思います。