当前位置: 编程技术>php
本页文章导读:
▪小文件php+SQLite存储方案
我们草根站长购买的虚拟主机往往都有文件数量限制,大量小文件占用大量资源,落伍精华区也有兄弟推荐豆瓣的解决方法,但是要有主机权限。只能另装思路,采用php+SQLite解决问题,经.........
▪PHP中文件上传的一个问题
我也一直很困惑。在文档上,说的比较模糊,就是 move_uploaded_file 这个函数,加了一步检查,检查这个文件是否是有 HTTP POST 上传的, 至于,如何检查的没有说。 我google 了好一阵子,都没.........
▪PHP程序员面试 切忌急功近利(更需要注重以后的发展)
我一说出这样的话,人们大量的评论就会批评道:你错了,错了,完全的错了。 好的程序员需要具备沟通交流的技能,他们要有跟他人一起合作的能力。团队里不止你一个人! 事实上,人们.........
[1]小文件php+SQLite存储方案
来源: 互联网 发布时间: 2013-11-30
我们草根站长购买的虚拟主机往往都有文件数量限制,大量小文件占用大量资源,落伍精华区也有兄弟推荐豆瓣的解决方法,但是要有主机权限。只能另装思路,采用php+SQLite解决问题,经过我测试,切实可行,现在推荐给大家。
现在公开代码:
创建数据库文件:php1.php
$db = new SQLite3('mysqlitedb.db');
//获取文件2进制流
$filename = "http://www./logo.gif";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize ($filename));
fclose($handle);
//创建数据表
$db->exec('CREATE TABLE person (idnum TEXT,name TEXT,photo BLOB)');
$stmt = $db->prepare("INSERT INTO person VALUES ('41042119720101001X', '张三',?)");
$stmt->bindValue(1, $contents, SQLITE3_BLOB);
$stmt->execute();
读数据文件:php2.php
<?php
$pdo = new SQLite3('mysqlitedb.db');
$results = $pdo->query('select * from person');
while ($row = $results->fetchArray()) {
ob_start();
header("Content-Type: image/jpg");
echo $row['photo'] ;
ob_end_flush();
}
?>
网页引用:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ANSYS教程</title>
</head>
<body>
<img src="http://www./info.php" width="22" height="30" />
</body>
</html>
现在公开代码:
创建数据库文件:php1.php
代码如下:
$db = new SQLite3('mysqlitedb.db');
//获取文件2进制流
$filename = "http://www./logo.gif";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize ($filename));
fclose($handle);
//创建数据表
$db->exec('CREATE TABLE person (idnum TEXT,name TEXT,photo BLOB)');
$stmt = $db->prepare("INSERT INTO person VALUES ('41042119720101001X', '张三',?)");
$stmt->bindValue(1, $contents, SQLITE3_BLOB);
$stmt->execute();
读数据文件:php2.php
代码如下:
<?php
$pdo = new SQLite3('mysqlitedb.db');
$results = $pdo->query('select * from person');
while ($row = $results->fetchArray()) {
ob_start();
header("Content-Type: image/jpg");
echo $row['photo'] ;
ob_end_flush();
}
?>
网页引用:
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ANSYS教程</title>
</head>
<body>
<img src="http://www./info.php" width="22" height="30" />
</body>
</html>
[2]PHP中文件上传的一个问题
来源: 互联网 发布时间: 2013-11-30
我也一直很困惑。在文档上,说的比较模糊,就是 move_uploaded_file 这个函数,加了一步检查,检查这个文件是否是有 HTTP POST 上传的,
至于,如何检查的没有说。
我google 了好一阵子,都没有能解决这个问题,也不知道问题出现在哪里。后来,终于决定看源代码。终于在 源代码里面看到 把文件名 和
php 配置中的 upload_tmp_dir 这个参数进行比较,如果文件在这个目录下面,那么 move_uploaded_file 才会进行移动操作。而且这个比较是大小写敏感,/ \ 在Windows 下面也是不一样的。而在PHP配置文件解析的时候,会调用一个realpath 函数,也就是是说,你在move_uploaded_file 之前,
必须对$file['tmp_name'] = realpath($file['tmp_name']); realpath 一下。
还有一种情况,大家要注意,就是 move_uploaded_file 如果配置成一个无法访问的路径,那么你不管怎么处理,move_uploaded_file 总是不能成功移动文件。
至于,如何检查的没有说。
我google 了好一阵子,都没有能解决这个问题,也不知道问题出现在哪里。后来,终于决定看源代码。终于在 源代码里面看到 把文件名 和
php 配置中的 upload_tmp_dir 这个参数进行比较,如果文件在这个目录下面,那么 move_uploaded_file 才会进行移动操作。而且这个比较是大小写敏感,/ \ 在Windows 下面也是不一样的。而在PHP配置文件解析的时候,会调用一个realpath 函数,也就是是说,你在move_uploaded_file 之前,
必须对$file['tmp_name'] = realpath($file['tmp_name']); realpath 一下。
还有一种情况,大家要注意,就是 move_uploaded_file 如果配置成一个无法访问的路径,那么你不管怎么处理,move_uploaded_file 总是不能成功移动文件。
[3]PHP程序员面试 切忌急功近利(更需要注重以后的发展)
来源: 互联网 发布时间: 2013-11-30
我一说出这样的话,人们大量的评论就会批评道:你错了,错了,完全的错了。 好的程序员需要具备沟通交流的技能,他们要有跟他人一起合作的能力。团队里不止你一个人! 事实上,人们会说:最好折中一下对技术上的要求,这样可以找出更能适应企业文化的人。
你不如这样说更合适:找不到那种技术上又好、又能适应企业文化的人,我就等着,一直找到为止。
我们很少有敢这样奢侈的公司,也许Google可以这样,就是Google这样的公司也一直处于一个“对招聘程序员感到绝望”的状态中。如果你决定去等,我可以预见到每招到一个程序员你都要等待一个漫长的时期,同时业务会因为缺乏程序员而崩溃,火烧眉毛。
那么,那种更好呢?
让我们来考虑要那些中等或下等的程序员,他们和蔼可亲,而且努力工作。 他们的程序写的不好 – 他们的程序根本不是按照他们想的那样工作,即使他们做到了,那也是烂程序,很难去维护。他们在基本的功能上挣扎探索,更不解决不了复杂的问题。但是他们却 能跟上团队,项目进度每天点都在更新,可以看见他们每天都在座位上奋斗。一切都很好,你的经理会很高兴,因为整个团队看起来在平稳的向前推进。
当发布日期不得不往后推迟,产品Bug多的没法使用,人们会哀叹说软件本来就是很难做,于是投入更多的和蔼可亲的平庸的程序员去修复问题。 事情的结果我想大家都知道。
对于程序员,没有太多的事情可以用和蔼来解决。一个友善的平庸的程序员可以成为业务分析师,技术性的销售员,或着其它的能够利用他的和蔼和他的一点点的技术知识来工作的职位。这样的工作他们会很满意,但这都是在茶话会工作上的,可不是去找出有效的办法做出好的软件。
另外一个选择是,找个程序员,他能做出好的程序,但也许不善于和他人相处,或者老是迟到,或其他。他能开发出按照设计运转的软件,他能把复杂的问题抽象成一个简单的问题。软件好使,可维护,你随时可以按要求修改。
这个世界很真实,有太多的方式都会让我们把事情搞砸,但至少我们是有机会的。人可以给人留下不错的印象。团队可以建设的不错。员工在长时间的为你工作,不错。大量的业务没有按照预定的设计工作,但还是成功了,不错。但是绝对不会有伟大的软件会在平庸的程序员手下实现。.
证据就在代码里。 就这些。
你不如这样说更合适:找不到那种技术上又好、又能适应企业文化的人,我就等着,一直找到为止。
我们很少有敢这样奢侈的公司,也许Google可以这样,就是Google这样的公司也一直处于一个“对招聘程序员感到绝望”的状态中。如果你决定去等,我可以预见到每招到一个程序员你都要等待一个漫长的时期,同时业务会因为缺乏程序员而崩溃,火烧眉毛。
那么,那种更好呢?
让我们来考虑要那些中等或下等的程序员,他们和蔼可亲,而且努力工作。 他们的程序写的不好 – 他们的程序根本不是按照他们想的那样工作,即使他们做到了,那也是烂程序,很难去维护。他们在基本的功能上挣扎探索,更不解决不了复杂的问题。但是他们却 能跟上团队,项目进度每天点都在更新,可以看见他们每天都在座位上奋斗。一切都很好,你的经理会很高兴,因为整个团队看起来在平稳的向前推进。
当发布日期不得不往后推迟,产品Bug多的没法使用,人们会哀叹说软件本来就是很难做,于是投入更多的和蔼可亲的平庸的程序员去修复问题。 事情的结果我想大家都知道。
对于程序员,没有太多的事情可以用和蔼来解决。一个友善的平庸的程序员可以成为业务分析师,技术性的销售员,或着其它的能够利用他的和蔼和他的一点点的技术知识来工作的职位。这样的工作他们会很满意,但这都是在茶话会工作上的,可不是去找出有效的办法做出好的软件。
另外一个选择是,找个程序员,他能做出好的程序,但也许不善于和他人相处,或者老是迟到,或其他。他能开发出按照设计运转的软件,他能把复杂的问题抽象成一个简单的问题。软件好使,可维护,你随时可以按要求修改。
这个世界很真实,有太多的方式都会让我们把事情搞砸,但至少我们是有机会的。人可以给人留下不错的印象。团队可以建设的不错。员工在长时间的为你工作,不错。大量的业务没有按照预定的设计工作,但还是成功了,不错。但是绝对不会有伟大的软件会在平庸的程序员手下实现。.
证据就在代码里。 就这些。
最新技术文章: