質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

5578閲覧

リンク先のURL状況を知るためのPHPコード

coinbura

総合スコア106

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

1グッド

3クリップ

投稿2016/04/10 18:11

リンク先のURLがアクセスできない状態かどうかの(PHPでの)チェック方法は、検索すればやたら沢山出てくるし、teratail内でも見つける事ができました。(動作も確認)

https://teratail.com/questions/1680

しかし、それが301や302等、転送が絡むとどうしてもうまくいきません。

単純にリンクをクリックした時に、最終的に行き着く場所が意図したもの(aタグで指定したURL)になっているかどうかをチェックしたいのですが、方法はありますでしょうか?

ご教授いただければ幸いです。
よろしくお願いいたしますm(__)m

zico_teratail👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

cURLでLocationを追跡してCURLINFO_EFFECTIVE_URLを見るのがセオリーです.また,URLをチェックするだけならGETではなくHEADにしたほうがサーバに対する負荷も通信時間も削減できるので,HTTPリクエストメソッドも変更しておきましょう.

php

1<?php 2 3$ch = curl_init(); 4curl_setopt_array($ch, [ 5 CURLOPT_URL => 'https://twitter.com/re4k', // もとのURL 6 CURLOPT_FOLLOWLOCATION => true, // Location追跡 7 CURLOPT_NOBODY => true, // HEADに変更 8]); 9curl_exec($ch); 10var_dump(curl_getinfo($ch, CURLINFO_EFFECTIVE_URL)); 11/* 12string(37) "https://twitter.com/account/suspended" 13*/

投稿2016/04/10 22:32

mpyw

総合スコア5223

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coinbura

2016/04/11 06:50

できました! 明快かつ具体的なソース、ありがとうございます!
guest

0

CUrlCURLOPT_FOLLOWLOCATION オプションで再帰的にリンクをたどれます。

【PHP: curl_setopt - Manual】
http://php.net/manual/ja/function.curl-setopt.php

【CUrlでリダイレクト先の取得(CURLOPT FOLLOWLOCATION) - wiki - PCスキルの小技・忘却防止メモ】
http://tips.recatnap.info/wiki/CUrlでリダイレクト先の取得(CURLOPT_FOLLOWLOCATION)

【PHPのcurlでPOST - Qiita】
http://qiita.com/khirose/items/870ffec6ce4562f54c9d

投稿2016/04/10 18:27

kei344

総合スコア69364

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coinbura

2016/04/11 06:51 編集

ありがとうございます♪ すごく参考になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問