[英]Php save 4 data to mysql db instead of 2 in my sms gateway api
我正在使用向我的注冊用戶發送短信(而非電子郵件)的php sms API。 因此,在我的html表單中,有一個選項可以通過上載所有聯系人的文件來發送短信。 成功發送短信后,我將其保存到mysql db。
好了,現在一切都很好,但是在我的.txt文件( 通過上傳.txt文件發送短信 )中存在2個聯系人。 因此它必須在我的數據庫表中保存2個數據。 但不幸的是,它已將4個數據保存到db中。 我不明白問題出在哪里。 您能告訴我為什么保存4個數據嗎?
我的PHP代碼:
$file_handle = fopen("$file", "r");
while (!feof($file_handle) )
{
$line_of_text = fgetcsv($file_handle, 1024);
$line_of_text[0]=$line_of_text[0];
$obj = new Sender("websms.dnstel.com","my port","my username","my password","$sender", "$msg",
$line_of_text[0],"2","1");
$obj->Submit();
$success_number[]=$line_of_text[0];
//saved sms to db
$sql = mysql_query("INSERT INTO e_sent_sms VALUES('', '$line_of_text[0]', '$msg', '', '',
'$length', '$type', '$sender', '$current_date', '$ip' )");
}
echo "<div class='success'>Successfully sent your message to " . implode(',',$success_number) ."
Thank You.</div>";
fclose($file_handle);
.txt文件
8801674455258
8801674455852
謝謝。
將您的while語句更改為:
while(($line_of_text = fgetcsv($file_handle, 0)) !== FALSE)
並刪除:
$line_of_text = fgetcsv($file_handle, 1024);
如果檢查!feof($file_handle)
並且文件中有空格,則條件變為有效。 如果使用fgetcsv($file_handle)
,它將從csv / text獲取該行(如果為空),則為NULL
如果為有效,則為數組格式的值(可用於處理結果)。
因此您的代碼應如下所示:
while (($line_of_text = fgetcsv($file_handle,1024)) && $line_of_text[0])
{
//$obj = new Sender("websms.dnstel.com","my port","my username","my password","$sender", "$msg", $line_of_text[0],"2","1");
//$obj->Submit();
//$success_number[]=$line_of_text[0];
//saved sms to db
$sql = mysql_query("INSERT INTO e_sent_sms VALUES('', '$line_of_text[0]', '$msg', '', '','$length', '$type', '$sender', '$current_date', '$ip' )");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.