我想从google suggest得到随机的建议;但我看到
《赛琳娜》、《赛琳娜·戈麦斯》、《赛琳娜·戈麦斯时代》、《赛琳娜·戈麦斯歌曲》、《赛琳娜·戈麦斯电影》、《赛琳娜·戈麦斯彪马》、《赛琳娜·戈麦斯2018》、《赛琳娜·戈麦斯新歌》、《赛琳娜·戈麦斯网友》、《赛琳娜·戈麦斯专辑》
不要随意工作:
$suggURL =
'http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&hl=en-US&q=' .
urlencode("selena");
$context = stream_context_create(array(
"http" => array(
"header" =>
"User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36",
),
));
$data = file_get_contents($suggURL, false, $context);
//$data=$this->get_web_page( $suggURL );
$data = preg_replace('/]/', '', $data); // remove numbers
$data = str_replace('[', "", $data);
$data = str_replace('r', "", $data);
$data = str_replace('"', "'", $data);
$data;
$a = ['' . $data . ''];
echo "<br/>";
echo $website = $a[mt_rand(0, count($a) - 1)];
"\n";发布于 2019-03-07 17:24:46
$data变量包含一个JSON字符串,所以您对它的处理方式是错误的。请改用json_decode()。
<?php
$suggURL =
'http://suggestqueries.google.com/complete/search?output=firefox&client=firefox&hl=en-US&q=' .
urlencode("selena");
$context = stream_context_create(array(
"http" => array(
"header" =>
"User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36",
),
));
$data = file_get_contents($suggURL, false, $context);
$a = json_decode($data);
echo "<br/>";
echo $a[1][mt_rand(0, count($a[1]) - 1)];
"\n";
?>解释:
$data的格式如下:
["selena",["selena gomez","selena","selena gomez age","selena gomez songs","selena movie","selena gomez movies","selena gomez net worth","selena death","selena songs","selena gomez back to you"]]它是JSON格式,所以对于print_r($a);,使用json_decode()会得到如下结果
Array ( [0] => selena [1] => Array ( [0] => selena gomez [1] => selena [2] => selena gomez age [3] => selena gomez songs [4] => selena movie [5] => selena gomez movies [6] => selena gomez net worth [7] => selena death [8] => selena songs [9] => selena gomez back to you ) )您现在可以访问$a[1],它是建议的数组,并从echo $a[1][mt_rand(0, count($a[1]) - 1)];获得随机建议
发布于 2019-03-07 17:28:55
请仔细检查数组是否被正确处理,您可以使用以下代码从数组中选取随机值
$rant = $data[1][ mt_rand(0, count($data[1])-1 ) ];下面是一个工作示例;
$data = ["saleena",["saleena","saleena meaning","saleena saleena","saleena clarence","saleena khan","selena gomez songs","saleena shaheen aricent","saleena name meaning","selena songs","selena gomez status"]];
$rant = $data[1][ mt_rand(0, count($data[1])-1 ) ]; https://stackoverflow.com/questions/55039566
复制相似问题