当前位置: 编程技术>php
本页文章导读:
▪连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
服务器端两种处理方法,一个是apache或者iis or tomcat等服务器中进行设置,或者在程序中指定发送类型。 该信息属于http头部信息,php有直接进行头部信息操作的函数。 php的实现方法: 代码.........
▪php mysql Errcode: 28 终极解决方法
perror 28 Error code 28: No space left on device SQL语句执行错误:SELECT title,gid FROM blog_blog WHERE date < 1246200383 and hide = 'n' and type='blog' ORDER BY date DESC LIMIT 1 Error writing file 'C:\WINDOWS\TEMP\MY9B6F.tmp' (Errcode: 2.........
▪通过PHP CLI实现简单的数据库实时监控调度
要实现的功能:监控user表,若有新纪录增加,将其向user2表中添加。(实际应用上可以引深一些,例如对数据进行相关处理等) 下面是PHP代码(dbtest.php) 代码如下:!#/usr/local/php/bin/php <?p.........
[1]连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
来源: 互联网 发布时间: 2013-11-30
服务器端两种处理方法,一个是apache或者iis or tomcat等服务器中进行设置,或者在程序中指定发送类型。
该信息属于http头部信息,php有直接进行头部信息操作的函数。
php的实现方法:
<?php
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".basename($_GET['url']));
readfile($filename);
?>
该信息属于http头部信息,php有直接进行头部信息操作的函数。
php的实现方法:
代码如下:
<?php
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".basename($_GET['url']));
readfile($filename);
?>
[2]php mysql Errcode: 28 终极解决方法
来源: 互联网 发布时间: 2013-11-30
perror 28
Error code 28: No space left on device
SQL语句执行错误:SELECT title,gid FROM blog_blog WHERE date < 1246200383 and hide = 'n' and type='blog' ORDER BY date DESC LIMIT 1
Error writing file 'C:\WINDOWS\TEMP\MY9B6F.tmp' (Errcode: 28)
解决方法:
1.释放C:\WINDOWS\TEMP\空间
2.因为原表太大,所以查询时生成的临时表过大,因此出错。
解决办法。重启了mysql,然后加上where分三段查询,避免全表扫描。
测试结果:第一个有用,第二个有道理,没测试过,过了第一个就解决了,第二个以后好好研究下
Error code 28: No space left on device
SQL语句执行错误:SELECT title,gid FROM blog_blog WHERE date < 1246200383 and hide = 'n' and type='blog' ORDER BY date DESC LIMIT 1
Error writing file 'C:\WINDOWS\TEMP\MY9B6F.tmp' (Errcode: 28)
解决方法:
1.释放C:\WINDOWS\TEMP\空间
2.因为原表太大,所以查询时生成的临时表过大,因此出错。
解决办法。重启了mysql,然后加上where分三段查询,避免全表扫描。
测试结果:第一个有用,第二个有道理,没测试过,过了第一个就解决了,第二个以后好好研究下
[3]通过PHP CLI实现简单的数据库实时监控调度
来源: 互联网 发布时间: 2013-11-30
要实现的功能:监控user表,若有新纪录增加,将其向user2表中添加。(实际应用上可以引深一些,例如对数据进行相关处理等)
下面是PHP代码(dbtest.php)
!#/usr/local/php/bin/php
<?php
mysql_connect('localhost', 'username', 'password');
mysql_select_db("test");
echo 'PID: '.posix_getpid().' '; //当前进程PID(linux下)
$old_id = 0;
while (1)
{
$sql = "SELECT `id` FROM `user` ORDER BY `id` DESC LIMIT 1";
$result = mysql_query($sql);
$item = mysql_fetch_assoc($result);
$new_id = $item['id'];
$values_arr = array();
for ($i=$new_id; $i>$old_id && $old_id!=0; $i--)
{
$sql = "SELECT `name`,`age` FROM `user` WHERE `id`='{$i}' LIMIT 1";
$result = mysql_query($sql);
$item = mysql_fetch_assoc($result);
$name = $item['name'];
$age = $item['age'];
$values_arr[] = "('{$name}', '{$age}')";
}
if (!emptyempty($values_arr))
{
$values_str = implode(',', $values_arr);
$sql = "INSERT INTO `user2`(`name`, `age`) VALUES {$values_str}";
mysql_query($sql);
}
$old_id = max($old_id, $new_id);
sleep(3); //3秒后进入下次循环
}
业务流程应该没什么说的,就有几处需要注意的地方:
第一行是PHP CLI模式需要添加的命令路径,还有就是那个while(1)和sleep(3),其余都是普通的php代码写法。
通过shell命令php dbtest.php运行即可,我在虚拟机上测试,正常情况下占用率CPU 0%,内存1%。
实际应用中可以放到后台运行:
php dbtest.php &
bg 1
PS:&命令很多地方说的很不清楚,甚至错误。它只是将程序放入后台,而并没有实际运行!
顺带总结复习一下linux的前后台运行相关命令
下面是PHP代码(dbtest.php)
代码如下:
!#/usr/local/php/bin/php
<?php
mysql_connect('localhost', 'username', 'password');
mysql_select_db("test");
echo 'PID: '.posix_getpid().' '; //当前进程PID(linux下)
$old_id = 0;
while (1)
{
$sql = "SELECT `id` FROM `user` ORDER BY `id` DESC LIMIT 1";
$result = mysql_query($sql);
$item = mysql_fetch_assoc($result);
$new_id = $item['id'];
$values_arr = array();
for ($i=$new_id; $i>$old_id && $old_id!=0; $i--)
{
$sql = "SELECT `name`,`age` FROM `user` WHERE `id`='{$i}' LIMIT 1";
$result = mysql_query($sql);
$item = mysql_fetch_assoc($result);
$name = $item['name'];
$age = $item['age'];
$values_arr[] = "('{$name}', '{$age}')";
}
if (!emptyempty($values_arr))
{
$values_str = implode(',', $values_arr);
$sql = "INSERT INTO `user2`(`name`, `age`) VALUES {$values_str}";
mysql_query($sql);
}
$old_id = max($old_id, $new_id);
sleep(3); //3秒后进入下次循环
}
业务流程应该没什么说的,就有几处需要注意的地方:
第一行是PHP CLI模式需要添加的命令路径,还有就是那个while(1)和sleep(3),其余都是普通的php代码写法。
通过shell命令php dbtest.php运行即可,我在虚拟机上测试,正常情况下占用率CPU 0%,内存1%。
实际应用中可以放到后台运行:
php dbtest.php &
bg 1
PS:&命令很多地方说的很不清楚,甚至错误。它只是将程序放入后台,而并没有实际运行!
顺带总结复习一下linux的前后台运行相关命令
命令 前后台 状态 使用方式
& 后台 暂停 加在命令后
bg 后台 运行 后跟作业号
fg 前台 运行 后跟作业号
Ctrl+Z 后台 暂停 (组合键)
jobs (查看所有作业号) 命令
最新技术文章: