2017-10-05 28 views
0

URLにすべてのURLをチェックし、そのURLに "video"フォルダが含まれている場合はAPIファイルにリダイレクトします。 APIは私に "respond:true"または "respond:false"のみを含むjsonファイルを与えます。応答がある場合:jsonファイルにtrueが表示されなければならず、jsonファイルに応答が含まれている場合:false事前定義された単純な403ページをユーザーに表示する必要があります。php経由でapiを呼び出してjsonファイルを取得する方法

私は拳の部分は、このような.htaccessファイルで簡単なコードで可能であることを知っている:

RewriteRule ^your/special/folder/ /specified/url [R,L] 

しかし、私は、第二の部分を行う方法がわかりません。私は、jsonファイルの形であり、それをチェックするAPIの結果を取得する方法を意味します。

答えて

1

あなたは...あなたはまた、APIデータを取得するためにfile_get_contentを使用することができます

GETリクエスト

$url = 'http://example.com/api/products'; 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_HTTPGET, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$response_json = curl_exec($ch); 
curl_close($ch); 
$response=json_decode($response_json, true); 

POSTリクエスト

$postdata = array(
     'name' => 'Arfan' 
    ); 

    $url = "https://example.com/api/user/create"; 

    $curl = curl_init($url); 
    curl_setopt($curl, CURLOPT_HEADER, false); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_POST, true); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); 

    $json_response = curl_exec($curl); 
    $status = curl_getinfo($curl, CURLINFO_HTTP_CODE); 
    curl_close($curl); 

をCURLを使用することができます。

$json = file_get_contents("$url") 
1

あなたは(APIとレスポンスを呼び出す)第二部を実行することができます。その応答に基づいてカールやプロセスを使用してAPIを呼び出します

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_POST, false); 
curl_setopt($ch, CURLOPT_URL, "api_url_here"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$api_response_json = curl_exec($ch); 
curl_close($ch); 
//convert json to PHP array for further process 
$api_response_arr = json_decode($api_response_json); 

if($api_response_arr['respond'] == true){ 
    //code for success here 
}else{ 
    // code for false here 
} 

ご注意:APIからJSONレスポンスは、APIレスポンスに依存しています、 APIがjson形式で応答している場合(paramsにも基づいています)

+0

良い解決策。しかし私はすでにベースURL(ユーザーが要求しているulr)を保持したい場合、リダイレクトのために.htaccessファイルを使用できないことを私はすでに知っていました!!だから、どのように私はすべてのリクエストされたURLを強制的にAPIによってPHPファイルを使用してチェックすることができますか? – shekoufeh

+0

@shekoufehルーティングの前に上記のコードを使用したり、他のコードの前にindex.phpで使用することができます。それに応じて条件を設定してください – BSB

+0

ビデオファイルが要求されるたびにそれをやりたいだけです。 PHPファイルはありません。私はこの部分で本当に混乱しています... – shekoufeh

関連する問題