PHPで<title>タグ取得の動作が非常に重い
$html = file_get_contents($url);
if(preg_match( "/<title>(.*?)<\/title>/i", $html, $match)) {
}
上記のような方法で一度に(1ページ内で)30サイトほどの<title>タグを取得すると、不可がかかり、表示までにかなり時間がかかってしまいます。
preg_match では重いのでしょうか。
それとも一度に30サイトはそもそも無理があるのでしょうか。。
No.2ベストアンサー
- 回答日時:
取得先のコンテンツ、あるいはサーバー自体が重いとは考えられませんか?たとえば、preg_matchで検索せずに、そのまま読み込むのにどれくらい時間がかかりますか?また、titleタグはheadタグ内にあると決まっているので、バイト数などで読み込む量を制限するといくらかは軽くなるかもしれませんね。
取得先のコンテンツが重いのはどうにもなりませんが、PHPでなくJSの使用が可能であるならば、非同期で取得することで、体感としてはいくらか向上すると思います。
ありがとうございます。
preg_match部分を外して試しても、やはり変わらず重いままでした。
↓そこで、ご指摘のバイト数を調整してみました。
$html = file_get_contents($url, NULL, NULL, 0, 1500);
だいぶ軽くなりました。
今で普通に重いサイトだなぁ、くらいの体感です。。
後はAjaxにする方法しかないんでしょうかね。
No.3
- 回答日時:
No2です。
最新の情報を取得しなくてもよいのであれば、定期的(1時間おきくらい)にタイトルを取得するプログラムをつくって、その結果(CSVなど)を読み込むことで、毎回重いのは回避できると思います。いわゆるキャッシュファイルをつくって読み込むということですね。また、1時間おき程度の頻度なら、アクセス毎の取得よりも相手サイトに迷惑がかからないと思いますし、自分のサーバーの負荷も軽減できます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP PHPプログラムの間違い 1 2022/10/06 14:33
- PHP php ログイン 1 2022/11/01 00:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#で特定LANアダプタの状態を取...
-
「取得先」という表現について
-
アクセスの度にIPアドレスを変...
-
ファイル名のリスト取得について
-
ミュージックのアートワークを...
-
C++で特定のURLにアクセスする...
-
Excel VBA:特定の文字列以降(...
-
format関数について
-
VBS「開いているページ」のURL...
-
各クライアントマシンのログイ...
-
【VBA】EXCELブックを開かずに...
-
Macアドレスの取得方法
-
表示している画面サイズの取得方法
-
自動車教習所について 質問 普...
-
PHP の cURL で、htmlを画像へ...
-
C# ASP.NET でIPアドレスからア...
-
積立投資してます。現在平均取...
-
perl LWPでURLにアクセスした時...
-
特定ページの更新情報をRSSで取...
-
IEを使わないでhtmlテキストを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「取得先」という表現について
-
IEを使わないでhtmlテキストを...
-
Yahoo! JAPAN IDを新規取得でき...
-
不正競争防止法に該当するので...
-
ps3で久しぶりにCDの音楽情報取...
-
format関数について
-
【VBA】EXCELブックを開かずに...
-
自動車教習所について 質問 普...
-
Excel VBA:特定の文字列以降(...
-
VBAでPDFファイルの文書のプロ...
-
【C#】FindWindowExの使い方を...
-
ミュージックのアートワークを...
-
アクセスの度にIPアドレスを変...
-
ローカルのコンピュータ名を取...
-
各クライアントマシンのログイ...
-
IPアドレスとMACアドレスを取得...
-
積立投資してます。現在平均取...
-
VB or VBScriptでPCの製造番号...
-
VBS「開いているページ」のURL...
-
EXCEL、マクロ-改ページ行番号...
おすすめ情報