如果我要获取一个网站的内容,网站的网址是baidu.com/1.html,如果写在循环里面
for($i=0; $i<100; $i++){
$url="http://www.baidu.com/".$i.".html";
$content = file_get_contents($url);
$sql = "INSERT INTO XXX"
}
?>
如果按照这种写法很容易导致SQL服务器挂了,而且容易超过最大执行时间,请问应该怎样写才正确?
PHP如何持续执行一个函数?
答案:6 悬赏:20 手机版
解决时间 2021-03-31 16:40
- 提问者网友:送舟行
- 2021-03-31 00:52
最佳答案
- 五星知识达人网友:十鸦
- 2019-10-18 22:59
PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), shell_exec()
1)exec()
原型: string exec ( string $command [, array &$output [, int &$return_var ]] )
说明: exec执行系统外部命令时不会输出结果,而是返回结果的最后一行。如果想得到结果,可以使用第二个参数,让其输出到指定的数组。此数组一个记录代表输出的一行。即如果输出结果有20行,则这个数组就有20条记录,所以如果需要反复输出调用不同系统外部命令的结果,最好在输出每一条系统外部命令结果时清空这个数组unset($output),以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。
exec("dir",$output);
print_r($output);
?>
2)system()
原型: string system ( string $command [, int &$return_var ] )
说明: system和exec的区别在于,system在执行系统外部命令时,直接将结果输出到游览器,如果执行命令成功则返回true,否则返回false。第二个参数与exec第三个参数含义一样。
system("pwd");
?>
3)passthru()
原型: void passthru ( string $command [, int &$return_var ] )
说明: passthru与system的区别,passthru直接将结果输出到游览器,不返回任何值,且其可以输出二进制,比如图像数据。第二个参数可选,是状态码。
header("Content-type:image/gif");
passthru("/usr/bin/ppm2tiff /usr/share/tk8.4/demos/images/teapot.ppm");
?>
4)shell_exec()
原型: string shell_exec(string $cmd)
说明: 直接执行命令$cmd
$output = shell_exec('ls -lart');
echo "
1)exec()
原型: string exec ( string $command [, array &$output [, int &$return_var ]] )
说明: exec执行系统外部命令时不会输出结果,而是返回结果的最后一行。如果想得到结果,可以使用第二个参数,让其输出到指定的数组。此数组一个记录代表输出的一行。即如果输出结果有20行,则这个数组就有20条记录,所以如果需要反复输出调用不同系统外部命令的结果,最好在输出每一条系统外部命令结果时清空这个数组unset($output),以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。
exec("dir",$output);
print_r($output);
?>
2)system()
原型: string system ( string $command [, int &$return_var ] )
说明: system和exec的区别在于,system在执行系统外部命令时,直接将结果输出到游览器,如果执行命令成功则返回true,否则返回false。第二个参数与exec第三个参数含义一样。
system("pwd");
?>
3)passthru()
原型: void passthru ( string $command [, int &$return_var ] )
说明: passthru与system的区别,passthru直接将结果输出到游览器,不返回任何值,且其可以输出二进制,比如图像数据。第二个参数可选,是状态码。
header("Content-type:image/gif");
passthru("/usr/bin/ppm2tiff /usr/share/tk8.4/demos/images/teapot.ppm");
?>
4)shell_exec()
原型: string shell_exec(string $cmd)
说明: 直接执行命令$cmd
$output = shell_exec('ls -lart');
echo "
$output
全部回答
- 1楼网友:轮獄道
- 2019-05-09 13:02
函数名();
。。百度知道日常任务,回答1个问题,点开问题连接,只看到标题啊,看不到内容,回答完才看得到内容,而且推荐的问题全是很久前的。。。百度这做得不好啊
- 2楼网友:妄饮晩冬酒
- 2019-06-08 06:37
你可以加上一句
set_time_limit(0)
- 3楼网友:摆渡翁
- 2020-07-18 01:20
- 4楼网友:我住北渡口
- 2019-12-28 03:26
超长时间用web执行php代码是不对的。所以不主张加大web上php的执行时间。
用本地命令行执行代码文件
php abc.php
就不会受php的执行时间限制。
如果数据库服务器的连接时间有限,可以在代码中加上判断连接是否仍然有效,或者在PDO下加入异常处理,重新连接的语句。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯