【问题标题】:How to send SMS using PHP CURL function如何使用 PHP CURL 函数发送短信
【发布时间】:2016-06-22 13:55:27
【问题描述】:

我在网站上有一个帐户,我可以通过该帐户向手机发送短信。为了做到这一点,首先我需要使用我的 ID 和密码登录,然后会显示一个页面,我在其中输入收件人的手机号码,然后是我的消息,最后点击按钮发送消息。

现在我的一位朋友告诉我,我可以使用 PHP Curl 函数从我自己的应用程序通过这个网站发送短信。我对 CURL 函数没有任何事先的想法,所以我用谷歌搜索了它,但我不知道如何做到这一点。我已经检查了登录页面的 HTML 代码以及可以发送该网站短信的页面,并将其发布在下面。

请您告诉我如何使用 CURL 功能或任何其他方式发送短信.. 通过本网站..

在此先感谢:)

表格1

 <form name="form" action="/websms/index.php" method="POST">
 <input type="hidden" name="HTMLForm_formname" value="form">


  <table align="center" size="300" border="0" class="list">
  <tr class="r1">
    <th colspan="3" class="left">
        <label id="label_login_title" for="login_title" class="HTMLForm-label">User  Login</label>

       </th>
</tr>
  <tr>
    <td align="right" valign="top">
        <label id="label_mobile_no" for="mobile_no" class="HTMLForm-label">Mobile Number</label>
    </td>

     <td>
        <input type="text" id="mobile_no" name="mobile_no" size="20" maxlength="11" value="" onkeypress="return checkNumberOnly(event)" class="HTMLForm-text"> 
    </td>


   </tr>
   <tr> 
      <td align="right" valign="top">
        <label id="label_password" for="password" class="HTMLForm-label">Password</label>
    </td>
    <td>
        <input type="password" id="password" name="password" value="" class="HTMLForm-password" size="20">
    </td>

    </tr>

       <tr>
         <td colspan="3" align="center">
            <input type="submit" id="submit" name="submit" value="Login"  class="button_all_action">
            <input type="hidden" id="submit_login" name="submit_login" value="1">
      </td>
     </tr>
  </table>
  </form>

第二种形式

<form name="form" action="javascript:get(document.getElementById('form'));" method="POST">
<input type="hidden" name="HTMLForm_formname" value="form">


<table align="center" size="450" border="0" class="list">


<tr class="r2">
    <th class="left">
        <label id="label_send_to_no" for="send_to_no" class="HTMLForm-label">To</label>
    </th>
    <td class="left">
        <textarea id="send_to_no" name="send_to_no" class="HTMLForm-textarea" onkeypress="checkValidGPNumner(document.form.send_to_no)" onchange="checkValidGPNumner(document.form.send_to_no)" onkeyup="checkValidGPNumner(document.form.send_to_no)" wrap="soft" style="width:250px;height:50px"></textarea>  

    </td>    
  </tr>

 <tr class="r1">

    <th class="left">
        <label id="label_message" for="message" class="HTMLForm-label">Message</label>
    </th>
    <td class="left">
        <textarea id="message" name="message" class="HTMLForm-textarea" onkeypress="textCounter(document.form.message,document.form.counter_message,160)" onchange="textCounter(document.form.message,document.form.counter_message,160)" onkeyup="textCounter(document.form.message,document.form.counter_message,160)" wrap="soft" style="width:250px;height:130px"></textarea>

       <input type="text" id="counter_message" name="counter_message" size="5" value="" readonly="" class="HTMLForm-text"> <label id="label_char_remain" for="char_remain" class="HTMLForm-label">Character remained</label> 
    </td>

 </tr>

     <tr class="r2">
     <td colspan="2" class="center">
        <input type="submit" id="submit" name="submit" value="Send" class="button_all_action">
        <input type="hidden" id="mid" name="mid" value="1">
        <input type="hidden" id="submit_sms" name="submit_sms" value="1">
    </td>
    </tr>
     </table>
   </form>

【问题讨论】:

  • google 一下,或者问一个更具体的问题。
  • 也许这个网站有一个 REST 或自定义 HTTP API,这样您就不必进行抓取来实现您正在尝试的内容。很少有细节让我们在这里给你任何帮助。如果您需要更多帮助,请更新您的问题。

标签: php codeigniter sms


【解决方案1】:

发送短信的简单 CURL 函数:

    function CURLsendsms($number, $message_body){   

        $api_params = $api_element.'?apikey='.$apikey.'&sender='.$sender.'&to='.$mobileno.'&message='.$textmessage;  
        $smsGatewayUrl = "http://springedge.com";  
        $smsgatewaydata = $smsGatewayUrl.$api_params;
        $url = $smsgatewaydata;

        $ch = curl_init();                       // initialize CURL
        curl_setopt($ch, CURLOPT_POST, false);    // Set CURL Post Data
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $output = curl_exec($ch);
        curl_close($ch);                         // Close CURL

        // Use file get contents when CURL is not installed on server.
        if(!$output){
           $output =  file_get_contents($smsgatewaydata);  
        }

    }

【讨论】:

  • 如果短信之间有空格,请使用 urlencode($msg)。
【解决方案2】:

您确实可以使用 cURL 发送 SMS 消息,但 cURL 只是其中的一部分。使用 cURL,您可以对像 Twilio 这样的提供者进行 API 调用。

【讨论】:

    【解决方案3】:

    这是使用 Twilio 的解决方案。

    首先你必须下载 PHP 的 twilio 库: https://github.com/twilio/twilio-php/downloads

    然后复制服务器中的服务文件夹并记住位置。

    现在你必须创建一个像下面这样的简单程序,(这是一个简单的 php 短信发送器示例):

    <?php //lets say that the name of this php is smsSender.php
    
    $contactname = $_POST['name'];
    $contactphone = $_POST['mobile_no'];
    
    $message = $_POST['message'];
    
    
    require 'Services/Twilio.php';//<<<<<<<<<HERE! make sure the path is ok.
    
    $AccountSid = "AXXXXXX"; // this numbers you can find it in your twilio dashboard
    $AuthToken = "TXXXXXXXXX";// also this number .
    
    $client = new Services_Twilio($AccountSid, $AuthToken);
    
    $people = array(
    //"4566789903" => "Curious George",
    $contactphone => $contactname,
    );
    
    foreach ($people as $number => $name) {
    
    $sms = $client->account->sms_messages->create("7035960031",$number,
    $message);
    
    echo "Sent message to $name";
    
    }
    ?>
    

    因此,您需要在表单中更改如下操作:

    <form name="form" action="smsSender.php" method="POST">
    

    注意:如果您使用的是试用帐户,您将只能发送到您帐户中经过验证的号码,但如果您注册了一个电话号码(1 美元/月),那么您可以发送到任何号码而无需沙箱消息)。

    重要提示:Curl 库必须安装在 php 服务器中,如果您使用自己的服务器,比如说在 UBUNTU 中,此命令将安装这些库: sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

    【讨论】:

    • 尚未测试您的解决方案,但我认为它会起作用,谢谢 :)
    【解决方案4】:

    改成这个后,代码对我来说效果很好。

    foreach ($people as $number => $name) {
    $client->account->messages->sendMessage("+12055xxxxxx",$number,
    $message);
    

    【讨论】:

      【解决方案5】:

      我不确定您是否可以使用 CURL 发送 SMS,但是您可以使用 PHP 的邮件功能。 但是我从来没有这样做过。

      【讨论】:

      • 不能用 curl 或 mail 发送短信。您使用 curl 联系向您发送消息的 API,或使用 mail 向将内容转发给收件人的服务发送电子邮件。这一切都取决于网关提供商有什么实现。
      • 其实可以使用PHP邮件。正如你所说,你使用邮件。您将邮件发送到 sms 网关,例如 mobilenum@provider 或者适用于上述 sms 网关。你怎么能说你不能用邮件,但你可以用邮件呢?
      • 没有。如果您没有正确访问允许您将电子邮件作为文本消息转发的网关,那么无论您发送多少邮件 - 它都不会在任何设备上显示为短信文本消息。根据你的推理,任何东西都可以发送短信。 我的勺子可以发送短信,因为如果我用勺子按下“发送”按钮,勺子实际上会发送消息!
      • 如果你没有正确访问网关,那么我猜你那时不会向它发送邮件,是吗?根据我的推理,我不明白勺子是怎么来的PHP,更不用说 PHP 邮件了!正如我所说的。您可以使用 PHP 邮件通过 sms 网关发送文本消息。如果您无权访问网关,则无法通过网关发送。如果有访问权限,spoon 通常不会访问用于向网关发送邮件的 PHP 邮件函数。
      • 这个讨论毫无意义。 cURL 也不附带 PHP 访问(这甚至不是重点),但它是联系网关的一种更有效的方式;但是单独的 cURL 也不能发送短信。这再次验证了我在第一条评论中提出的观点。我的 EOD。
      【解决方案6】:

      Curl 主要用于从另一个网站抓取内容,它没有任何发送短信的功能。你必须使用其他方式。

      很少有工具可以让您从那里连接到您的短信(文本服务器),您可以发送短信。如果您需要并且渴望使用它,您可以使用 curl 来获取您的短信回复等。

      【讨论】:

      • Curl 用于向 HTTP 服务器发送 HTTP 请求。
      猜你喜欢
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      • 1970-01-01
      • 2017-10-27
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多