отправить http запрос с CURL в локальный файл - PullRequest
5 голосов
/ 03 июля 2011

привет, мне нужно отправить запрос http в локальный файл, используя имя файла само по себе, а не полный путь http, например

    <?php
$url = 'http://localhost/te/fe.php';
// The submitted form data, encoded as query-string-style
// name-value pairs
$body = 'monkey=uncle&rhino=aunt';
$c = curl_init ($url);
curl_setopt ($c, CURLOPT_POST, true);
curl_setopt ($c, CURLOPT_POSTFIELDS, $body);
curl_setopt ($c, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec ($c);
curl_close ($c);
?>

Мне нужно сделать это, чтобы стать таким

<?php
$url = 'fe.php';
// The submitted form data, encoded as query-string-style
// name-value pairs
$body = 'monkey=uncle&rhino=aunt';
$c = curl_init ($url);
curl_setopt ($c, CURLOPT_POST, true);
curl_setopt ($c, CURLOPT_POSTFIELDS, $body);
curl_setopt ($c, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec ($c);
curl_close ($c);
?>

когда я пытался сделать второй пример, он ничего не делает. Есть ли какое-либо решение с использованием Curl или даже любой другой метод? спасибо

Ответы [ 3 ]

4 голосов
/ 04 апреля 2017

Начиная с PHP 5.4.0, CLI SAPI предоставляет встроенный веб-сервер.Вы можете просто обслуживать каталог, в котором находится ваш скрипт fe.php, а затем запустить скрипт, который его свернет.

Из командной строки перейдите в каталог и запустите:

cd /path/to/script/te/
php -S localhost:8000

Теперь измените ваш код так, чтобы он подключался к порту 8000:

<?php
$url = 'http://localhost:8000/fe.php';
// The submitted form data, encoded as query-string-style
// name-value pairs
$body = 'monkey=uncle&rhino=aunt';
$c = curl_init ($url);
curl_setopt ($c, CURLOPT_POST, true);
curl_setopt ($c, CURLOPT_POSTFIELDS, $body);
curl_setopt ($c, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec ($c);
curl_close ($c);
?>

Теперь запустите ваш скрипт, например:

php -f /path/to/curl/script.php
0 голосов
/ 02 августа 2016

Вы не можете POST в локальный файл, это метод HTTP. И вы не можете публиковать на относительный URL, потому что это вызов на стороне сервера. К чему это будет относиться?

Если fe.php доступен извне, и ваш веб-сервер может самостоятельно подключаться к этому интерфейсу, вы можете создать динамический URL-адрес, например:

$schema = isset($_SERVER["HTTPS"]) ? "https:" : "http:"
$url    = "$schema//$_SERVER[HTTP_HOST]/te/fe.php";
0 голосов
/ 22 января 2013

Мне удалось вызвать локальный URL, используя file: // call. К сожалению, я хотел бы иметь возможность использовать относительный путь, чтобы его было проще поддерживать из файлов проекта, но вы можете сделать это:

Здесь я предполагаю, что я использую свой WAMP, но решение подходит и для серверов: ** http://te/fe.php** будет переводить (предполагая, что это было в Wamp), чтобы: Файл: /// C: /wamp/www/te/fe.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...