先说一下我遇到的问题吧。
1、页面js报错,说'src'不存在。
2、拿到数据后json_decode()返回NULL。
解决:
1、js报错,我在本地(环境下通过localhost访问的php文件),放到线上环境,报错消失。
2、返回NULL,首先我们拿到数据不是纯json格式的,无法直接转换需要 去头去尾,并且编码格式也不是UTF-8的需要转码。
下面是我写的demo:
php文件:
<?php
//访问的接口
$url = $_POST['url'];
//开始分页下标
$offset = empty($_POST['offset'])?0:$_POST['offset'];
//结束分页下标
$id = $_POST['page'];
if(!$url||!$id){
echo '请输入必要信息';
exit;
}
//去除你传入的url中的分页数,
$leftNum = strpos($url,'page=')+5;
$rigetNum = strpos($url,'&pageSize');
$urlLeft = substr($url,0,$leftNum);
$urlRight = substr($url,$rigetNum);
$i = $offset;
header('Content-Type:text/html;charset=utf-8');
while ($i<$id){
//重新拼接访问url地址
$url = $urlLeft . $i . $urlRight;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => array('a' => '123','b' => '456'),
CURLOPT_HTTPHEADER => array(
"Cookie: JSESSIONID=768126C3E357B9D82367536A90FA697F.s1; jwotest_product=99"
),
));
$output = curl_exec($curl);
curl_close($curl);
//这里的'fetchJSON_comment98'字符串你要自己看一下与可能不同。
//去除得到的json数据的头部和尾部数据。得到一个和php可以转换的json数据。
$output = str_replace('fetchJSON_comment98(', '', $output);
$output = str_replace('}]});', '}]}', $output);
//检查编码格式
$encode = mb_detect_encoding($output, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));
if($encode == 'UTF-8'){
//echo $encode;
}else{
//编码转换,转成UTF-8
$output = mb_convert_encoding($output, 'UTF-8', $encode);
}
//转码转成数组
$result = json_decode($output, true);
//判断是否是数组,防止空数据,下面的foreach保错。
if(!is_array($result)){
break;
}
foreach ($result as $k=>$v){
//数组里还有其他的一些杂数据,需要去除掉。我这个在以后的日子里不一定准,你要自己查看一下在做过滤。
if (is_array($v)&&isset($v[0]['content'])) {
foreach ($v as $key => $value) {
//直接输出到页面上并换行
echo $value['content']."<br/>";
///着里我是想存入文件的,需要可以打开,文件目录自己设置一下。
// file_put_contents('static/log/log.txt',$value['content'].PHP_EOL,FILE_APPEND);
}
}
}
$i++;
}html页面:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action="./index.php" method="POST" > <table> <tr> <td>网址</td> <td><input type="text" name="url" placeholder="输入商品用户评论接口地址" style="width: 300px"></td> </tr> <tr> <td>开始页数</td> <td><input type="text" name="offset" placeholder="输入开始的页数,默认为0" style="width: 300px"></td> </tr> <tr> <td>结束页数</td> <td><input type="text" name="page" placeholder="输入结束的页数" style="width: 300px"></td> </tr> <tr> <tr> <td></td> <td><input type="submit" value="提交"></td> </tr> </table> </form> </body> </html>
它的评论接口我相信你可以自己通过f12搞到。。。
效果图:

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号