js 内置对象
String对象:处理所有的字符串操作
Math对象:处理所有的数学运算
Date对象:处理日期和时间的存储、转化和表达
Array对象:提供一个数组的模型、存储大量有序的数据
Event对象:提供JavaScript事件的各种处理信息
error_reporting(-1);// 报告所有 PHP 错误
error_reporting(0); // 关闭所有PHP错误报告
PHP的意思Hypertext Preprocessor
php操作json json_decode json_encode
php5魔术函数、魔术常量
__construct() __destruct()__call() __get() __set() __toString() __clone()
__sleep() __wakeup()__isset() __unset()__set_state()__autoload()
__LINE____FILE____FUNCTION____CLASS__ __METHOD__
防止SQL注射漏洞一般用__addslashes___函数。
如何修改SESSION的生存时间
方法1:将php.ini中的session.gc_maxlifetime设置为9999重启apache
方法2:$savePath = "./session_save_dir/";
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
方法3:setcookie() and session_set_cookie_params($lifeTime);
include 和 include_once 有什么分别?require 又如何?
include():容许你在脚本中把同一个档案插入多次,若果档案不存在,它会发出系统警告并继续执行脚本,如果不被执行,所引用文件就不包含进来。
include_once():它跟 include() 的功能相似,在脚本的执行期间,有关档案只会被插入一次。
require():跟 include() 差不多,但若果档案不存在,它会发出系统警告,这个警告会引致致命错误令脚本中止执行,不管文件执行不执行,都要将所引用文件包含进来
php生成和解析xml
用DOMDocument
概述MVC体系结构。
答:MVC包括三类对象,model是模型,view是视图,controller是控制器,它定义用户界面对用户输入的响应方式。
在MVC体系中,模型通常被称为"业务逻辑",是真正完成任务的代码,视图就是使用界面,反映数据的变化。控制器控制着模型和视图之间的交互过程,它决定着向用户返回怎样的视图、检查通过界面输入的信息以及选择处理输入信息的模型
在MVC中,表示层和逻辑层分离,各部分可相互独立进行开发,便于开发和维护,提高了开发效率。
表单中 get与post提交方法的区别?
1)get是从服务器上获取数据,post是向服务器传送数据。
2)get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3)get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制
4)get安全性非常低,post安全性较高。
写出session的运行机制
用 户A访问站点Y,如果站点Y执行了session_start();(以下假定session_start()总是存在)那么会产生一个 session_id,这个session id一般会以COOKIE的形式保存到用户A(我们可以通过在php.ini里设置session.use_only_cookies为1,强制 SESSION ID必须以COOKIE传递。)。这时候SESSION ID表现为$_COOKIE[’PHPSESSID’];(PHPSESSID可用session_name()函数来修改)
用户A接着访问,这个session id($_COOKIE[’PHPSESSID’])就会在A每次访问Y的时候传送到站点Y。
在站点Y上,会有这么一个目录,是用来保存SESSION的实际数据的。站点Y接收到session id,然后通过session id,来获得与SESSION数据的关联,并返回SESSION数据。
cookie机制
cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。 PHP在http协议的头信息里发送cookie, 因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似
session与cookie的区别?
cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
PHP可以和sql server/oracle等数据库连接吗?(1分)
可以
请写出PHP5权限控制修饰符(3分)
Private protected public
请写出php5的构造函数和析构函数(2分)
__construct __destruct
$a = 'abcdef'; 请取出$a的值并打印出第一个字母(1分)
echo $a{0}; //正则表达式
echo $a[0]; //字符串也是一个数组
如何实现字符串翻转?
strrev() 或
$str = "abcdefg";
function strrevv($str)
{
$len=strlen($str);
$newstr = '';
for($i=$len;$i>=0;$i--)
{
$newstr .= $str{$i};
}
return $newstr;
}
$showstr = strrevv($str);
echo $showstr."<br>";
A.判断一个变量的值是否为空: empty
B.判断一个变量是否为NULL: is_null
C.判断一个变量是否存在: isset
D.释放一个变量: unset
<?
function get_arr($arr){
unset($arr[0]);
}
$arr1 = array(1, 2);
$arr2 = array(1, 2);
get_arr(&$arr1);
get_arr($arr2);
echo count($arr1);
echo count($arr2);
?>
1 2
<?
$GLOBALS['var1'] = 5;
$var2 = 1;
function get_value(){
global$var2;
$var1 = 0;
return $var2++;
}
get_value();
echo $var1;
echo $var2;
?>
5 2 没有global就是5 1
<?
$count = 5;
function get_count(){
static $count = 0;
return $count++;
}
echo $count;
++$count;
echo $count;
echo get_count();
echo get_count();
?>
5 6 0 1
<?
$a6 = 'null';
$a8 = array(array());
echo empty($a6) ? 'true' : 'false';
echo empty($a8) ? 'true' : 'false';
?>
false false //字符串null //一个元素为array
如果 var 是非空或非零的值,则empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。
分别说出echo、print()、print_r()、printf()、sprintf的区别。
echo() :用于输出一个或多个字符串,没有返回值,速度快于其他
print():该函数功能和echo()一样,不同的是print()有返回值。成功返回 1 ,失败则返回 0 。
printf():该函数是用于输出格式化的字符。
sprintf():该函数有用法和printf()的格式一样,但sprintf()不是输出字符串,而是将格式化的字符串以返回值的形式写入到一个变量中。
print_r():可以打印出复杂类型变量的值(如数组,对象),如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。
说明:
全等(===):如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE。
相等(==):如果 $a 和 $b 具有相同的键/值对则为 TRUE。
<?
$str1 = null;
$str2 = false;
echo $str1==$str2 ? '相等' : '不相等';
$str3 = '';
$str4 = 0;
echo $str3==$str4 ? '相等' : '不相等';
$str5 = 0;
$str6 = '0';
echo $str5===$str6 ? '相等' : '不相等';
?>
相等 相等 不相等
1. 用PHP打印出前一天的时间,打印格式是2007年5月10日 22:21:21
echo date('Y-m-d H:i:s', strtotime('-1 day'));
php获取访客ip
$_SERVER["REMOTE_ADDR"];
2. PHP代码如下:
$a="hello";
$b=&$a;
unset($b);
$b="world";
echo $a;
其结果是?答案为:hello
3. PHP代码如下:
$str="cd";
$$str="landog";
$$str.="ok";
echo $cd;
其结果是? hotdogok
4. 用PHP写一段代码,实现不使用第3个变量,交换$a、$b的值,$a、$b的初始值自己定。
$a = $a^$b;
$b = $b^$a;
11. 移动任意一位数或符号,使等式成立, 102 = 101-1。注:是移动不是交换,等号不能分开。
将102的2挪到右上角
12. 规律题,3、1、4、1、5、9、2、( ), 请按照规律在括号内写出下一表达式。
答案为6,因为∏=3.1415926
13. 规律题,5、8、-3、5、-2、3、-1、( ),请按照规律在括号内写出下一表达式。
答案为2,规律为n=(n-2) – |(n-1)| ,n>=3
写一个 函数,array_remove(),要求最简洁的清除 数组中值为$v的项。
function array_remove(&$array, $var) {
$index = array_search($var, $array);
if ($index !== false)
unset($array[$index]);
}
以下登陆代码安全上有什么问题?
<?
$m=$_GET['m'];
$user=$_GET['user'];
$pass=$_GET['pass'];
$include($m."do/php");
$sql="select count(*) as b from user where username='".$user."'and password='".$pass."';
$r=mysql_query($sql);
list($count)=@mysql_fetch_array($r);
if($count>1){
......登陆成功操作
}
?>
注入和远程攻击mysql_real_escape_string()
写一个程序,远程抓取http://www.google.cn/search?q=php网页内容,并匹配出该网址网页内的所有超链接地址,写入url.txt
$content = file_get_contents('http://www.google.cn/search?q=php');
$pattern = '/href=\"(.+?)\"/';
preg_match_all($pattern, $content, $matches);
$content = '';
foreach ($matches[1] as $mt)
$content .= $mt."\n";
file_put_contents('url.txt', $content);
1.以下哪一句不会把 John 新增到 users 阵列?
$users[] = 'john';
成功把 John 新增到阵列 users。
array_add($users,’john’);
函式 array_add() 无定义。
array_push($users,‘john’);
成功把 John 新增到阵列 users。
$users ||= 'john';
语法错误。
2.sort()、assort()、和 ksort() 有什么分别?它们分别在什么情况下使用?
sort()
根据阵列中元素的值,以英文字母顺序排序,索引键会由 0 到 n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。
asort()
与 sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替联想阵列排序。
ksort()
根据阵列中索引键的值,以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。
3.以下的代码会产生什么?为什么?
$num=10;
functionmultiply(){
$num=$num*10;
}
multiply();
echo$num;10。
4. reference 跟一个正规的变量有什么分别?如何 pass by reference?在什么情况下我们需要这样做?
Reference 传送的是变量的地址而非它的值,所以在函式中改变一个变量的值时,整个应用都见到这个变量的新值。
一个正规变量传送给函式的是它的值,当函式改变这个变量的值时,只有这个函式才见到新值,应用的其他部分仍然见到旧值。
$myVariable = "its' value";
Myfunction(&$myVariable); // 以 reference 传送参数
以 reference 传送参数给函式,可以使函式改变了的变量,即使在函式结束后仍然保留新值。
6.foo() 与 @foo() 有什么分别?
foo() 会执行这个函式,任何解译错误、语法错误、执行错误都会在页面上显示出来。
@foo() 在执行这个函式时,会隐藏所有上述的错误讯息。
很多应用程式都使用 @mysql_connect() 和 @mysql_query 来隐藏 mysql 的错误讯息,我认为这是很严重的失误,因为错误不该被隐藏,你必须妥善处理它们,可能的话解决它们。
7.你如何替 PHP 的应用程式侦错?
我并不常这样做,我曾经试过很多不同的侦错工具,在 Linux 系统中设定这些工具一点也不容易。不过以下我会介绍一个近来颇受注目的侦错工具。
PHP - Advanced PHP Debugger 或称 PHP - APD,第一步是执行以下的指令安装:
pear install apd安装后在你的脚本的开头位置加入以下的语句开始进行侦错:
apd_set_pprof_trace();执行完毕,打开以下档案来查阅执行日志:
apd.dumpdir
你也可以使用 pprofp 来格式化日志。
详细的资料可以参阅http://us.php.net/manual/en/ref.apd.php。
9.你会如何定义一个没有成员函式或特性的类别 myclass?
class myclass{}
10.你如何产生一个 myclass 的物件?
$obj = new myclass();
11.在一个类别内如何存取这个类别的特性及变改它的值?
使用语句:$this->propertyName,例如:
class myclass{ private $propertyName; public function __construct() { $this->propertyName = "value"; }}
13.以下哪一个函式可以把浏览器转向到另一个页面?
redir()
这不是一个 PHP 函式,会引致执行错误。
header()
这个是正确答案,header() 用来插入卷头资料,可以用来使浏览器转向到另一个页面,例如:
header("Location:http://www.search-this.com/");
location()
这不是一个 PHP 函式,会引致执行错误。
redirect()
这不是一个 PHP 函式,会引致执行错误。
14.以下哪一个函式可以用来开启档案以便读/写?
fget()
这不是一个 PHP 函式,会引致执行错误。
file_open()
这不是一个 PHP 函式,会引致执行错误。
fopen()
这是正确答案,fopen() 可以用来开启档案以便读/写,事实上这个函式还有很多选项,详细资料请参阅 php.net。
open_file()
这不是一个 PHP 函式,会引致执行错误。
15.mysql_fetch_row() 和 mysql_fetch_array() 有什么分别?
mysql_fetch_row() 把数据库的一列储存在一个以零为基数的阵列中,第一栏在阵列的索引 0,第二栏在索引 1,如此类推。mysql_fetch_assoc() 把数据库的一列储存在一个关联阵列中,阵列的索引就是栏位名称,例如我的数据库查询送回“first_name”、“last_name”、 “email”三个栏位,阵列的索引便是“first_name”、“last_name”和“email”。mysql_fetch_array() 可以同时送回 mysql_fetch_row() 和 mysql_fetch_assoc() 的值。
16.下面的代码用来做什么?请解释。
$date='08/26/2003';print ereg_replace("([0-9]+)/([0-9]+)/([0-9]+)","\\2/\\1/\\3",$date);
这是把一个日期从 MM/DD/YYYY 的格式转为 DD/MM/YYYY 格式。我的一个好朋友告诉我可以把这个正规表达式拆解为以下的语句,对于如此简单的表示是来说其实无须拆解,纯粹为了解说的方便:
// 对应一个或更多 0-9,后面紧随一个斜号$regExpression = "([0-9]+)/";// 应一个或更多 0-9,后面紧随另一个斜号$regExpression .= "([0-9]+)/";// 再次对应一个或更多 0-9$regExpression .= "([0-9]+)";至于\\2/\\1/\\3则是用来对应括号,第一个括号对的是月份,第二个括号对应的是日期,第三个括号对应的是年份。
17.给你一行文字 $string,你会如何编写一个正规表达式,把 $string 内的 HTML 标签除去?
首先,PHP 有内建函式 strip_tags() 除去 HTML 标签,为何要自行编写正规表达式?好了,便当作是面试的一道考题吧,我会这样回答:
$stringOfText = "<p>This is a test</p>";
$expression = "/<(.*?)>(.*?)<\/(.*?)>/";
echo preg_replace($expression, "\\2", $stringOfText);// 有人说也可以使用 /(<[^>]*>)/ $expression = "/(<[^>]*>)/";
echo preg_replace($expression, "", $stringOfText);
19.你如何利用 PHP 解决 HTTP 的无状态本质?
最主要的俩各选择是 session 和 cookie。使用 session 的方法是在每一页的开始加上 session_start(),然后利用 $_SESSION 散列表来储存 session 变量。至于 cookie 你只需记着一个原则:在输出任何文字之前调用 set_cookie() 函式,此外只需使用 $_COOKIE 散列表便可以存取所有 cookie 变量。
还有一个不那么可靠的方法,就是利用访客的 IP 地址,这个方法有特定的危险性。
20.GD 函式库用来做什么?
这 个可能是我最喜欢的函式库,自从 PHP 4.3.0 版本后 GD 便内建在 PHP 系统中。这个函式库让你处理和显示各式格式的图档,它的另一个常见用途是制作所图档。GD 以外的另一个选择是 ImageMagick,但这个函式库并不内建于 PHP 之中,必须由系统管理员安装在伺服器上。
21.试写出几个输出一段 HTML 代码的方法。
嗯,你可以使用 PHP 中任何一种输出语句,包括 echo、print、printf,大部分人都使用如下例的 echo:
echo "My string $variable";你也可以使用这种方法:
echo <<<END This text is written to the screen as output and this $variable is parsed too. If you wanted remarks must be on a line of its own, and can't contain any extra white space.END;
6 请举例说明在你的开发过程中用什么方法来加快页面的加载速度
答:要用到服务器资源时才打开,及时关闭服务器资源,数据库添加索引,页面可生成静态,图片等大文件单独服务器。使用代码优化工具啦
1 请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?
传值只是把某一个变量的值传给了另一个变量,而引用则说明两者指向了同一个地方。
相关推荐
最新腾讯PHP面试题1. php 的垃圾回收机制 PHP 可以自动进行内存管理,清除不需要的对象。 PHP 使用了引用计数 (reference counting) GC 机制。 每个对象都内含一个引用计数器 refcount,每个 reference 连接到对象,...
php 面试题答案. 优化MYSQL数据库的方法。(4分,多写多得) (1).选取最适用的字段属性,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。 (2).使用连接(JOIN)来代替子查询(Sub-...
新浪PHP面试题新浪PHP面试题新浪PHP面试题
php面试题php面试题php面试题php面试题php面试题php面试题
php面试题目答案php面试题pphp面试题目答案hp面试题目答案目答案php面试题目答phpphp面试题目答案面试题目答案案php面试题目答案php面试php面试题目答案题目答案
PHP 面试大全-高级篇 本资源摘要信息涵盖了 PHP 面试高级篇的知识点,包括 SQL 查找、迷宫算法实现、MySQL 查询优化、MySQL 索引优化存储引擎的选择等内容。 SQL 查找 在 SQL 查找中,我们可以使用函数来查找表中...
做为程序员,到IT企业面试的时候肯定会有笔试这关,那就要考考你的PHP知识了,所以收集一些实用的php面试题及答案给大家。
php面试题
php面试题汇总
PHP 面试 宝典 下卷 PHP 面试 宝典 下卷 PHP 面试 宝典 下卷 PHP 面试 宝典 下卷 PHP 面试 宝典 下卷 PHP 面试 宝典 下卷
如你所见 php面试题一 php mysql 编程基础
PHP面试视频,涵盖了PHP相关的基础知识点,当然也包括mysql,javascript,jquery以及其他的相关技术知识点,也涉及了CDN加速以及高并发的处理,所以希望小伙伴们好好学习
传智php面试宝典,非常不错的资源
php面试题,公司内部面试题
PHP 面试题解析 本文将对 PHP 面试题进行详细的解析,涵盖了 HTML、CSS、JavaScript、Ajax、数据库优化、数据结构等多个方面的知识点。 第一部分:基本编程知识 1. 解释 document.form["formName"].submit 的意思...
php面试宝典,面试大全很全面的试题库!
php 面试题整理汇总.doc php 面试题整理汇总.doc php 面试题整理汇总.doc
超值的,php面试笔试题目及某些大公司的php面试题目。赶快下吧
php面试题答案
php面试题目及答案 方便招聘企业用人!