4

phpコード内からphpで作成されたメッセージを送信する必要があるクイックWebアプリを作成しています。cURLは明らかにその仕事のためのツールですが、私はそれを機能させるのに十分に理解するのに苦労しています。

私が扱っているAPIのドキュメントはここにあります。特に、ここに記載されている単純なGETベースのSMS通知を使用したいと思います。後者のリソースは、GETAPIが単純であると述べています。

http://sms2.cdyne.com/sms.svc/SimpleSMSsend?PhoneNumber={PHONENUMBER}&Message={MESSAGE}&LicenseKey={LICENSEKEY}

実際、次のURLをブラウザーに入力すると、期待どおりの結果が得られます。

http://sms2.cdyne.com/sms.svc/SimpleSMSsend?PhoneNumber=15362364325&Message=mymessage&LicenseKey=2134234882347139482314987123487

私は今、php内で同じ効果を作成しようとしています。これが私の試みです:

<html>
<body>
<?php
$num = '13634859126';
$message = 'some swanky test message';

$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "http://sms2.cdyne.com/sms.svc/SimpleSMSsend?PhoneNumber=".urlencode($num)."&Message=".urlencode($message)."&LicenseKey=2345987342583745349872");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
?>
</body>
</html>

私の他のPHPWebページは正常に機能するので、phpとapacheがすべて正しく設定されていることがわかります。しかし、ブラウザを上のページに向けると、電話にメッセージが表示されません。誰かが私が間違っていることを私に見せてもらえますか?

注:ご想像のとおり、すべての数字は偽造されています。

4

4 に答える 4

10

本当にCURLが必要ですか?PHPを使用するだけfile_get_contents($url)で、GETリクエストを実行し、レスポンス値を返します。

于 2010-11-15T20:29:22.493 に答える
1

戻り値がない場合は、cURLが失敗している可能性があります。返されたリソースのエラーコードを確認して、エラーの原因を特定してください。

$result=curl_exec($ch);
$curlerrno = curl_errno($ch);
curl_close($ch);
print $curlerrno;

エラーコードリスト:libcurl-errors

cURLタイムアウト設定も使用することをお勧めします。

curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
curl_setopt($ch,CURLOPT_TIMEOUT,5);
于 2010-11-15T21:41:49.470 に答える
0

あなたが正しくURLを形成していると仮定し、あるコメントがブラウザで手動でそれをチェックすると言っているように、データが戻ってきたときにあなたのデータがどこに行くのかわからないので試してみてください

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // tell the return not to go to the browser

     $output = curl_exec($ch); // point the data to a variable

     print "<br />"; // output the variable
     print $output;
     print "<br />";

他に試すべきことは

     curl_setopt($ch, CURLOPT_INTERFACE, "93.221.161.69"); // telling the remote system where to send the data back
     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); // pretend you are IE/Mozilla in case the remote server expects it
     curl_setopt($ch, CURLOPT_POST, 1); // setting as a post
于 2010-11-15T20:16:20.727 に答える
0


PhoneNumber =$numに置き換えるだけです

curl_setopt($ ch、CURLOPT_URL、 " http://sms2.cdyne.com/sms.svc/SimpleSMSsend?PhoneNumber= " .urlencode($num)."&Message=".urlencode($message)."&LicenseKey=2345987342583745349872 " );

于 2018-01-28T04:45:40.533 に答える