PHP内置服务器可以';t形卷曲

PHP内置服务器可以';t形卷曲,php,curl,php-builtin-server,Php,Curl,Php Builtin Server,我有一个相对简单的脚本,如下所示: <?php $url = "localhost:2222/test.html"; echo "*** URL ***\n"; echo $url . "\n"; echo "***********\n"; echo "** whoami *\n"; echo exec('whoami'); echo "* Output **\n"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url);

我有一个相对简单的脚本,如下所示:

<?php
$url = "localhost:2222/test.html";

echo "*** URL ***\n";
echo $url . "\n";
echo "***********\n";
echo "** whoami *\n";
echo exec('whoami');
echo "* Output **\n";

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

$output = curl_exec($ch); 

curl_close($ch);

echo $output;

我认为您的$url有问题。它可能看起来像这个$url=“”;或$url=“”;我认为这可以解决你的问题。谢谢你的提问。祝你好运。

PHP内置开发web服务器是一个非常简单的单线程测试服务器。它不能同时处理两个请求。您试图在一个单独的请求中从自身检索一个文件,因此遇到了死锁。第一个请求正在等待第二个请求完成,但在第一个请求仍在运行时无法处理第二个请求。

在URL中指定端口可能会有问题。我以前遇到过那个问题。我只是从url中删除了端口,但不确定这是否适用于您。运行此脚本的服务器是否与
localhost:2222
相同?我不太熟悉内置的PHP开发服务器,但如果该服务器是单线程的,您可能会遇到死锁情况。@dan08如果没有curl url中的端口号,我无法让它找到资源。在没有端口号的情况下启动服务器似乎是不可能的。您需要使用
curl\u setopt($ch,CURLOPT\u port,2222)指定端口而不是在url@deceze显然,内置的PHP开发服务器是单线程的——启动了第二个运行在端口3333上的服务器,它能够卷曲文件!非常感谢。请看一看打得好的。我自己也有同样的问题,而且我快发疯了。我想给这个答案增加一点额外的奖励。如果你不想继续使用PHP的内置服务器,你可以在不同的端口上创建一个新的
PHP-s 127.0.0.1:2223
,并向新的url发出curl请求。遇到这个问题,最终得到了一个类似于@muratgozel的解决方案。如果我能马上找到这篇文章,我会活两天的。当这样的事情在没有日志记录或抛出错误的情况下悄无声息地失败时,真是令人恼火。