在php中运行url

时间:2013-02-05 13:37:23

标签: php url

在我的应用程序中,我必须在注册时将短信发送给用户。但是在数据库中插入记录时我想在浏览器中点击此URL。

任何人都可以建议如何在背景中运行此网址

http://www.myurl.com/smpp/sendsms?username=XX&password=XX&to=XX&from=XX&text=Test

9 个答案:

答案 0 :(得分:5)

这取决于您对background的意思,但我认为您的意思是用户不会被重定向到该页面。

如果我是你,如果安装了它,我会选择cURL,因为你似乎唯一想做的就是提出一个普通的请求,也许,阅读回复。下面的代码未经测试,但应该给你一个提示。

$req = curl_init();
curl_setopt($req, CURLOPT_URL,"theaddress_and_params");
curl_exec($req);

答案 1 :(得分:2)

如果您这样做,您将在URL(或标题)中公开用户名和密码。让用户提前登录并使用会话变量。

答案 2 :(得分:1)

不要从客户端发送此信息,因为每个用户只需加载一些(可能是恶意的)参数即可轻松“伪造”数据。 “用户名”和“密码”根本不受保护,我确信您的服务会很快失效。

相反,您可以使用PHP curl函数在后台(服务器端)轻松完成此操作:

http://www.php.net/manual/en/curl.examples-basic.php

答案 3 :(得分:1)

public function get_url($url)
{
    $cmd  = "curl --max-time 60 ";
    $cmd .= "'" . $url . "'";
    $cmd .= " > /dev/null 2>&1 &";
    exec($cmd, $output, $exit);
    return $exit == 0;
}

它将通过cli调用curl。它将在后台运行。

答案 4 :(得分:0)

你可以使用pcntl php扩展来分叉子进程。

(实现此目的的库:https://github.com/kriswallsmith/spork

答案 5 :(得分:0)

我认为没有多线程这样的概念(实质上就是你要求的),因为PHP代码中的所有内容都是逐步运行的,但是你可以找到解决方案。请参阅thisthis个问题及其答案。

PHP中没有多线程的原因是因为在服务器中处理了所有内容,并且作为客户端,您已经收到完成的响应,因此PHP中的“在后台运行”是与“按顺序运行”相同。

答案 6 :(得分:0)

当用户点击提交按钮时进行AJAX调用。这会导致该URL上的脚本在后台运行,而当前的PHP会在数据库中插入记录。

答案 7 :(得分:0)

的Ajax?使用ajax在div中加载该url,同时保存使用ajax调用另一个php文件的记录。

答案 8 :(得分:0)

$url = 'http://yoursmsgateway.com/WebSMS/SMSAPI.jsp?username='.$smsuser.'&password='.$smspwd.'&sendername='.$smssender.'&mobileno='.$number.'&message='.urlencode($message);

echo $url;

   $mystring = get_data($url);

//echo "hi!";

echo $mystring;

function get_data($url) {
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

您可以尝试此代码,但您必须安装cUrl DLL文件。安装CURL的过程如下: -

1.)打开php.ini文件

2.)找到这个dll文件---> ;延长= php_curl.dll

3.)删除; (分号)

4.)例如--->延长= php_curl.dll

5.)保存(Ctrl + s)