Intereting Posts
PHP: Я смешиваю программирование, управляемое событиями, с сигнальными интерфейсами (сигналом и слотом / шаблоном наблюдателя)? Список php в таблицу Drupal 6: Render Views 2 данные в файле tpl страницы как извлечь данные из mysql, содержащие специальные символы? Как решить «Ошибка вызова неопределенной функции dbase_open ()» в окнах Развернуть строку PHP новой строкой Как изменить symfony 2 doctrine mapper для использования моего настраиваемого каталога вместо моего Entity Directory в комплекте Сохранение вызова setTimeOut () даже после перезагрузки страницы Выпадающий каскад с использованием JS не работает PHP: можно ли переходить из одного случая в другой внутри коммутатора? Не удалось открыть поток: Недопустимый аргумент Как импортировать XML-строку в php DOMDocument PHP Получить содержимое веб-страницы Удаление PHP из базы данных не работает Как проверить, разрешает ли друг мне опубликовать на стене или не использовать php sdk

отправлять данные с помощью file_get_content

Я провел некоторое исследование относительно использования file_get_content с сообщением. И я также прочитал этот, который, честно говоря, не понимаю, так как я не знаком с PHP. Ниже мой PHP-код в получении моего json и использовал его для моего запроса ajax, используя methog GET .:

 <?php echo(file_get_contents("http://localhost:8001/" . $_GET["path"] . "?json=" . urlencode($_GET["json"]))); ?> 

Теперь я использую метод POST и я не знаю, как изменить свой PHP-код, чтобы опубликовать мои данные с моего javascript. Ниже приведены мои data которые я хотел опубликовать в своем запросе url (это также то, что я использовал как json в методе GET ):

 {"SessionID":"9SQLF17XcFu0MTdj5n", "operation":"add", "transaction_date":"2011-7-28T00:00:00", "supplier_id":"10000000108", "wood_specie_id":"1", "lines": [{"...":"...","..":"..."},{"...":"...","..":"..."}], "scaled_by":"SCALED BY", "tallied_by":"TALLIED BY", "checked_by":"CHECKED BY", "total_bdft":"23.33", "final":"N"} 

Мне просто нужно изменить этот код

 echo(file_get_contents("http://localhost:8001/" . $_GET["path"] . "?json=" . urlencode($_GET["json"]))); 

с POST для отправки моего сообщения мои данные.

EDIT: Мне нужно создать такой запрос:

 http://localhost/jQueryStudy/RamagalHTML/processjson.php?path=getData/supplier?​json={"SessionID":"KozebJ4SFqdqsJtRpG6t1o3uQxgoeLjT"%2C"dataType":"data"} 

Вы можете передать контекст потока в качестве третьего аргумента file_get_contents . С помощью контекста Stream вы можете влиять на то, как будет выполнен HTTP-запрос, например, вы можете изменить метод, добавить контент или произвольные заголовки.

 file_get_contents($url, false, stream_context_create( array ( 'http' => array( 'method'=>'POST', 'header' => "Connection: close\r\nContent-Length: $data_len\r\n", 'content'=>$data_url ) ) )); 

После каждого запроса PHP автоматически заполняет $http_response_header который будет содержать всю информацию о запросе, например код состояния и прочее.

 $data_url = http_build_query (array('json' => $_GET["json"])); $data_len = strlen ($data_url); echo file_get_contents("http://localhost:8001/" . $_GET["path"], false, stream_context_create( array ( 'http' => array( 'method'=>'POST', 'header' => "Connection: close\r\nContent-Length: $data_len\r\n", 'content'=>$data_url ) ) )); 

Вам нужно cURL .

Пример:

 $dataString = "firstName=John&lastname=Smith"; $ch = curl_init(); //open connection $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_POST,2); // number of variables curl_setopt($ch,CURLOPT_POSTFIELDS,$dataString); //execute post $result = curl_exec($ch); //close connection curl_close($ch); 

Если я правильно понимаю вас (возможно, нет), вы должны использовать CURL.
CURL – это способ отправки запросов POST в PHP. (но это не единственный способ). Что вы делаете, это отправка данных методом GET

некоторые думают так, пожалуйста, прочитайте об этом, этот не будет работать из коробки

 <?php $ch = curl_init("http://localhost:8001/" . $_GET["path"] ); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, "json=".urlencode($_GET["json"])); curl_exec ($ch); curl_close ($ch); ?>