問題タブ [get-headers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - ローカル URI/URL が存在するかどうかを知る方法は?
私の URL がmysite.com/myuriであるとしましょう。私のサイトmysite.com にローカル uri myuriが存在するかどうかを知るために、世界中で知られている多くの方法があります。
- 最も簡単で最速の方法は次のとおり
$uri_exists = file_exists($_SERVER['DOCUMENT_ROOT']."/myuri")
です。 - 次の方法は次のとおりです。
$headers = @get_headers("http://mysite.com/myuri");
$uri_exists = ($headers[0] == "HTTP/1.1 404 Not Found");
- 別の(前のものより少し速い)方法は次のとおりです。
$curl = curl_init('http://mysite.com/myuri');
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_exec($curl);
$info = curl_getinfo($curl);
$uri_exists = ($info['http_code'] == 200);
curl_close($curl);
これらは私が知っている方法でした。最初の方法は、URI が存在するかどうかではなく、ファイルが存在するかどうかを正確にチェックします。を使用すると、このmod_rewrite
方法は非常に不正確になります。
次の 2 つの方法は ( を使用した場合でも) 正確mod_rewrite
ですが、独自のサイトに対してリモート GET 要求を実行するため速度が遅くなります。また、URI が存在するかどうかを知るためだけに、mysite.com のスクリプトが不必要に実行されるため、非効率的です。さらに、 mysql サーバーへの不要なトラフィックが発生します。
私が質問しようとしているのは、mysite.com の PHP スクリプトで、上記の 3 つの方法よりも効率的で正確な方法を使用して、mysite.com/myuriという URL が存在するかどうかを確認することです。
ありがとうございました
平和...
php - 配列phpのキーを確認する
get_headers() を使用しており、コンテンツの長さを返したいと考えています。以下の配列では、コンテンツの長さはキー番号 9 ですが、コンテンツの長さが常にキー番号 9 であるとは限りません。必ずしも同じキーではない理由がわかりません。配列を検索して、キーに関係なく常にコンテンツの長さを返すにはどうすればよいですか? これを関数で使用しているため、ファイルの実際のファイルサイズは毎回異なります。私のコード例は以下のとおりです。前もって感謝します。
php - get_headers() よりも速いもの
Web サイトの HTTP ステータスをできるだけ早くチェックする PHP スクリプトを作成しようとしています。
私は現在 get_headers() を使用しており、mysql データベースからの 200 個のランダムな URL のループで実行しています。
200 件すべてをチェックするには、平均 2 分 48 秒かかります。
それを(はるかに)速くするためにできることはありますか?
(私は fsockopen について知っています - 20 秒で 200 のサイトのポート 80 をチェックできます - しかし、サーバーがポートで応答する可能性があるため、http ステータス コードを要求するのと同じではありません - しかし、ウェブサイトを正しくロードしていない可能性があります)
これがコードです..
c++ - C++自動化を使用してWord文書にヘッダーまたはフッターを挿入する方法
Wordの自動化を使用してWord文書にヘッダーまたはフッターを挿入したい。
ただし、「Range MyRange = Hf.GetRange();」の一部をコーディングします。失敗しました。c++を使用してWord文書にヘッダーまたはフッターを挿入するにはどうすればよいですか?
以下のc#のコードは正しく機能します:
php - ウェブサイトが200を返すかどうかを調べる
次のコードを使用して、ユーザーが提供するリンクが実際に既存のWebサイトを指しているかどうかを確認しました。
テストとして、imghttp ://cdn.thegloss.com/files/2012/04/stormtr.jpgを使用します
これをローカルホストで使用している限り、正常に機能します。つまり、URLが有効で、「not valid1」をエコーしなかったと表示されます。現在、別のサーバーにあり、「notvalid1」をエコーします。どうして?誰かアイデアはありますか?
ありがとう!デニス
php - file_get_contents、curl、get_headers、.. 何も返さない
最初に使ってみた外部ファイル(youtube jsonフィード)の内容を取得しようとしていますfile_get_contents()
. それらのどれも私に何の応答も与えていません。
php.iniallow_url_fopen
で On に設定されています。また、セーフモードをオフにしてみました。
何がうまくいかないのですか?
php - PHP get_headers 例外処理
次のコマンドを実行していますが、例外が発生します。
$headers = get_headers(" http://www.moneysupermarket.com/mortgages/ ", 1);
この例外を処理するにはどうすればよいですか (私の場合、例外が発生しているため、この URL は無視してください)。
私が試してみました:
- トライ/キャッチ
- このリンクのコード: https://stackoverflow.com/a/6184127/1486303
ただし、このエラーはまだ表示されます (無視したい)。
ありがとう!
rest - Promise レスポンスは GET では機能しますが、XHR の POST では機能しません
DOJO 1.8 で XHR.post を介して URL を呼び出そうとしています。promise 応答から STATUS プロパティと getHeader() をキャッチする必要がありますが、問題は、POST で URL を呼び出すと約束がなく、GET で呼び出すと必要なすべてのプロパティがありますが、リクエストを POST としてのみ送信できます。
最も奇妙なのは、AngularJS にうまく動作する別のコードがあることです。このコードは同じことを行います。DOJO と AngularJS をテストしています。
STATUS 情報をキャッチして 201(created) かどうかを確認する必要があります。true の場合は getHeader('location') をキャッチし、getHeader('location') から取得した URL を呼び出す必要があります。
Dojo 1.8 での私のメソッドを見てください。
php - get_header が異なる出力を返す原因となる環境の変更は何ですか?
タイトルのように、2 つの異なる PHP バージョンで同じスクリプトを実行しています。
- 私のサーバー 1- 5.2.17
- 私のサーバー 2- 5.3.19
get_headers($url, 1);
$url は、http および .co.uk を含む google (www なし) でした - または、404 を返す任意の URL を使用します。さまざまな出力の例を次に示します。
私のサーバー 1-
[Server] => gws
【ヘッダーより抜粋】
私のサーバー 2-
[サーバー] => 配列 [ヘッダーから収集]
/li>
私が推測するのは、サーバー 2 が 301 の場所をたどり、それをヘッダーに追加していることです。サーバー 1 の配列には 301 ヘッダーしかありません。
したがって、サーバー 2 は " http://google.co.uk " に移動します (これは 301 を返します)。そしてそれを「http://www.google.co.uk/」までたどり、両方の応答を同じ出力に追加します。
私の質問は何ですか - 変化の原因は何ですか? PHP チャネル ログを確認しましたが、get_headers への言及が見当たらないので、何か不足しているに違いありません。
異なる出力の原因を知っていて、変更を元に戻す方法を (古い PHP バージョンに戻さずに) 知っているなら、大いに感謝します。cURL を使用できることはわかっていますが、実際には使用したくありません。
完全なコード (検証などなし)
PHP 5.2 では、$server を echo すると、「Apache」のようなものになります。
PHP 5.3 の場合 - $server を echo すると、"Array" になります (301 に達した場合)。
最後に、$sever を DB に格納することを計画しています。そこに「配列」を保存できない/したくない。
ありがとう。
php - コンテンツ/ページ/ファイル全体をロードする前にPHPでヘッダーを取得するにはどうすればよいですか?
背景情報:
- オンラインのさまざまなソースから動的にいくつかのURLを収集しています。
- HTMLページまたは画像の場合はURLのコンテンツを取得したいと思います。
- 大きなファイル(ダウンロードzip、pdfなど)をロードしたくありません。ターゲットが私にとって面白くないことを理解するためだけです。
実際にコンテンツをフェッチする前に、PHPで応答のタイプ/フォーマットを確認する方法はありますか?(自分自身とターゲットサーバーのリソースと帯域幅を浪費しないようにするため)
(get_headers()
PHPのドキュメントで見つけましたが、関数が実際にコンテンツ全体をフェッチしてヘッダーを返すのか、それとも最初にコンテンツをダウンロードせずにサーバーからヘッダーのみを取得するのかはわかりません。また、取得するための解決策を見つけました。 CURLとfsocketopenのヘッダーですが、実際のコンテンツをロードせずに実行できるかどうかという疑問が残ります)