重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
json_decode函数就可以,试试看这样的语句你就明白了:
成都创新互联主要从事网站制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务大埔,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
$obj=json_decode($res);
$arr=json_decode($res,true);
print_r($obj);
print_r($arr);
这个可以通过PHP的curl请求来提交数据到其他的网站!获取执行的结果即可!以下是一个示例。
function curlpost($data,$url){ //curlpost提交函数
$data=array('data'=$data);
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL, $url );
curl_setopt ($ch, CURLOPT_POST, true );
curl_setopt ($ch, CURLOPT_HEADER, 0 );
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt ($ch, CURLOPT_POSTFIELDS, $data );
$state=curl_exec ($ch );
curl_close ($ch );
return $state;
}
这个需要配合js,打开一个html页面,首先js用ajax请求页面,返回第一个页面信息确定处理完毕(ajax有强制同步功能),ajax再访问第二个页面。(或者根据服务器状况,你可以同时提交几个URL,跑几个相同的页面)
参数可以由js产生并传递url,php后台页面根据URL抓页面。然后ajax通过php,在数据库或者是哪里设一个标量,标明检测到哪里。由于前台的html页面执行多少时候都没问题,这样php的内存限制和执行时间限制就解决了。
因为不会浪费大量的资源用一个页面来跑一个瞬间500次的for循环了。(你的500次for循环死了原因可能是获取的数据太多,大过了php限制的内存)
不过印象中curl好像也有强制同步的选项,就是等待一个抓取后再执行下一步。但是这个500次都是用一个页面线程处理,也就是说肯定会远远大于30秒的默认执行时间。
你大概要先搞清楚 页面(前端) 和 PHP(后端) 的关系;
第一个页面 由 A.php完成, 提交后 输入的内容 交给B.php 由B.php 生成第二个页面。
这个时候 A.php已经不起作用了。 A.PHP 提交的内容在服务器端的 全局变量$_POST['name']里面(name 就是A.PHP中TEXTAREA 标签的name 属性值)。
注意 : 第一个页面不存在了,要想显示第一个页面的内容,就在B.php.中把第一个页面复制一遍。把重新建立一个textarea 标签 默认值是你要显示的值,
方法1: 用file_get_contents 以get方式获取内容
[php] view plaincopyprint?
?php
$url='';
$html = file_get_contents($url);
echo $html;
?
方法2: 用fopen打开url, 以get方式获取内容
[php] view plaincopyprint?
?php
$fp = fopen($url, 'r');
//返回请求流信息(数组:请求状态,阻塞,返回值是否为空,返回值http头等)
[php] view plaincopyprint?
stream_get_meta_data($fp);
[php] view plaincopyprint?
while(!feof($fp)) {
$result .= fgets($fp, 1024);
}
echo "url body: $result";
fclose($fp);
?
首先你需要使用对方约定方式获取,然后考虑是否使用缓存,最后获取到数据后使用json_decode函数解析成数组格式,接下来就是自己的逻辑代码了。