TwitterへRSSを投稿するbotを作りたい

このQ&Aのポイント
  • WindowsXPでTwitterへRSSを投稿するbotを作りたい。参考サイトの手順に従って修正したが、エラーが出てしまう。
  • エラーメッセージは「Call to undefined function: file_get_contents()」。なぜこのエラーが出るのか。
  • エラーの原因はphp.iniのallow_url_fopenの設定にある可能性があり、修正が必要。
回答を見る
  • ベストアンサー

TwitterへRSSを投稿するbotを作りたい

TwitterへRSSを投稿するbotを作りたい ここのサイトを参考に、http://d.hatena.ne.jp/hebita164/20091128/1259376498 php.iniのallow_url_fopen onを確認、修正箇所の1~3を修正し、 「phpdev」のwwwフォルダにtwitter.phpファイルとしておいて実行したのですが、 Fatal error: Call to undefined function: file_get_contents() in c:\phpdev\www\twitter.php on line 16 と出てエラーが出てしまいます。なぜでしょうか。windowsXPです。

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#243182
noname#243182
回答No.1

エラー内容は、未定義の関数を呼び出したことを伝えています。 とても便利な関数ですが、古いバージョンの PHP では使えません。PHP のバージョンを確認されてはいかがでしょうか。

参考URL:
http://php.net/manual/ja/function.file-get-contents.php
sutoriti81
質問者

補足

古いバージョンだからエラーが出てるのですか。 phpdevでなく普通に最新のphpをインストールをインストールしたのですが、 設定がうまくいかず確認できません・・・orz 少し時間がかかってしまいます。

関連するQ&A

  • Twitter BOTのアイコン変更について

    Twitter BOTのアイコン変更について http://twbot.blogspot.com/2010/03/easybotter2pearhttpoauth.html?spref=tw 上記のサイトを参考に、Twitter BOTのアイコン変更をしたいと思っています。 同じく、上記サイトからDLできるソースをそのまま設置しbot.phpを実行したのですが 以下のエラーが表示され、アイコン変更は出来ませんでした。 エラー内容 Fatal error: Call to undefined method HTTP_OAuth_Consumer::sendRequest2() in /home/***/public_html/***/bot.php on line 11 line 11 のソース $response = $eb->consumer->sendRequest2('http://twitter.com/account/update_profile_image.xml', null, "POST", array('image' => 'fc.jpg','mime' => 'image/jpeg')); OAuthの関係かと思ったのですが、通常の動作(post)は出来、困惑しております。 どなたが御知恵を拝借頂けますと助かります。 宜しくお願い致します。

    • 締切済み
    • PHP
  • botを作っているのですが、oauth認証に関する質問です。

    botを作っているのですが、oauth認証に関する質問です。 http://www.sdn-project.net/labo/twitter_bot.html こちらを参考にbotをbasic認証からoauth認証に切り替えているのですが、以下のエラーが出ています。 TLに一応は反応してくれるのですが、一つのtweetに何回も反応してしまい、とても困っています。 php等がよくわかっていないので、どうすればいいのかまったくわかりません。 ./(botのid)_Since.datを作ればいいのかと思いますが、何をどうすればいいかもさっぱりです。 どなたかわかる方、教えてくだされば幸いです。 Warning: file() [function.file]: Unable to access ./(botのid)_Since.dat in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 27 Warning: file(./(botのid)_Since.dat) [function.file]: failed to open stream: No such file or directory in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 27 Warning: fopen() expects at least 2 parameters, 1 given in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 36 Warning: flock() expects parameter 1 to be resource, boolean given in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 37 Warning: fputs(): supplied argument is not a valid stream resource in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 38 Warning: flock() expects parameter 1 to be resource, boolean given in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 39 Warning: fclose(): supplied argument is not a valid stream resource in /usr/local/www/htdocs/***/public_html/twitter_bot.php on line 40 Normal termination: 0.9656 sec, 10:58:22 以上に出てくるtwitter_bot.phpは http://www.sdn-project.net/labo/twitter_bot.txtをそのまま使っています。

    • 締切済み
    • PHP
  • file_get_contentsで外部URLファイルの読み込みの設定

    外部URLのXMLが取得したく、file_get_contentsで取得しようと思っております。 ただ、サーバマシンからですと、falseが返ってきてしまいます。 環境は、 php 4.3.9(RedhatEL4のup2dateでインストール出来るバージョン) になります。 php.iniの allow_url_fopenはOn default_socket_timeoutも60 と十分取っております。 $content = file_get_contents('http://アドレス'); でテストしますと、 私のローカル(OSX php5.2.1) で確認しますと、正常に取得出来るのですが、 RedhatEL4 php4.3.9で行いますと、 falseが返ってきてしまい、取得出来ません。 なお、サーバマシンからwgetでは取得可能です。 allow_url_fopen以外に、何か設定が必要になりますでしょうか。 アドバイスを頂けませんでしょうか。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • twitter_bot PHPエラーについて教えて下さい。

    twitter_bot PHPエラーについて教えて下さい。 以下のようなエラーが出るのですが、ネットでいろいろ検索しても書いてあることが難しすぎてわかりません。どなたか教えて下さいませんか? (以下が実際のエラー文章) Twitterへの投稿に失敗しました。 ユーザー名:@●●●_bot object(SimpleXMLElement)#10 (2) { ["error"]=> string(19) "Incorrect signature" ["request"]=> string(20) "/statuses/update.xml" } 5分以内に受け取った@はないようです。

    • 締切済み
    • PHP
  • twitterのbotが動かなくなりました。

    twitterのbotがtwitterAPI1.1へのバージョンアップで動かなくなりました。 当方素人なため、最初製作した時もググりながらでしたのでさっぱりわかりません。 コードを書き直す以外にも何かやらなければならないのでしょうか? 下記以外にもファイルがありますが他にも修正しなければいけないのでしょうか? 易しく教えていただけると助かります。 ↓↓↓bot.phpのコードです↓↓↓ #!/usr/local/bin/php <?php require_once ("./oauth/twitteroauth.php"); //インクルードパスを基準に書いたら何故かコマンドラインからの実行でrequrireされなかったのでこのように相対パスを記述 //以下は、上記URLから取得した内容をコピペ $consumer_key = '**************'; $consumer_secret = '*******************'; $access_token = '***************'; $access_token_secret = '**********************'; //リクエストURL作成、XML取得。ここでは5件取得するよう記述 $keyword = urlencode('**'); $url = "http://search.twitter.com/search.atom?q=".$keyword."&rpp=5"; $xml = simplexml_load_file($url); //for文で5件をリツイート for($i=5;$i>0;$i--){ $id = $xml->entry[$i]->id; //それぞれのつぶやきからidを取得 $id = str_replace('tag:search.twitter.com,2005:','',$id); //使うidの部分だけ抜き取る $endpoint = "http://api.twitter.com/1/statuses/retweet/".$id.".xml"; //エンドポイントURL作成 $to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); //twitteroauthクラスのインスタンス生成。 $req = $to->OAuthRequest($endpoint,'POST',array()); //リクエスト送信。リツイートされる。 } ?>

    • 締切済み
    • PHP
  • リモートファイルのrequireに関して

    はじめまして、 PHPのマニュアルには 「php.iniでallow_url_fopenを有効にした場合、 パラメータとしてファイル名をとる関数の多くでHTTPおよびFTPのURL を使用することができます。加えて、include(), include_once(), require(), require_once() 命令でURLを使用することができます。」 とあるのですが、requireでリモートファイルを読みこめません PHP のバージョンは 4.1.2 php.iniでallow_url_fopenが有効(On)になっているのは確認しました。 http://www.****1.com/hoge1.php から http://www.****2.com/hoge2.php を呼び出しています。 hoge1.php及びhoge2.phpのソースは以下のとおりです。 ----hoge1.php-------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML lang="ja"> <HEAD> <META http-equiv="content-type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <TITILE></TITILE> </HEAD> <BODY> <?php require ("http://www.****2.com/hoge2.php"); dispword(); ?> </BODY> </HTML> --------------------------------------------------------------------- ----hoge2.php-------------------------------------------------------- <?php function dispword(){ print xyz; } ?> --------------------------------------------------------------------- 実行結果は Fatal error: Call to undefined function: dispword() in ・・略・・****1.php on line 11 となります。 10行目じゃなく11行目にでてるということは、requireできてるんでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPを使用してTWITTERにつぶやきを投稿する簡単な自分用のサイト

    PHPを使用してTWITTERにつぶやきを投稿する簡単な自分用のサイトを作ろうと思い、PEARをインストールしてTwitter.phpを使用して作っていたらエラーが出て困りました。 エラー内容は下記の通りです。 Warning: require_once(Services/Twitter/Connector.php) [function.require-once]: failed to open stream: No such file or directory in /home/USRENAME/www/Services/Twitter.php on line 23 Fatal error: require_once() [function.require]: Failed opening required 'Services/Twitter/Connector.php' (include_path='/home/USERNAME/www/PEAR') in /home/USERNAME/www/Services/Twitter.php on line 23 と表示されます。 使用している環境は「さくらのレンタルサーバー」スタンダード PHPのバージョンはPHP 5.2.12 [標準のPHP] (CGI版) です。 index.iniは include_path = "/home/USERNAME/www/PEAR" と記載しました。 何分PHPもさほど詳しくないのでエラー内容がわかりません。 どのような対応をしたら良いのかわからなくなり、ここに来ました。 何卒ご指導や参考になるサイトを教えてください。

    • ベストアンサー
    • PHP
  • php.exeが強制終了されてしまう

    ローカルにphpのテスト環境を作って、外部のRSSを読み込もうとしています。環境は以下のようになっています。 WinXP ANHTTPD PHP 4.4.2 レッツPHP!のRSSブロガー(​http://php.s3.to/net/#rss​)をこのローカル環境で試しましたところ、php.exeが強制終了されてしまい実行できません。 エラー「問題が発生したため、PHP Script Interpreter を終了します。 ご不便をおかけして申し訳ありません。」と出て、ブラウザには「サーバーを表示できません」が返ってきます。 エラーの場所を調べたところ、この度インストールしたRSS.phpとParser.phpのうち、Parser.phpの以下の部分でした。 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function setInputFile($file) { /** * check, if file is a remote file */ if (eregi('^(http|ftp)://', substr($file, 0, 10))) { if (!ini_get('allow_url_fopen')) { return $this->raiseError('Remote files cannot be parsed, as safe mode is enabled.', XML_PARSER_ERROR_REMOTE); } } $fp = @fopen($file, 'rb'); →この行でエラーになる if (is_resource($fp)) { $this->fp = $fp; return $fp; } return $this->raiseError('File could not be opened.', XML_PARSER_ERROR_FILE_NOT_READABLE); } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 場所はわかったのですが、原因がわかりません。 ローカルのテスト環境で、外部のファイル(http://~)を読み込むのができないのでしょうか? 対処の方法がありましたら、ご教授願います。

    • ベストアンサー
    • PHP
  • simplexml_load_file() のかわりの simplexml_load_string() がエラーになる

    こんにちわ。 お時間あるかた、どうぞよろしくおねがいします。 現在、RSSを読み込んで、色々な処理をしたいと思っています。 そして、下記のコードを書いたところうまくいきました。 $root = simplexml_load_file($url); ところが、使っているレンタルサーバでは PHP.iniのallow_url_fopenをONにすることが禁止されていることを知ったので、 simplexml_load_string()を使うように、プログラムを書き換えました。(下記抜粋) $response = http($url . $parm); $line = explode("\n" , $response); // HTTPヘッダを消す for ( $i=0 ; $i < 100 ; $i++ ) if ( $line[$i] == "" ) break; // HTTPボディーだけ取得 $xml_str = ""; for ( $i++ ; $i < count($line) ; $i++ ) $xml_str .= $line[$i]; $root = simplexml_load_string($xml_str); こうしたところ、一部のRSSで、Error while parsing the documentが出るようになってしまいました。 いくつか試したところ、amebloのフィードはOKなのですが、他のRSSだとエラーになるようです。 $ret = get_rss("http://feedblog.ameba.jp/rss/ameblo/femiohji"); // OK $ret = get_rss("http://pub.ne.jp/marunohi/?action=rss&type=rss1.0"); // NG というわけで、 simplexml_load_file()のときは動いていたのですが、 simplexml_load_string()にしたらエラーになります。 原因がわからず、行き詰まってしまいました。 よろしくおねがいいたします。

    • ベストアンサー
    • PHP
  • mb_convert_encodingについて

    Fatal error: Call to undefined function: mb_convert_encoding() in c:\apache\htdocs\test\03-03\common.php on line 27 上記のエラーがでます。 mb_convert_encoding[文字エンコーディングを変換する] を利用するにはphp.iniで設定の変更などありますか?

    • ベストアンサー
    • PHP

専門家に質問してみよう