首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌的建议随机php

谷歌的建议随机php
EN

Stack Overflow用户
提问于 2019-03-07 16:51:01
回答 2查看 67关注 0票数 0

我想从google suggest得到随机的建议;但我看到

《赛琳娜》、《赛琳娜·戈麦斯》、《赛琳娜·戈麦斯时代》、《赛琳娜·戈麦斯歌曲》、《赛琳娜·戈麦斯电影》、《赛琳娜·戈麦斯彪马》、《赛琳娜·戈麦斯2018》、《赛琳娜·戈麦斯新歌》、《赛琳娜·戈麦斯网友》、《赛琳娜·戈麦斯专辑》

不要随意工作:

代码语言:javascript
复制
$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";
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-07 17:24:46

$data变量包含一个JSON字符串,所以您对它的处理方式是错误的。请改用json_decode()

代码语言:javascript
复制
<?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的格式如下:

代码语言:javascript
复制
["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()会得到如下结果

代码语言:javascript
复制
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)];获得随机建议

票数 1
EN

Stack Overflow用户

发布于 2019-03-07 17:28:55

请仔细检查数组是否被正确处理,您可以使用以下代码从数组中选取随机值

代码语言:javascript
复制
$rant = $data[1][ mt_rand(0, count($data[1])-1 ) ];

下面是一个工作示例;

代码语言:javascript
复制
$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 ) ]; 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55039566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档