Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将php curl更改为json响应_Php_Json - Fatal编程技术网

将php curl更改为json响应

将php curl更改为json响应,php,json,Php,Json,目前我有一个php文件,它通过curl将数据返回给客户机,我已将客户机更改为响应JSON,以处理一个问题,所有这些都非常有效。但是现在可以将数据作为JSON对象返回了。它目前返回了很多我不感兴趣的html标记等,我想返回原始文本作为示例,文本的格式是C5:3 下面是代码,如果有人能给我指出正确的方向,我将不胜感激 //set POST variables $url = $_POST['url']; unset($_POST['url']); $fields_string = "";

目前我有一个php文件,它通过curl将数据返回给客户机,我已将客户机更改为响应JSON,以处理一个问题,所有这些都非常有效。但是现在可以将数据作为JSON对象返回了。它目前返回了很多我不感兴趣的html标记等,我想返回原始文本作为示例,文本的格式是C5:3

下面是代码,如果有人能给我指出正确的方向,我将不胜感激

//set POST variables
  $url = $_POST['url'];
  unset($_POST['url']);
  $fields_string = "";
  //url-ify the data for the POST
  foreach($_POST as $key=>$value) {
   $fields_string .= $key.'='.urlencode($value).'&';
   }
  rtrim($fields_string,"&");
   //open connection
   $ch = curl_init();
   //set the url, number of POST vars, POST data
   $url .= '&';
   $url .= $fields_string;
   curl_setopt($ch,CURLOPT_URL,$url);
   //execute post

   $string = curl_exec($ch);

   curl_close($ch);
我希望像这样返回一个JSON对象

$data = array('success'=> true,'message'=>'C5;3');
这是客户端代码

     $("button.checkStatus").click(function(){
            //This Ajax checks the current on/off status of the passed X10 code            
            $('img.checkStatus').each(function(i, obj) {
                var element = $(this);
                $x10Device = $(this).data("x10");
                var postData = "url=http://192.168.0.34:81/tenHsServer/tenHsServer.aspx?t=ab&f=DeviceStatus&d=" + $x10Device ; 



 $.ajax({
    type: "POST",
    dataType: "json",
    data: postData,
    beforeSend: function(x) {
        if(x && x.overrideMimeType) {
            x.overrideMimeType("application/json;charset=UTF-8");
        }
    },
    url: 'urlencodeJson.php',
    success: function(data) {
        // 'data' is a JSON object which we can access directly.
        if (data.success == true){
            $('#section1').html(data.message);
            //$("x10").data('src','lightbulbon.png');
             element.attr('src','lightbulbon.png');
    }
        else{
            $('#section2').html(data.message);     
             element.attr('src','lightbulbon.png');
        }
    }
   });

非常简单,只需使用simple\u html\u dom,它是一个非常强大的PHP类,您可以从PHP解析html并在获得curl结果后获得结果,您可以做类似的事情

$url = $_POST['url'];
  unset($_POST['url']);
  $fields_string = "";
  //url-ify the data for the POST
  foreach($_POST as $key=>$value) {
   $fields_string .= $key.'='.urlencode($value).'&';
   }
  rtrim($fields_string,"&");
   //open connection
   $ch = curl_init();
   //set the url, number of POST vars, POST data
   $url .= '&';
   $url .= $fields_string;
   curl_setopt($ch,CURLOPT_URL,$url);
   //execute post

   $string = curl_exec($ch);

   curl_close($ch);
   require 'simple_html_dom.php';
   $html= new simple_html_dom();
  $html->load( $string );
  foreach($html->find('div#selector') as $article) {
$article['title']=$article->find('div#title',0)->plaintext;
$article['photo']=$article->find('img#id',0)->atrr('id');
$article['content']=$article->find('div#content',0)->plaintext;
}
你有一个php数组(); 你可以转换为json数组()php
json\u encode()

要查看更多示例,请访问convert

您得到的响应是什么?让我们看看目标页面
$url
中的一些代码。如果我理解正确的话,那就是你需要做出改变的地方。哈哈,我本来会这么建议的,但是他的问题不清楚。他说他得到了一堆html标签,但随后显示了一个数组。这就是我在客户端所做的事情。
$url = $_POST['url'];
  unset($_POST['url']);
  $fields_string = "";
  //url-ify the data for the POST
  foreach($_POST as $key=>$value) {
   $fields_string .= $key.'='.urlencode($value).'&';
   }
  rtrim($fields_string,"&");
   //open connection
   $ch = curl_init();
   //set the url, number of POST vars, POST data
   $url .= '&';
   $url .= $fields_string;
   curl_setopt($ch,CURLOPT_URL,$url);
   //execute post

   $string = curl_exec($ch);

   curl_close($ch);
   require 'simple_html_dom.php';
   $html= new simple_html_dom();
  $html->load( $string );
  foreach($html->find('div#selector') as $article) {
$article['title']=$article->find('div#title',0)->plaintext;
$article['photo']=$article->find('img#id',0)->atrr('id');
$article['content']=$article->find('div#content',0)->plaintext;
}