• ベストアンサー

proxy経由でfile関数で、HTMLソースを取得するには

ローカルのマシン(apache2+php5)から proxy経由でURLをfile関数を利用し、HTMLソースを取得するにはどのように プログラムすればいいのでしょうか? proxy経由でなければ <?PHP $lines = file ('http://yahoo.co.jp'); for($i=0;$i<sizeof($lines);$i++){ $lines[$i] = HtmlSpecialChars($lines[$i]); echo "$lines[$i]"; echo "<BR>"; } ?> で正常稼動を確認しました。 上記プログラムをproxy経由で行うにはどのようにすれば よいのでしょうか?

  • 12054
  • お礼率80% (4/5)
  • PHP
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
回答No.2

file関数では、恐らく無理なんじゃないかと思います。 file関数に拘らないのであれば、fsockopen関数でproxyを使用できます。 http://jp2.php.net/manual/ja/function.fsockopen.php の下の方(User Contributed Notes)の、Sherif Gayedさんの投稿が参考になると思います。

12054
質問者

お礼

大変参考になりました。 Sherif Gayedさんの投稿を実際に処理させてみた所 問題なく動きました。 大変助かりました。ありがとうございました。

その他の回答 (1)

回答No.1

ファイルシステム関数(file ,fopen等)で出来るかはちょっと分かりません。ざっと見た感じ駄目そうですが(本来ローカルファイルを扱う関数群でしょうから)。 curl関数ならプロキシ設定があるので出来そうです。 http://jp2.php.net/curl 参考まで。

12054
質問者

お礼

回答ありがとうございました。 curl関数は初めて接する機会になりそうです。 勉強してみます。ありがとうございました。

関連するQ&A

  • PHPでHTMLソースを取得する方法はありますか?

    PHPでHTMLソースを取得する方法はありますか? RSSで複数のHTMLソースを取得しました。 以下のことをやりたいのですが、こういったことは可能でしょうか? ・複数のHTMLソースを取得する(同じサイトからなのでタグの種類も大体同じものです) ・その中から<data>タグを取得する(dataの中にはそれぞれ適当な数字が入っています) ・それをソートして、ソート順にURLを表示する。 このようなことは可能でしょうか? $RSS=RSSのURL(XML) foreach($RSS as $value){ $URL[]=$value->URL; } for ($i = 0, $n = count($URL); $i < $n; $i++) { echo $URL[$i] . "<br />"; } これでそれぞれのURLが URL1 URL2 URL3 とそれぞれ表示されます。これらのURLからそれぞれの<data>タグを取得して上のようなことをやりたいです。 説明が下手で申し訳ありませんが、よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPの入力フォームの確認画面の構文エラー

    <?php session_start(); require_once "define.php"; echo "<b>質問内容</b><br>"; echo "タイトル : ".htmlspecialchars($_SESSION[TITLE], ENT_QUOTES)."<br>"; echo "URL : ".htmlspecialchars($_SESSION[URL], ENT_QUOTES)."<br>"; echo "メール : ".htmlspecialchars($_SESSION[MAIL], ENT_QUOTES)."<br>"; echo "<br>質問ありがとうございました。<br><br>"; echo "<a href=\"./index.php\">入力フォームに戻る</a>"; ?> こういう感じのPHPの構文を書いたんですがなぜか echoで表示してあるタイトル、URL、メールのところが ちゃんと表示されません define.phpは間違いなくちゃんとファイルとして書いてあります どこか間違っているところがあるのでしょうか? 原因がわかりません、一日中悩んだけど 答えがわかりません、どなたかよろしくお願いします。

    • 締切済み
    • PHP
  • Proxy経由でサイトにアクセスする方法を教えてください

    サイバーシンドロームなどで取得したproxyとポート番号を用いて、サイトにアクセスする方法(もちろんPHPのプログラム上で)を教えてください。 具体的には、linkでプロキシ経由のURLを指定したいです。 例えば、以下のリンクを叩くと、proxy経由でリンクされたことにしたいです。 <a href="http://www.yahoo.co.jp">ヤフー</a>  hrefの指定の方法にoptionを指定するだけなのか、それとも通信関連の関数を使用しなければいけないのか、実装方法も分からない状態で苦戦しております。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • クッキーを使わないセッションPHP

    を作ったのですがまずい点があったら教えて下さい 入力を一行ずつ並べるものです <?php session_name('asdsddzddzfssd'); session_start(); session_register('lines'); $self=$_SERVER['PHP_SELF'].'?'.htmlspecialchars(SID); $line=isset($_POST['line'])?htmlspecialchars($_POST['line']):''; if($line!='')$_SESSION['lines'] .= $line.'<br/>'; echo' <form action="'.$self.'" method="post"> <p>1行: <input name="line"/></p> </form> 過去の全行:<br/>'.$_SESSION['lines']; ?>

    • ベストアンサー
    • PHP
  • ローカルのHTMLファイルを開く際、ファイルに変数を渡すことは可能ですか?

    こんにちは。お世話になります。 たとえば http://oshiete1.goo.ne.jp/kotaeru.php3?q=1904866 というのは、サーバ上のkotaeru.php3というスクリプトに q=1904866という変数を渡した場合の出力をリクエストしているわけですが、 変数の値を変えることにより、出力の内容を変化させることができます。 いま、ローカルPC環境での閲覧を前提としたHTMLファイルを作成しています。(すなわち、ハードディスク上にあるHTMLファイルを、単にブラウザで表示させるだけです。PCにパーソナルウェブサーバを稼動させて、そのサーバの応答を表示させたりするわけではありません。) HTMLファイルを表示させる際に、呼び出しURLの変数の値を変えることによって表示内容を変化させるファイルを作成したいのですが、そのようなことは可能でしょうか。 ---- ↓以下、なんとなく具体的?な例(ハードディスク上のHTMLファイル) <html> <body> <a href="sample.html?★=10">表示行を10回表示</a><br> <a href="sample.html?★=50">表示行を50回表示</a><br> <a href="sample.html?★=100">表示行を100回表示</a> </body> </html> ---- ↓sample.html(呼び出すHTMLファイル)の内容 <html> <body> <script language="JavaScript">   ● = URLから★の値を取得する;   for(i=0; i<●; i++){     document.write("表示行<br>");   } </script> </body> </html> ---- 何百種類もHTMLファイルを作るのが面倒なので、なんとかしたいと考え、質問させていただきました。 JavaScriptでも他言語でもかまいません。HTMLファイルをCD-ROMで配布するため、PHPなどをインストールしなくても可能な方法があれば、ご教授くださいませんでしょうか。(小ウィンドウを動的に生成する方法も考えたのですが、できればURLを使って変数を渡したいです。) よろしくお願いします。

  • PHPについて質問です。

    PHPについて質問です。 <?php $lines0 = file('data.txt'); $lines = array_reverse($lines0); foreach ($lines as $line_num => $line) { echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n"; } ?> でファイルの内容は表示することができるようになったのですが、 次に、$linesをテキストエリアに表示させようとすると、Arrayと表示されます。 <textarea name="textarea" cols="50" rows="5" disabled="disabled">$lines</textarea> どうすれば解決できるでしょうか?

    • ベストアンサー
    • PHP
  • PHP入りのHTMLファイルの属性について

    PHPを使えるレンタルサーバーを試しているのですが、PHPを内包しているHTMLをアップして動作させようとすると、そのファイルに実行権がないとき「Internal Server Error」となってしまいます。 以前に使っていたレンタルサーバーでは実行権なんか必要なかった筈です。 全てのPHPに実行権をつければ済む話ではありますが、数が多いと面倒です。 実行権なしに動作させる方法はありませんか? php.ini や .htaccess の設定でなんとかなりませんでしょうか? 例えばこのファイル--------------------------- <html> <head> <META http-equiv="Content-Type" content="text/html; charset=euc-jp"> </head> <body> <script language="php"> echo date('Y/m/d H:i:s'); echo "<BR>"; </script> </body> </html> ここまで---------------------------

    • ベストアンサー
    • PHP
  • プロキシを経由して他サイトのデータを取得する

    プロキシを経由して他サイトのHTMLファイルを取得しようとしているのですがうまくいきません。 私がためしたのはLWP::UserAgentを用いた方法で my $uap = LWP::UserAgent->new; $ENV{HTTP_PROXY} = 'http://proxy:8080'; $ENV{FTP_PROXY} = 'http://proxy:8080/'; $ENV{HTTP_PROXY_USERNAME} = 'name'; $ENV{HTTP_PROXY_PASSWORD} = 'pass'; $uap->env_proxy(); という感じです。 プロキシ内のページからは普通にHTMLファイルが取得できますがプロキシ外はまったく取得できません。 良い方法があったら教えて下さい。お願いします。

    • ベストアンサー
    • Perl
  • HTMLファイルにPHPファイルを組み込むとエラー

    HTMLファイルの拡張子をPHPへ変更し(正常に見えることを確認した)そのPHPファイルへ別に作成したPHPファイルを追加ペーストしたのですが下記のエラーが出て困っています。別に作成したPHPファイルは、単独では正常に見えるので、何故エラーが出るのかご教示をお願いします。検索すると下記のエラーと同じ内容が表示されたHPばかりでどうやって修正したら良いかわかりません。私としては、もともと作成したHTMLファイルにPHPを組み込めると時間的に楽なのですができないようなので仕方なくPHPへ変更してそれにコンテンツを追加しようとしています。PHPは、今回初めてなのでほとんど素人です。 Warning: include(magpierss-0.72/rss_fetch.inc) [function.include]: failed to open stream: No such file or directory in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\popup\popup2.php on line 156 Warning: include() [function.include]: Failed opening 'magpierss-0.72/rss_fetch.inc' for inclusion (include_path='.;c:/php/includes;C:/php/PEAR;c:/php/popup/includes') in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\popup\popup2.php on line 156 Fatal error: Call to undefined function fetch_rss() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\popup\popup2.php on line 258 156行の文は include('magpierss-0.72/rss_fetch.inc'); です。 258行は function getRss($rssInfo) { $feed = fetch_rss($rssInfo['url']); ファイルが開けない?とうエラーは、単独では表示されなかった。何か使い方が悪いのかその辺も含めて教えていただけたらと思い投稿させていただきました。検索で調べましたが、同じエラー内容が表示されたHPがたくさんあり根本的な単純な間違いかもしれませんが宜しくお願いします。

    • 締切済み
    • PHP
  • ApacheにてHTML・PHPファイルが文字化けします

    現在、業務の関係でHTML・PHPファイルをブラウザで表示させているのですが、あるファイル(HTML・PHP両方とも)のみ文字化けをおこしてしまうのです。 OS:TurboLinuxServer6.1 Webサーバ:Apache1.3.26 ブラウザ:Netscape4 PHP:PHP3.0.18 HTML・PHPファイルの上には「charset=Shift_JIS」と、すべてのファイルに記述しています。 PHPのiniファイル内の「i18~」もShift_JISに統一しています。 Apacheのhttpd.confの設定も行なったのですが、効果がありませんでした。 ちなみに、HTML・PHPファイルはWin→Linuxにコピーするとき、秀丸でファイル形式を「EUC(改行=lf)」で保存しました。(こうしないと、改行に変な文字がついてしまうので) gooで検索をかけたところ、ファイルのパーティションを705にかえる方法がありましたが、それも関係あるのでしょうか? なにか、よきアドバイスがあればお願いいたします。

    • ベストアンサー
    • HTML

専門家に質問してみよう