搜索

1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21

       date_default_timezone_set('PRC');                //设置中国时区

echo $today=date("Y-m-d h:i:s",(time()-86400)); //昨天??

 

 

2、echo(),print(),print_r()的区别

echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
print只能打印出简单类型变量的值(如int,string)
print_r可以打印出复杂类型变量的值(如数组,对象)

 

3.在 PHP 和 C 语言 中,有两种类型的递增前递增和后递增,本质上来讲,前递增和后递增均增加了变量的值,并且对于变量的影响是相同的。不同的是递增表达式的值。前递增,写做“++$variable”,求增加后的值(PHP 在读取变量的值之前,增加变量的值,因而称之为“前递增”)。后递增,写做“$variable++”,求变量未递增之前的原始值(PHP 在读取变量的值之后,增加变量的值,因而叫做“后递增”)。

$a = 1;

$b = $a++;

$b的值?1

 

3.使用哪些工具进行版本控制?

SNV(Subversion)、VSS(源代码管理器)等

 

4.如何实现字符串翻转?

$luokuan = "ABCDEFG-测试的啊-!!!一二三四五。。";

$n = mb_strlen("$luokuan");

//echo $n;

$newluokuan = "";

for ($i=$n;$i>=0;$i--)

{

//$newluokuan.= substr($luokuan,$i,1);

$newluokuan.= mb_substr($luokuan,$i,1,'utf-8');

 

}

echo $newluokuan;

 

不考虑中英文混合,不是最优算法,不用php库函数翻转字符串:

 

 

 

 

 

5. 优化MYSQL数据库的方法

1、选取最适用的字段属性

2、使用连接(JOIN)来代替子查询(Sub-Queries)

3、使用联合(UNION)来代替手动创建的临时表

4、事务

5、锁定表

6、使用外键

7、使用索引

 

6、能够使HTML和PHP分离开使用的模板

smarty,phplib,SmartTemplate…

 

7、谈谈事务处理

可以控制并发事务所产生的数据同步提交,更新问题,就是一个锁的概念.comit,rollback

 

8、apache+mysql+php实现最大负载的方法

问的太笼统,生成静态html页面,squid反向代理,apache,mysql的负载均衡.

 

9、实现中文字串截取无乱码的方法。

这个首先要考虑字符集的问题,UTF-8下一个汉字占3字节,GBK下一个汉字占2字节.可以自己写个函数来处理,别人也写了很多,当然也可以开启mbstring扩展库,使用里面的mb_substr()等函数来截取

 

10.

var $empty       = '';

var $null        = NULL;

var $bool        = FALSE;

var $notSet;

var $array       = array();

 

 

$a = "hello";

$b = &$a;

unset($b);

$b = "world";

what is $a?

hello,unset($b)只是释放了$b自己和$a的别名关系,并不会释放$a

 

 

$a = 1;

$x = &$a;

$b = $a++;

what is $b?

1,先执行$b = $a,$a++再进行,所以$b还是1

 

$x = empty($array);

what is $x?   true    or    false

true,$array是空数组

 

 

12.您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?

CVS:winCVS,是一个CVS的客户端

VSS,微软的产品,比较适合中小型项目,只支持单人checkout

 

13.您是否用过模板引擎? 如果有您用的模板引擎的名字是?

SMARTY,php官方推荐的模板引擎,它是编译型模板,与phplib不太相同,功能强大,30多种标签,支持cache

 

14.对于大流量的网站,您采用什么样的方法来解决访问量问题?

squid[反向代理],最好的选择!当然,money不是问题的话,增加带宽也是很好的选择!

 

15.用PHP写出显示客户端IP与服务器IP的代码:

echo $_SERVER['REMOTE_ADDR'] //客户端ip

echo $_SERVER['SERVER_ADDR'] //服务器端ip

 

 

面试题3

一、PHP/MySQL编程

 

1)       某内容管理系统中,表message有如下字段
id 文章id
title 文章标题
content 文章内容
category_id 文章分类id
hits 点击量

创建上表,写出MySQL语句

create table message

(

       id INT    NOT NULL AUTO_INCREMENT PRIMARY KEY,

       title varchar(100),

       content varchar(225),

       category_id int,

       hits int    

)

 

mssql?句:

create table message

(

    id INT identity(1,1) not null primary key,

    title varchar(100),

    [content] varchar(225),

[category_id] int,

    hits int

)

 

 

 

2)同样上述内容管理系统:表comment记录用户回复内容,字段如下

comment_id 回复id

id 文章id,关联message表中的id

comment_content 回复内容

现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面

文章id 文章标题 点击量 回复数量

用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0

 

select a.id,  a.title,  a.hits, if(ifnull(b.id,false),count(*),0) as replay from message a left join comment b on a.id=b.id

group by a.id

order by replay desc

 

 

3)上述内容管理系统,表category保存分类信息,字段如下 (3分)

category_id int(4) not null auto_increment;

categroy_name varchar(40) not null;

用户输入文章时,通过选择下拉菜单选定文章分类

写出如何实现这个下拉菜单

 

function categoryList()

{

    $result=mysql_query("select category_id,categroy_name from category")

            or die("Invalid query: " . mysql_error());

    print("

    while($rowArray=mysql_fetch_array($result))

    {

       print(""n");

    }

    print("");

}

 

 

三、PHP程序

 

1) 写出以下程序的输出结果

 

$b=201;

 

$c=40;

 

$a=$b>$c?4:5;

 

echo $a;

 

?>

 

$a=4

 

 

2) 写出以下程序的输出结果

 

 

$str="cd";

 

$$str="hotdog";

 

$$str.="ok";

 

echo $str;

 

?>

 

$str="cd";

 

四、

1.请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?

传值只是把某一个变量的值传给了另一个变量,而引用则说明两者指向了同一个地方。

 

2   在PHP中error_reporting这个函数有什么作用?

     设定php脚本的错误报告级别。

 

3         请用正则表达式(Regular Expression)写一个函数验证电子邮件的格式是否正确。
/*
检查邮件地址是否为邮件地址,返回逻辑值
*/
function CheckMailAdr($str){
return(eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$str));
}

 

4   简述如何得到当前执行脚本路径,包括所得到参数。
说明:例如有一个脚本 www.domain.com,传给他的参数有参数1,参数2,参数3…。传递参数的方法有可能是GET有可能是POST,那么现在请写出类似:http://www.domain.com/script.php?参数1=值1&参数2=值2.....   的结果
     关于前执行脚本路径感觉有点歧义:若是得到该脚本在服务器上的绝对路径用 $_SERVER[‘APPL_PHYSICAL_PATH’].若是该脚本的URL则可以用获取
     获取所有参数:可以用以下方法:
//获取post的数据
while (list($var, $value) = each($HTTP_POST_VARS))
{
    echo "$var = $value n";
}
//获取get方式的数据
while (list($var, $value) = each($HTTP_GET_VARS))
{
    echo "$var = $value n";
}

 

 

5   有一个一维数组,里面存储整形数据,请写一个函数,将他们按从大到小的顺序排列。要求执行效率高。并说明如何改善执行效率。
(该函数必须自己实现,不能使用php函数)
可以用冒泡排序

function BubbleSort($str)
{
for ($i=0;$i {     
    for ($j=count($str)-2;$j>=$i;$j--)
     {
            if($str[$j+1]              {    
                $tmp = $str[$j+1];
                 
                $str[$j+1]=$str[$j];
                $str[$j]=$tmp;
             }

     }

}
return $str;
}
$str = array(3,6,1,5,9,0,4,6,11);
print_r(BubbleSort($str));
?>

 

 

6   请举例说明在你的开发过程中用什么方法来加快页面的加载速度
A.生成静态HTML,

B.生成XML
C.用ZEND加速

 

 

面试题8
1-如何通过javascript判断一个窗口是否已经被屏蔽。

<script> </script>

 var   result   =   window.open("/somepage.aspx");  

 if(result==null)  

 {  

        alert("浏览器不允许弹出窗口");  

 }  

 

 


2-写出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数据。

 



3-防止SQL注射漏洞一般用_____函数。

       addslashes

 



4- 写出发贴数最多的十个人名字的SQL,利用下表:
   members(id,username,posts,pass,email)
 SELECT username,count(*) as num FROM `members` group by username order by count(*) desc limit 10

 

5

给你三个数,写程序求出其最大值。
$var1=1;
$var2=7;
$var3=8;
$max=$var1>$var2?$var1:$var2;
$max=$max>$var3?$max:$var3;
echo $max;

 

6)有一表 menu(mainmenu,submenu,url),请用递归法写出一树形菜单,将所有的menu列出来

 

 

JS打印

 

 

 

 function GenerateMenu($id=0,$str="")

 {

     $result=mysql_query("select mainmenu,url,submenu from menu where mainmenu=$id");

     while($row=mysql_fetch_array($result))

     {

         echo $str.$row["url"]."
";

         GenerateMenu($row["submenu"],$str."--");

     }

     mysql_free_result($result);

 }

 

 $link=mysql_connect("localhost","root","");

 mysql_select_db("phpinterview");

 GenerateMenu();

 mysql_close($link)

 ?>

 

 

 

 

 

7.执行程序段

将输出 2

 

 

8.在HTTP 1.0中,状态码 401 的含义是

401 (Unauthorized/未授权)

401 (SC_UNAUTHORIZED)表示客户端在授权头信息中没有有效的身份信息时访问受到密码保护的页面。这个响应必须包含一个WWW-Authenticate的授权信息头

 

9.数组函数 arsort 的作用是();语句 error_reporting(2047)的作用是()。

arsort --  对数组进行逆向排序并保持索引关系

error_reporting(2047)  所有的??警告

All errors and warnings, as supported, except of level E_STRICT.

 

10、请写出PHP5权限控制修饰符(3分)

private protected public

 

 

11、请写出php5的构造函数和析构函数(2分)

__construct __destruct

 

12、取得查询结果集总数的函数是?(1分)

mysql_num_rows($res);

 

13.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的URL记录在预定义变量(2)中。

echo $_SERVER['PHP_SELF']; echo $_SERVER["HTTP_REFERER"];

 

14. 在HTTP 1.0中,状态码 401 的含义是(4);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(5)。

(4)未授权 (5) header("HTTP/1.0 404 Not Found");

 

15 写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):(9)。

Echo preg_replace("/<script>].*?>.*?<"/script>/si","","dfedf<script lang='dfdf'>fddddddddddd</script>dffffff");

 

16..以Apache模块的方式安装PHP,在文件http.conf中首先要用语句(10)动态装载PHP模块,然后再用语句(11)使得Apache把所有扩展名为php的文件都作为PHP脚本处理。

(10)LoadModule    php5_module "D:/xampp/apache/bin/php5apache2.dll"

(11) AddType application/x-httpd-php-source .phps

  AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml

 

17.语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是(12);为了避免多次包含同一文件,可以用语句(13)来代替它们。

(12) 发生异常时include产生警告require产生致命错误 (13) require_once()/include_once()

 

18.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是(14)。

serialize() /unserialize()

 

19.一个函数的参数不能是对变量的引用,除非在php.ini中把(15)设为on.

allow_call_time_pass_reference

 

20.SQL 中LEFT JOIN的含义是(16)。

(16) 自然左外连接

 

21.如果 tbl_user记录了学生的姓名(name)和学号(ID),

tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),

要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句(17)。

 

(17) select name , count(score) as sum_score from tbl_user left join tbl_score on tbl_user.ID=tbl_score.ID group by tbl_user.ID

 

22.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须(18)。

结束标识符所在的行不能包含任何其它字符除";"

 

23.一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

 

/**

 * 遍历目录,结果存入数组。支持php4及以上。php5以后可用scandir()函数代替while循环。

 * @param string $dir

 * @return array

 */

function my_scandir($dir)

{

   $files = array();

   if ( $handle = opendir($dir) ) {

       while ( ($file = readdir($handle)) !== false ) {

           if ( $file != ".." && $file != "." ) {

               if ( is_dir($dir . "/" . $file) ) {

                   $files[$file] = my_scandir($dir . "/" . $file);

               }else {

                   $files[] = $file;

               }

           }

       }

       closedir($handle);

       return $files;

   }

}

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP:服务器端脚本语言的简介PHP:服务器端脚本语言的简介Apr 16, 2025 am 12:18 AM

PHP是一种服务器端脚本语言,用于动态网页开发和服务器端应用程序。1.PHP是一种解释型语言,无需编译,适合快速开发。2.PHP代码嵌入HTML中,易于网页开发。3.PHP处理服务器端逻辑,生成HTML输出,支持用户交互和数据处理。4.PHP可与数据库交互,处理表单提交,执行服务器端任务。

PHP和网络:探索其长期影响PHP和网络:探索其长期影响Apr 16, 2025 am 12:17 AM

PHP在过去几十年中塑造了网络,并将继续在Web开发中扮演重要角色。1)PHP起源于1994年,因其易用性和与MySQL的无缝集成成为开发者首选。2)其核心功能包括生成动态内容和与数据库的集成,使得网站能够实时更新和个性化展示。3)PHP的广泛应用和生态系统推动了其长期影响,但也面临版本更新和安全性挑战。4)近年来的性能改进,如PHP7的发布,使其能与现代语言竞争。5)未来,PHP需应对容器化、微服务等新挑战,但其灵活性和活跃社区使其具备适应能力。

为什么要使用PHP?解释的优点和好处为什么要使用PHP?解释的优点和好处Apr 16, 2025 am 12:16 AM

PHP的核心优势包括易于学习、强大的web开发支持、丰富的库和框架、高性能和可扩展性、跨平台兼容性以及成本效益高。1)易于学习和使用,适合初学者;2)与web服务器集成好,支持多种数据库;3)拥有如Laravel等强大框架;4)通过优化可实现高性能;5)支持多种操作系统;6)开源,降低开发成本。

揭穿神话:PHP真的是一种死语吗?揭穿神话:PHP真的是一种死语吗?Apr 16, 2025 am 12:15 AM

PHP没有死。1)PHP社区积极解决性能和安全问题,PHP7.x提升了性能。2)PHP适合现代Web开发,广泛用于大型网站。3)PHP易学且服务器表现出色,但类型系统不如静态语言严格。4)PHP在内容管理和电商领域仍重要,生态系统不断进化。5)通过OPcache和APC等优化性能,使用OOP和设计模式提升代码质量。

PHP与Python辩论:哪个更好?PHP与Python辩论:哪个更好?Apr 16, 2025 am 12:03 AM

PHP和Python各有优劣,选择取决于项目需求。1)PHP适合Web开发,易学,社区资源丰富,但语法不够现代,性能和安全性需注意。2)Python适用于数据科学和机器学习,语法简洁,易学,但执行速度和内存管理有瓶颈。

PHP的目的:构建动态网站PHP的目的:构建动态网站Apr 15, 2025 am 12:18 AM

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP:处理数据库和服务器端逻辑PHP:处理数据库和服务器端逻辑Apr 15, 2025 am 12:15 AM

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

您如何防止PHP中的SQL注入? (准备的陈述,PDO)您如何防止PHP中的SQL注入? (准备的陈述,PDO)Apr 15, 2025 am 12:15 AM

在PHP中使用预处理语句和PDO可以有效防范SQL注入攻击。1)使用PDO连接数据库并设置错误模式。2)通过prepare方法创建预处理语句,使用占位符和execute方法传递数据。3)处理查询结果并确保代码的安全性和性能。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器