无法在Curl中解析主机

时间:2015-11-25 20:01:41

标签: php curl

我和Curl一起为php脚本做了一些请愿,我试图按照你的说法进行请愿,我的脚本是 ajax2.php

$params=['name'=>'John', 'surname'=>'Doe', 'age'=>36,'method'=>'prueba'];
$defaults = array(
    CURLOPT_URL => getcwd().'\src\myApp\ajax2.php',
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query($params),
);
$ch = curl_init();
curl_setopt_array($ch, ($options + $defaults));
curl_exec($ch);

if (curl_errno($ch)) {
    // this would be your first hint that something went wrong
    die('Couldn\'t send request: ' . curl_error($ch));

}

但是我收到了这个错误:Couldn't send request: Could not resolve host: C那么,我应该如何调用项目文件夹中的脚本?

1 个答案:

答案 0 :(得分:1)

curl或libcurl,正如他们在official site上所说的“URL转移库”,即它希望在 URL目标上工作。但是,您传递的文件路径为C:\PathToYourStuff\src\myApp\ajax2.php,这不是有效的URL格式。这就是错误消息说

的原因
  

无法解析主机:C

将上面的路径解释为URL意味着C是主机名,因为冒号(“:”)是将主机名与URL中的端口分开的部分。 (从URL解析器的角度来看,背后的部分是无意义的,但它甚至没有那么远,因为无法解析假定的主机名。)

所以你必须使用的是一个指向该文件的URL,例如类似于http://localhost/path-to-your-stuff/src/myApp/ajax2.php

因此,请将代码更改为此类代码并根据需要调整URL:

$params=['name'=>'John', 'surname'=>'Doe', 'age'=>36,'method'=>'prueba'];
$defaults = array(
    CURLOPT_URL => 'http://localhost/path-to-your-stuff/src/myApp/ajax2.php',
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query($params),
);
$ch = curl_init();
curl_setopt_array($ch, ($options + $defaults));
curl_exec($ch);
// ... and so on, as seen in your question