【发布时间】:2015-01-31 12:29:25
【问题描述】:
谁能建议我的脚本有什么问题? 这里是:
#!/bin/sh
url="http://myhost.mydomain/test.php"
status=$(curl -s --head -w %{http_code} "$url" -o /dev/null)
while read LINE
do
#
#some stuffs here
#
if [ $status -eq 200 ]
then
curl -H "Content-Type:application/json" \
-XPOST "$url" --data '{"name":"'"$name"'","email":"'"$email"'","phone":"'"$phone"'"}'
else
echo "Invalid Link."
done < myFile.txt
我发帖时请看实际结果(直接插入db)。
ID 姓名 电子邮件 电话 1 0 2 安妮 anne@example.com 112783 3 Anne2 anne2@example.com 112784如您所见,它在 ID 1 处发布了 null 值。我怎样才能避免这种情况,其中不会在页面中添加/发布不必要的空值?将不胜感激任何帮助。谢谢。
【问题讨论】:
-
[$status -eq 200] 将以空值调用 test.php。在 test.php 中,您需要检查 $_SERVER['REQUEST_METHOD'] == 'POST' 如果 $_SERVER['REQUEST_METHOD'] != 'POST' 则不插入任何内容
-
我无法理解@anhic 的评论,尽管它基本上是正确的。
status赋值是第一次 PHP 调用发生的地方,但是,当您将结果状态与 200 进行比较时。 -
(1) 我也不懂@anhic 的评论。 (2) 缺少
fi。 (3) 为什么if-then-else在while循环内?如果status不是 200,则输出将只有显示Invalid link.的行