<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IT公司面试手册 &#187; PHP</title>
	<atom:link href="http://www.mianwww.com/html/category/it-interview/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mianwww.com</link>
	<description></description>
	<lastBuildDate>Wed, 08 Feb 2012 11:48:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>PHP笔试题汇总</title>
		<link>http://www.mianwww.com/html/2012/01/12922.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12922.html#comments</comments>
		<pubDate>Tue, 31 Jan 2012 12:57:03 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12922</guid>
		<description><![CDATA[1、抓取远程图片到本地,你会用什么函数? fsockopen, A 2、用最少的代码写一个求3值最大值的函数. function($a,$b,$c){ * W0 z* u6 k+ e. L  a: }5 }    return $a&#62;$b? ($a&#62;$c? $a : $c) : ($b&#62;$c? $b  :  $c ); 5 O: F6 v1 W# U} 3、用PHP打印出前一天的时间，打印格式是2007年5月10日22:21:21 Echo date(‘Y-m-d H:i:s’,strtotime(‘-1 day’)); 4、javascript能否定义二维数组，如果不能你如何解决？ javascript不支持二维数组定义，可以用arr[0] = new array()来解决 5、假设a.html和b.html在同一个文件夹下面，用javascript实现当打开a.html五秒钟后，自动跳转到b.html。 &#60;script&#62; function go2b(){ window.location = &#8220;b.html&#8221;; window.close(); } setTimeout( &#8220;go2b()&#8221;,5000 ); //5秒钟后自动执行go2b() &#60;/script&#62; [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12922.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP的网站主要攻击方式有哪些？</title>
		<link>http://www.mianwww.com/html/2012/01/12879.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12879.html#comments</comments>
		<pubDate>Mon, 30 Jan 2012 13:08:58 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12879</guid>
		<description><![CDATA[1、命令注入(Command Injection) 2、eval注入(Eval Injection) 3、客户端脚本攻击(Script Insertion) 4、跨网站脚本攻击(Cross Site Scripting, XSS) 5、SQL注入攻击(SQL injection) 6、跨网站请求伪造攻击(Cross Site Request Forgeries, CSRF) 7、Session 会话劫持(Session Hijacking) 8、Session 固定攻击(Session Fixation) 9、HTTP响应拆分攻击(HTTP Response Splitting) 10、文件上传漏洞(File Upload Attack) 11、目录穿越漏洞(Directory Traversal) 12、远程文件包含攻击(Remote Inclusion) 13、动态函数注入攻击(Dynamic Variable Evaluation) 14、URL攻击(URL attack) 15、表单提交欺骗攻击(Spoofed Form Submissions) 16、HTTP请求欺骗攻击(Spoofed HTTP Requests) 以后的每期连载，会逐个介绍这些漏洞的原理和防御方法。 几个重要的php.ini选项 Register Globals php&#62;=4.2.0，php.ini的register_globals选项的默认值预设为Off，当register_globals的设定为On时，程序可以接收来自服务器的各种环境变量，包括表单提交的变量，而且由于PHP不必事先初始化变量的值，从而导致很大的安全隐患。 例1: //check_admin()用于检查当前用户权限，如果是admin设置$is_admin变量为true，然后下面判断此变量是否为true，然后执行管理的一些操作 //ex1.php &#60;?php if (check_admin()) [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12879.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何在mysql中存储音乐和图片文件</title>
		<link>http://www.mianwww.com/html/2012/01/12749.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12749.html#comments</comments>
		<pubDate>Tue, 17 Jan 2012 14:41:42 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/html/2012/01/12749.html</guid>
		<description><![CDATA[如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库，那么这篇文章就是为你而写的！ 我将告诉你怎样通过HTML表单来储存这些文件，怎样访问和使用这些文件。 本文概述： 在mysql中建立一个新的数据库 一个怎样储存文件的例子程序 一个怎样访问文件的例子程序 在mysql中建立一个新的database 首先，你必须在你的mysql中建立一个新的数据库，我们将会把那些二进制文件储存在这个数据库里。在例子中我会使用下列结构，为了建立数据库，你必须做下列步骤： 进入MySql控制器 输入命令&#8221;create database binary_data;&#8221; 输入命令&#8221;use binary_data;&#8221; 输入命令&#8221;CREATE TABLE binary_data ( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY, description CHAR(50), bin_data LONGBLOB, filename CHAR(50), filesize CHAR(50), filetype CHAR(50));&#8221; （不能断行） 如果没有意外，数据库 和 表 应该建立好了。 一个怎样储存文件的例子程序 用这个例子你可以通过Html表单将文件传输到数据库中。. store.php3 ; ; ;;Store binary data into SQL Database;; ;]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12749.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php程序员应该掌握的10个技能,看看你都掌握了哪些</title>
		<link>http://www.mianwww.com/html/2012/01/12611.html</link>
		<comments>http://www.mianwww.com/html/2012/01/12611.html#comments</comments>
		<pubDate>Thu, 05 Jan 2012 10:58:01 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12611</guid>
		<description><![CDATA[1、语法：必须熟练掌握 ，写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。 2、命令：必须熟悉PHP带的一些常用命令及其常用选项，熟悉那些命令，自己运行 php.exe -h 如果这些命令你没有全部使用过，那么你对PHP实际上还很不了解。 3、工具：必须至少熟练使用一种IDE的开发工具，例如：Eclipse、Netbeans、zend或者editplus，ultraedit，包括进行工程管理、常用选项的设置、PHP插件的安装配置以及进行 调试。 4、API：PHP的核心API是非常庞大的，但是有一些内容笔者认为是必须熟悉的，否则不可能熟练的运用PHP，包括： ◆ 文件目录处理函数包80％以上的函数的功能的灵活运用。 ◆ 日期时间函数中的80％以上的函数的功能的灵活运用 ◆ 数学函数库中的100％的内容。 ◆ 网络库中的60％以上的内容，对各个函数的功能比较熟悉。 ◆ 字符串处理函数下的60％以上的内容，特别是各种处理函数。 ◆ 正则表达式函数下的90%以上的内容，特别是各种正则处理 ◆ 一些安全库下的40％以上的内容，如果对于安全没有接触的话根本就不可能掌握PHP ◆ XML处理，熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。 ◆ 图形图像函数库下的80%以上的内容，特别是一些图像生成和处理 ◆ MySQL 数据库函数下的90%以上的内容，特别是处理各种数据的函数 ◆ 数组处理函数下的90%以上的内容，特别是各种操作处理函数 ◆ 其它PEAR，PECL，和一些扩展类库中的80%以上的内容，特别是一些常用的类的处理 ◆ 针对不同的需求，查找不同的函数库。 5、测试：必须熟悉使用phpunit编写测试用例完成代码的自动测试。 6、管理：必须熟悉使用xinc, phing等完成工程管理的常用任务，例如工程编译、生成phpdoc、生成、版本控制、自动测试。 7、排错：应该可以根据异常信息比较快速的定位问题的原因和大致位置。 8、思想：必须掌握OOP的主要要求，这样使用PHP开发的系统才能是真正的PHP系统。 9、规范：编写的代码必须符合流行的编码规范，这样程序的可读性才比较好。 10、博学：掌握OOA、OOD、MS SQL Server、Oracle 、Zendframework、cakephp、symfony、模板技术等流行技术，掌握软件架构设计思想、搜索引擎优化、缓存系统设计、网站负载均衡、系统性能调优等实用技术。 综合上述，没发现PHP和java有什么不同！PHP和Java，还是.net一样要学的东西有很多！ 浮躁的人容易说：PHP语言不行，应该学Java，C#，VB.NET：－－是你自己不行了吧！？ 浮躁的人容易问：PHP和Java，C#，VB.NET哪个好；－－告诉你吧，都好－－只要你学好就行； 浮躁的人容易问：我到底该学什么：－－别问，学就对了； 浮躁的人容易问：PHP有钱途吗：－－建议你去强银行 如果可选的语言有好几种，那么，选择其中学习难度最小的一种。 不要轻信广告，不要轻信媒体。唯一可以相信的是你的市场。 个人可以喜欢一种、两种甚至好几种语言，但一定不要排斥其他任何一种语言.]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2012/01/12611.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP软件工程师的面试题</title>
		<link>http://www.mianwww.com/html/2011/12/12592.html</link>
		<comments>http://www.mianwww.com/html/2011/12/12592.html#comments</comments>
		<pubDate>Tue, 27 Dec 2011 13:26:47 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12592</guid>
		<description><![CDATA[1. 基本知识点 HTTP协议中几个状态码的含义:503 500 401 200 301 302。。。 Include require include_once require_once 的区别. PHP/Mysql中几个版本的进化史，比如mysql4.0到4.1，PHP 4.x到5.1的重大改进等等。 HEREDOC介绍 写出一些php魔幻方法; 一些编译php时的configure 参数 向php传入参数的两种方法。 (mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别; error_reporting 等调试函数使用 您是否用过版本控制软件? ?*****心玫陌姹究刂迫砑拿质?? posix和perl标准的正则表达式区别; Safe_mode 打开后哪些地方受限. 写代码来解决多进程/线程同时读写一个文件的问题。 写一段上传文件的代码。 Mysql 的存储引擎,myisam和innodb的区别。 2. web 架构，安全,项目经验 介绍xdebug,apc,eAccelerator,Xcache,Zend opt的使用经验。 使用mod_rewrite,在服务器上没有/archivers/567.html这个物理文件时，重定向到index.php?id=567 ,请先打开mod_rewrite. MySQL数据库作发布系统的存储，一天五万条以上的增量，预计运维三年,怎么优化？ 写出一种排序算法（原理），并说出优化它的方法。 请简单阐述您最得意的开发之作 对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题 您是否用过模板引擎? ?*****心玫哪０逡娴拿质?? 请介绍Session的原理,大型网站中Session方面应注意什么? 测试php性能和mysql数据库性能的工具,和找出瓶颈的方法。 正则提出一个网页中的所有链接. 介绍一下常见的SSO(单点登陆)方案(比如dedecms整合discuz的passport)的原理。 您写过的PHP框架的特点，主要解决什么问题，与其他框架的不同点。 大型的论坛/新闻文章系统/SNS网站在性能优化上有什么区别? [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2011/12/12592.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何提高php应用的性能</title>
		<link>http://www.mianwww.com/html/2011/12/12535.html</link>
		<comments>http://www.mianwww.com/html/2011/12/12535.html#comments</comments>
		<pubDate>Sun, 25 Dec 2011 03:31:02 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12535</guid>
		<description><![CDATA[1、 如果能将类的方法定义成static，就尽量定义成static，它的速度会提升将近4倍。 2、$row[’id’] 的速度是$row[id]的7倍。 3、echo 比 print快，并且使用echo的多重参数(译注：指用逗号而不是句点)代替字符串连接，比如echo$str1,$str2。 4、在执行for循环之前确定最大循环数，不要每循环一次都计算最大值，最好运用foreach代替。 5、注销那些不用的变量尤其是大数组，以便释放内存。 6、尽量避免使用__get，__set，__autoload。 7、require_once()代价昂贵。 8、include文件时尽量使用绝对路径，因为它避免了PHP去include_path里查找文件的速度，解析操作系统路径所需的时间会更少。 9、如果你想知道脚本开始执行(译注：即服务器端收到客户端请求)的时刻，使用$_SERVER[‘REQUEST_TIME’]要好于 time()。 10、函数代替正则表达式完成相同功能。 11、str_replace函数比preg_replace函数快，但strtr函数的效率是str_replace函数的四倍。 12、如果一个字符串替换函数，可接受数组或字符作为参数，并且参数长度不太长，那么可以考虑额外写一段替换代码，使得每次传递参数是一个字符，而不是只写一行代码接受数组作为查询和替换的参数。 13、使用选择分支语句(译注：即switch case)好于使用多个if，else if语句。 14、用@屏蔽错误消息的做法非常低效，极其低效。 15、打开apache的mod_deflate模块，可以提高网页的浏览速度。 16、数据库连接当使用完毕时应关掉，不要用长连接。 17、错误消息代价昂贵。 18、在方法中递增局部变量，速度是最快的。几乎与在函数中调用局部变量的速度相当。 19、递增一个全局变量要比递增一个局部变量慢2倍。 20、递增一个对象属性(如：$this-&#62;prop++)要比递增一个局部变量慢3倍。 21、递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。 22、仅定义一个局部变量而没在函数中调用它，同样会减慢速度(其程度相当于递增一个局部变量)。PHP大概会检查看是否存在全局变量。 23、方法调用看来与类中定义的方法的数量无关，因为我(在测试方法之前和之后都)添加了10个方法，但性能上没有变化。 24、派生类中的方法运行起来要快于在基类中定义的同样的方法。 25、调用带有一个参数的空函数，其花费的时间相当于执行7至8次的局部变量递增操作。类似的方法调用所花费的时间接近于15次的局部变量递增操作。 26、Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面，少用脚本。 27、除非脚本可以缓存，否则每次调用时都会重新编译一次。引入一套PHP缓存机制通常可以提升25%至100%的性能，以免除编译开销。 28、尽量做缓存，可使用memcached。memcached是一款高性能的内存对象缓存系统，可用来加速动态Web应用程序，减轻数据库负载。对运算码 (OP code)的缓存很有用，使得脚本不必为每个请求做重新编译。 29、当操作字符串并需要检验其长度是否满足某种要求时，你想当然地会使用strlen()函数。此函数执行起来相当快，因为它不做任何计算，只返回在zval 结构(C的内置数据结构，用于存储PHP变量)中存储的已知字符串长度。但是，由于strlen()是函数，多多少少会有些慢，因为函数调用会经过诸多步骤，如字母小写化(译注：指函数名小写化，PHP不区分函数名大小写)、哈希查找，会跟随被调用的函数一起执行。在某些情况下，你可以使用isset() 技巧加速执行你的代码。 (举例如下) if (strlen($foo) &#60; 5) { echo “Foo is too short”$$ } (与下面的技巧做比较) if (!isset($foo{5})) [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2011/12/12535.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php笔试题</title>
		<link>http://www.mianwww.com/html/2011/12/12474.html</link>
		<comments>http://www.mianwww.com/html/2011/12/12474.html#comments</comments>
		<pubDate>Fri, 09 Dec 2011 11:43:14 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12474</guid>
		<description><![CDATA[一、选择题 1．php的源代码是 （A ） A．开放的 B．封闭的 C．需购买的 D．完全不可见的 2．php的输出语句是 （ C ） A．out.print B．response.write C．echo D． scanf 3．php的中标量类型中整型类型的英文单词是 （C ） A．boolean B．string C．integer D．float 4．php的转义字符“反斜杠”是 （ D ） A．\n B．\r C．\t D．\\ 5．php遍历数组使用的是 （ B ） A．print B．forecah C．echo D． scanf 6．php的变量在声明和使用的时候变量名前必须加 （ A ） A．$ B．% C．&#38; D．# 7．下面程序段输出结果为 （ B ） &#60;? $a=3 [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2011/12/12474.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php浮点数计算比较及取整不准确有什么解决方法</title>
		<link>http://www.mianwww.com/html/2011/11/12238.html</link>
		<comments>http://www.mianwww.com/html/2011/11/12238.html#comments</comments>
		<pubDate>Thu, 24 Nov 2011 11:18:30 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=12238</guid>
		<description><![CDATA[一则浮点数计算例子如下： $a = 0.2+0.7;$b = 0.9;var_dump($a == $b); 打印出的结果是：bool(false)。也就是说在这里 0.2+0.7 的计算结果与 0.9 并不相等。 请问这个问题如何解决？ PHP官方手册说明：显然简单的十进制分数如 0.2 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这和一个事实有关，那就是不可能精确的用有限位数表达某些十进制分数。例如，十进制的 1/3 变成了 0.3333333...。 我们将上面的变量用双精度格式打印出来： $a = 0.2+0.7;$b = 0.9;printf("%0.20f", $a);echo '&#60;br /&#62;';printf("%0.20f", $b); 输出结果如下： 0.899999999999999911180.90000000000000002220 显然在这里，实际上作为浮点型数据，其精度已经损失了一部分，达不到完全精确。所以永远不要相信浮点数结果精确到了最后一位，也永远不要比较两个浮点数是否相等。需要说明的是，这不是PHP的问题，而是计算机内部处理浮点数的问题！在 C、JAVA 等语言中也会遇到同样的问题。 所以要比较两个浮点数，需要将其控制在我们需要的精度范围内再行比较，因此使用 bcadd() 函数来对浮点数想加并进行精度转换（为字符串）： var_dump(bcadd(0.2,0.7,1) == 0.9); // 输出：bool(true) 浮点数取整 在《PHP 取整函数 ceil 与 floor》一文中，曾有例子： &#60;?phpecho ceil(2.1/0.7); // 输出：4?&#62; 经过上面对浮点数计算的探讨，知道这是浮点数计算结果不完全精确造成的： &#60;?phpprintf("%0.20f", [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2011/11/12238.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用php数组实现无限分类,效率高,不使用数据库,不使用递归</title>
		<link>http://www.mianwww.com/html/2011/11/11972.html</link>
		<comments>http://www.mianwww.com/html/2011/11/11972.html#comments</comments>
		<pubDate>Wed, 16 Nov 2011 13:16:56 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=11972</guid>
		<description><![CDATA[class cat { public $data; //无限分类数组 //====================================== // 功能: 构造函数.初始化数据 //====================================== public function __construct() { @require "data.php"; $this-&#62;data = $class; } //====================================== // 功能: 根据父等级构造出子等级 //====================================== private function CreateSortLevel($fatherlevel) { if(empty($fatherlevel)) { if(is_array($this-&#62;data)) { $fast_level = array(); foreach($this-&#62;data as $value) { if(strlen($value["sortlevel"]) == 3) { $fast_level[] = $value["sortlevel"]; } } $max_fast_level = max($fast_level); unset($fast_level); $sub [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2011/11/11972.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php面试题及答案</title>
		<link>http://www.mianwww.com/html/2011/10/11278.html</link>
		<comments>http://www.mianwww.com/html/2011/10/11278.html#comments</comments>
		<pubDate>Sat, 22 Oct 2011 13:00:52 +0000</pubDate>
		<dc:creator>jim.jin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.mianwww.com/?p=11278</guid>
		<description><![CDATA[1. 如何用php的环境变量得到一个网页地址的内容？ip地址又要怎样得到？ 程序代码 echo $_SERVER ["PHP_SELF"]; echo $_SERVER ["SERVER_ADDR"]; 2. 求两个日期的差数，例如2007-2-5 ~ 2007-3-6 的日期差数 程序代码 $begin=strtotime(&#8220;2007-2-5&#8243;); $end=strtotime(&#8220;2007-3-6&#8243;); echo ($end-$begin)/(24*3600); 3. 请写一个函数，实现以下功能： 字符串“open_door” 转换成 “OpenDoor”、”make_by_id” 转换成 ”MakeById”。 程序代码 function changeStyle(&#38; $str) { /*$str = str_replace ( &#8220;_&#8221;, &#8221; &#8220;, $str ); $str = ucwords ( $str ); $str = str_replace ( &#8221; &#8220;, &#8220;&#8221;, $str ); [...]]]></description>
		<wfw:commentRss>http://www.mianwww.com/html/2011/10/11278.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

