收?PHP??

Jun 23, 2016 pm 02:34 PM

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

热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.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

php中的卷曲:如何在REST API中使用PHP卷曲扩展 php中的卷曲:如何在REST API中使用PHP卷曲扩展 Mar 14, 2025 am 11:42 AM

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

在Codecanyon上的12个最佳PHP聊天脚本 在Codecanyon上的12个最佳PHP聊天脚本 Mar 13, 2025 pm 12:08 PM

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

解释PHP中晚期静态结合的概念。 解释PHP中晚期静态结合的概念。 Mar 21, 2025 pm 01:33 PM

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

框架安全功能:防止漏洞。 框架安全功能:防止漏洞。 Mar 28, 2025 pm 05:11 PM

文章讨论了框架中的基本安全功能,以防止漏洞,包括输入验证,身份验证和常规更新。

如何用PHP的cURL库发送包含JSON数据的POST请求? 如何用PHP的cURL库发送包含JSON数据的POST请求? Apr 01, 2025 pm 03:12 PM

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...

自定义/扩展框架:如何添加自定义功能。 自定义/扩展框架:如何添加自定义功能。 Mar 28, 2025 pm 05:12 PM

本文讨论了将自定义功能添加到框架上,专注于理解体系结构,识别扩展点以及集成和调试的最佳实践。

See all articles