我需要实现一种方法来对位于同一服务器或另一服务器上的页面进行 POST 调用。我们不能使用 include,因为我们调用的文件通常调用不同的数据库或具有相同名称的函数。
我一直在尝试使用curl 来实现这一点,虽然它在从另一台服务器调用文件时工作得很好,但在调用文件所在的同一服务器时我却什么也得不到。
编辑以添加一些代码:
我正在做的事情的简化版本:
文件1.php
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "www.myserver.com/File2.php");
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
文件2.php
<?php
echo "I'M IN!!";
?>
调用 File1.php 后,我什么也得不到,但如果 File2.php 在另一台服务器中,我就会得到结果。
有什么帮助吗?
我尝试使用服务器 URL (http...) 和文件的总地址 (/home/wwww...)
请注意,如果您向自己的站点发出 CURL 请求,则您使用的是默认会话处理程序,并且您通过 CURL 请求的页面使用与生成请求的页面相同的会话,您将运行陷入僵局。
默认会话处理程序在页面请求期间锁定会话文件。当您尝试使用同一会话请求另一个页面时,后续请求将挂起,直到请求超时或会话文件变得可用。由于您正在执行内部 CURL,因此运行 CURL 的脚本将锁定会话文件,并且 CURL 请求永远无法完成,因为目标页面永远无法加载会话。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)