catthr
5/12/2016 - 10:30 AM

parse parser http request json curl

parse parser http request json curl

Создание запроса

Тестирование запроса

GET запрос - http_build_query

// data=data&page=1
$postdata = http_build_query(
            array(
                'data' => $data,
                'page' => 1
            )
        );

** POST запрос** - нужно создать контекст

$options = array (
            'http' => array (
                'method' => 'POST',
                'header' => "Content-type: application/x-www-form-urlencoded",
                'content' => $postdata //данные от http_build_query
            )
        );
        
$context = stream_context_create($options);        
@file_get_contents($url, false, $context);

** POST запрос jdon данных **

$context = stream_context_create(array(
    'http' => array(
        'method' => 'POST',
        'header' => "Content-Type: application/json\r\n",
        'content' => json_encode($postData)
    )
));

$response = file_get_contents('http://local/saveDataForm.php', FALSE, $context);

** Curl POST запрос **

$ch = curl_init('http://local/saveDataForm.php');
curl_setopt_array($ch, array(
    CURLOPT_POST => TRUE,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_POSTFIELDS => http_build_query($postData)
));


// Send the request
$response = curl_exec($ch);

** Curl POST запрос JSON Данных **

$authToken = 'OAuth 2.0 token here';

$ch = curl_init('https://www.googleapis.com/blogger/v3/blogs/12/posts/');
curl_setopt_array($ch, array(
    CURLOPT_POST => TRUE,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_HTTPHEADER => array(
        'Authorization: '.$authToken,
        'Content-Type: application/json'
    ),
    CURLOPT_POSTFIELDS => json_encode($postData)
));

// Send the request
$response = curl_exec($ch);

** Отключить SSL валидацию при https Запросе **

$options = array (
                "ssl"=>array(
                    "verify_peer"=>false,
                    "verify_peer_name"=>false,
                ),
        );

** AJAX запрос **

$options = array (
            'http' => array (
                'header' => "X-Requested-With: XMLHttpRequest",
            )
        );
$context = stream_context_create($options);        
file_get_contents($url, false, $context);

Разбор результата запроса

** Нужно проверять на "магические кавычки"**

** Данные в виде строки json**

 $answer = json_decode($answer_json, true); // true - преобразует в ассоциативный масив, иначе std object

SimpleXML Parser

  $object = simplexml_load_string($data); // парсит строку с данными
  $object = simplexml_load_file("note.xml");
  
  //результат - std объект, он ссылается на корневой элемент xml
  // атрибуты нужны преобразовывать ( к строке, числу), обращение через []
  $code = (string)$response_message->state['code'];

  // преобразование объекта в ассоциативный массив
  $xml = simplexml_load_file('xml_file.xml');
  $json_string = json_encode($xml);
  $result_array = json_decode($json_string, TRUE);

HtmlDOM Parser

  composer require yangqi/htmldom dev-master

Add the service provider to config/app.php.

  'Yangqi\Htmldom\HtmldomServiceProvider',

Add alias to config/app.php.

  'Htmldom' => 'Yangqi\Htmldom\Htmldom',

$html = new \Htmldom('http://www.example.com');

// Find all images foreach($html->find('img') as $element) echo $element->src . '
';