所以我正在尝试编写一个脚本,我可以使用电话号码填充数据库,然后将脚本放在列表中并将其全部发送到文本中。我正在使用“Nexmo”的服务有一个测试功能,您可以在其中输入数字到URL,然后执行URL以发送文本。我得到了数据库设置,除了数据库中的信息外,我得到了URL,但我有两个问题。
我的脚本只抓取第一个数据库条目,我需要它按ID下载列表。
我需要使用tp脚本重复自身,以便它抓取数据库中的下一个条目并发送下一个文本,直到它已经耗尽所有可能的数据库条目。
作为示例,脚本运行... URL填充了DB条目1并执行。文本已发送。重复进程,直到数据库中没有其他条目,但它用。填充链接。
我相信我有大部分代码而且只是遗漏了一个小链接,我在下面发布了敏感信息。
感谢您花时间阅读本文,或者帮助我。
<?php
ini_set('max_execution_time', 1300);
$dbhost = "localhost";
$dbname = "data_base";
$dbuser = "dbusername";
$dbpass = "passy";
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($dbname);
$sql = "SELECT * FROM ha_n ORDER BY `id` ASC";
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($res);
$phone_fill = $row['phone_numbers'];
$url = 'https://rest.nexmo.com/sms/json?api_key=5555555555&api_secret=555555555555&from=5555555555&to='.$phone_fill.'&text=Welcome+to+Nexmo';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/6.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.7) Gecko/20050414 Firefox/1.0.3");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result = curl_exec ($ch);
curl_close ($ch);
答案 0 :(得分:0)
像这样,但我建议使用PDO或MySqli而不是普通的mysql,因为(mysql_ *函数)被折旧并设置为从PHP 7开始删除
while( false !== ( $row = mysql_fetch_assoc($res) ) ){
$phone_fill = $row['phone_numbers'];
$url = 'https://rest.nexmo.com/sms/json?api_key=5555555555&api_secret=555555555555&from=5555555555&to='.$phone_fill.'&text=Welcome+to+Nexmo';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/6.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.7) Gecko/20050414 Firefox/1.0.3");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result = curl_exec ($ch);
curl_close ($ch);
}
主要是为了获得迭代它们所需的所有结果。这基本上说循环直到$ row == false,每行都是下一条记录,我可能会建议在调用之间添加sleep(1)
之类的内容,等待一秒钟,这样你就不会破坏他们的API但是这取决于他们允许你做什么,你可能也想在循环中做set_time_limit(300)
,这将给PHP 300秒执行每个部分,如果你有大量数字则不会超时。
如果你想让它像夜间一样运行,你可以使用像CRON这样的东西,如果你有C-Panel那么它将在那里的仪表板中。我有点先研究这个词。但基本上它允许您在特定时间或间隔执行php文件。像调度程序一样。