我想在没有用户交互的情况下触发一个URL。我用如何使用php触发URL?
file_get_contents($myurl);
但在我的虚拟主机提供商file_get_contents()
被禁用。怎么做。我不想读取URL的内容。我只是想触发网址。另外我不能使用header()
函数,因为,我要在一个循环中触发url,所以头文件不会有帮助。
我想在没有用户交互的情况下触发一个URL。我用如何使用php触发URL?
file_get_contents($myurl);
但在我的虚拟主机提供商file_get_contents()
被禁用。怎么做。我不想读取URL的内容。我只是想触发网址。另外我不能使用header()
函数,因为,我要在一个循环中触发url,所以头文件不会有帮助。
使用cURL:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_exec();
curl_close($ch);
?>
为此,我必须包括或安装任何东西? – Rajasekar
是的,这是PHP的扩展,它必须安装并启用 –
你需要安装cURL(请参阅http://us.php.net/manual/en/curl.requirements.php)。 –
你可以尝试一些低级别插座电话要fsockopen和相关功能的简单的HTTP请求。以下是手册中的示例
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET/HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
好吧,如果你不能使用Curl
或fsockopen
或exec wget
或任何其他建议,使其从PHP的工作,这是一个失败的事业。几乎。如果您不必在脚本执行过程中调用URL,您可以让客户通过向发送给浏览器的HTML添加WebBug元素(假设这是您所做的)来调用url。
<img src="http://www.example.com/trigger.php?arg1=foo" width="1" height="1"/>
如果你需要从脚本的响应,你可以使用一个iframe
,但你应该检查,如果该元素是您正在使用的文档类型的一部分。您也可以尝试通过JavaScript,但必须找到一种方法来绕过大多数浏览器强制执行的Same Origin Policy。
如果这仍然不能解决您的问题,请尝试其他free hosting service或考虑切换到付费托管。你现在可以得到一个不到10美元的体面安装。
由于'allow_url_fopen'为Off,这确实是最后一招。接得好。 –
如果其他选项都不适合你,你可以使用shell来完成。使用wget
:
shell_exec('wget http://example.com/');
如果wget
安装不上,你也许能lynx
做到这一点。
更新:啊,我看allow_url_fopen
关闭。是的,那么即使get_headers
也不行。那么来自@Gordon的解决方案也是如此。有点讨厌,但没有其他选择。
我建议避免像鼠疫这样的宿主,这太限制了。
在你的最后一个问题我回答get_headers($url)
。就这样。 这绝对是我会这样做的方式。它将返回标题,以便您能够查看您的请求是否得到正确处理。
Curl也是一个选项,但我怀疑这是否安装在共享主机上,这似乎是限制性的。
@Rajasekar - 我会回应@wadesworld的建议。订阅非免费的虚拟主机,即使它不是为了赚钱的网站。主机是所以这几天便宜。我在LEB找到了一家优秀的供应商,您可以按照地区过滤(但请注意,便宜可能意味着可怕 - 买方要小心,等等)。
下面是一个简单的命令来调用当前文件另一个脚本作为单独的进程
exec('/usr/bin/php5 /var/www/vhosts/mysite.com/httpdocs/PROCESS/processScript.php');
通常一个简单的电子邮件,要求的东西启用/安装足以让您的虚拟主机来做到这一点。但是,如果没有,也许是时候切换主机:) – philfreo