2017-12-16 20 views
1

json結果のキャッシュをカールしたいがエラーが発生する function grabe($ url、$ dir、$ rename、$ time = '0'、$ format = 'json'){PHP CURLとJSONのキャッシュ結果

$tmp_dir = 'cache'; 
$dir=$tmp_dir.$dir; 
$rename=md5($rename); 
$file=$dir.'/'.$rename.'.'.$format; 
if(!is_dir($dir)) {mkdir($dir, 0755);} 
$cachetime=(60*$time); 


if (file_exists($file) && time() - $cachetime < filemtime($file)) 
{ 
    $rawdata=file_get_contents($file); 
    return $rawdata; 
}else 
{ 
    $ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$uaa = $_SERVER['HTTP_USER_AGENT']; 
curl_setopt($ch, CURLOPT_USERAGENT, "User-Agent: $uaa"); 
$rawdata=curl_exec ($ch); 
curl_close ($ch); 
if($rawdata){ 
$fp = fopen("$file",'w'); 
fwrite($fp, $rawdata); 
fclose($fp);  
return $rawdata; 
    } 

}} 

EROR言っ出力:

Fatal error: Uncaught ArgumentCountError: Too few arguments to function grabe(), 1 passed in /home/hdmoviewap/public_html/index.php on line 182 and at least 3 expected in /home/hdmoviewap/public_html/core/init.php:3 Stack trace: #0 /home/hdmoviewap/public_html/index.php(182): grabe('https://www.goo...') #1 {main} thrown in /home/hdmoviewap/public_html/core/init.php on line 3 

私の182ラインのindex.phpあなたがgrabeのfunctioを呼び出しているためだ

$grab=grabe('https://www.googleapis.com/youtube/v3/search?key='.$key.'&part=snippet&order=relevance&maxResults=20&q=Latest+Bollywood+Video&type=video'); 

答えて

1

を吹きましたnだけのURLを持つが、dirおよびrenameパラメータの値はありません。それは親愛修正方法

$grab=grabe('https://www.googleapis.com/youtube/v3/search?key='.$key.'&part=snippet&order=relevance&maxResults=20&q=Latest+Bollywood+Video&type=video', 'dir', $rename); 
+0

だから、あなたのような何かが必要ですか? –

+0

もう2つのパラメータを渡すだけです。 $ grab = grabe(url)を実行していて、$ grab = grabe(url、 'directory'、 'rename')を実行する必要があります。 – jeprubio

+0

ここでindex.phpの182行にありますか? –