PHP笔试题

Jun 23, 2016 pm 02:37 PM

1、不用新变量直接交换现有两个变量的值

(1)list($a,$b)=array($b,$a);(2)a=a+b,b=a-b,a=a-b
로그인 후 복사

2、PHP 数字金额转大小格式,同时说明思路

  function daxie($num){      $da_num = array('零','一','二','三','四','五','六','七','八','九');      $return = '';      $len_num = strlen($num);      if(!is_numeric($num) || $len_num < 0){          return '';      }      for($i=0;$i<$len_num;$i++){          $return .= $da_num[ substr($num,$i,1)];      }      return $return;  }
로그인 후 복사

3.SQL查询语句如下:
select * from table where (ID = 10) or (ID = 32) or (ID = 22) or (ID = 76) or (ID = 13) or (ID = 44)
让结果按10,32,22,76,13,44的顺序检索出来,请问如何书写?

select * from tablewhere id in (10,32,22,76,13,44)          order by charindex(id,'10,32,22,76,13,44') desc
로그인 후 복사

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

(1)echo date('Y-m-d H:i:s',time()-60*60*24);(2)echo date('Y-m-d H:i:s',strtotime('-1 day'))
로그인 후 복사

5. echo(),print(),print_r()的区别

echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组或对象
로그인 후 복사

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

PHP本身是一种模版引擎,我用过的是smarty,常见的还有PHPLib,FastTemplate,Savant
로그인 후 복사

7.如何实现PHP、JSP交互?

题目有点含糊不清,SOAP,XML_RPC,Socket function,CURL都可以实现这些,如果是考PHP和Java的整合,PHP内置了这种机制(如果考PHP和.NET的整合,也可以这么回答),例如$foo = new Java('java.lang.System');
로그인 후 복사

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

CVS和SVN,SVN号称下一代CVS,功能强大,不过CVS是老牌,市占率很高.我一直用SVN,题目是问用什么工具,呃,这个可能需要这么回答:CVS Server on Apache作服务端,WinCVS作客户端;Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端
로그인 후 복사

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

其实PHP本身就有字符串翻转的函数:strrev(),不过这种方法都不能解决中文字符串翻转的问题,会出错的。<?phpfunction reverse($var){$res="";for($i=0,$j=strlen($var);$i<$j;$i++){$res=$var[$i].$res;}return $res;}$tmpvar="wofang";$res=reverse($tmpvar);echo $res;?>
로그인 후 복사

10.优化MYSQL数据库的方法

(1).数据库设计方面,这是DBA和Architect的责任,设计结构良好的数据库,必要的时候,去正规化(英文是这个:denormalize),    允许部分数据冗余,避免JOIN操作,以提高查询效率(2).系统架构设计方面,表散列,把海量数据散列到几个不同的表里面.快慢表,快表只留最新数据,慢表是历史存档.集群,主服务器Read & write,    从服务器read only,或者N台服务器,各机器互为Master(3).(1)和(2)超越PHP Programmer的要求了,会更好,不会没关系.检查有没有少加索引(4).写高效的SQL语句,看看有没有写低效的SQL语句,比如生成笛卡尔积的全连接啊,大量的Group By和order by,没有limit等等.    必要的时候,把数据库逻辑封装到DBMS端的存储过程里面.缓存查询结果,explain每一个sql语句(5).所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论数,select count(*) … where article_id = ?     就可以了,不要先select * … where article_id = ?然后msql_num_rows.    只传送必须的SQL语句,比如修改文章的时候,如果用户只修改了标题,那就update … set title = ? where article_id = ?    不要set content = ?(大文本)(6).必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度
로그인 후 복사

11.谈谈事务处理

A给B的账户转账50美元的例子
로그인 후 복사

12.apache+mysql+php实现最大负载的方法

参考第10题。

13.实现中文字串截取无乱码的方法

(1)mb_substr()(2)function GBsubstr($string, $start, $length) {    if(strlen($string)>$length){        $str=null;        $len=$start+$length;        for($i=$start;$i<$len;$i++){            if(ord(substr($string,$i,1))>0xa0){                $str.=substr($string,$i,2);                $i++;            }else{                $str.=substr($string,$i,1);            }        }        return $str;    }else{        return $string;    }}
로그인 후 복사

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

echo '客户端IP:'.$_SERVER['REMOTE_ADDR'].'<br />';echo '服务器端IP:'.gethostbyname($_SERVER['SERVER_NAME']);
로그인 후 복사

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

前执行脚本的绝对路径名(3),正在浏览当前页面用户的 IP 地址(4),查询(query)的字符串(URL 中第一个问号 ? 之后的内容):id=1&bi=2(5),当前运行脚本所在的文档根目录(6)。

(1)$_SERVER['SCRIPT_FILENAME'];或者$_SERVER['PHP_SELF'](2)$_SERVER['HTTP_REFERER'](3)$_SERVER['SCRIPT_FILENAME'];(4)$_SERVER['REMOTE_ADDR'];(5)$_SERVER['QUERY_STRING'];(6)$_server['DOCUMENT_ROOT'];
로그인 후 복사

16.执行程序段 将输出__。

(1)echo 8%(-2)。输出:0(2)echo (-8)%3 .输出:-2(3)echo 8%(-3).输出:2
로그인 후 복사

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

(1)401表示未授权;(2)header(“HTTP/1.0 404 Not Found”);[
로그인 후 복사

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

arsort:对数组进行逆向排序并保持索引关系 error_reporting(2047)的作用是:report All errors and warnings
로그인 후 복사

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

$a="<script type='text/javascript'>XXXXXXXXXXXXXXX</script>";echo preg_replace('/\<script[^>]*?>.*<\/script\>/is','',$a);
로그인 후 복사

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

LoadModule php5_module "c:/php/php5apache2.dll";AddType application/x-httpd-php .php
로그인 후 복사

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

在如何处理失败时,include() 产生一个警告而 require() 则导致一个致命错误;require_once()/include_once()
로그인 후 복사

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

allow_call_time_pass_reference boolean :是否启用在函数调用时强制参数被按照引用传递
로그인 후 복사

23..SQL 中LEFT JOIN的含义是__,如果 tbl_user记录了学生的姓名(name)和学号(ID),
tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出 各个学生姓名及对应的的各科总成绩,则可以用SQL语句____.

答:自然左外连接create database phpinterview;use phpinterviewcreate table tbl_user(ID int not null PRIMARY KEY,name varchar(50) not null,primary key (ID));create table tbl_score(ID int not null ,score dec(6,2) not null,subject varchar(20) not null);insert into tbl_user (ID, name) values (1, 'beimu');insert into tbl_user (ID, name) values (2, 'aihui');insert into tbl_score (ID, score, subject) values (1, 90, '语文');insert into tbl_score (ID, score, subject) values (1, 80, '数学');insert into tbl_score (ID, score, subject) values (2, 86, '数学');insert into tbl_score (ID, score, subject) values (2, 96, '语文');select A.id,sum(B.score) as sumscorefrom tbl_user A left join tbl_score Bon A.ID=B.IDgroup by A.id
로그인 후 복사

24.在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____

结束标识符所在的行不能包含任何其它字符除";"
로그인 후 복사

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

<?phpfunction my_scandir($dir){    $files=array();    if(is_dir($dir))    {        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[]=$dir."/".$file;                    }                }            }            closedir($handle);            return $files;        }    }}print_r(my_scandir("D:Program FilesInternet ExplorerMUI"));?>
로그인 후 복사

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

serialize() /unserialize()
로그인 후 복사

 

 

 

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. Apr 05, 2025 am 12:04 AM

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

PHP에서 늦은 정적 결합의 개념을 설명하십시오. PHP에서 늦은 정적 결합의 개념을 설명하십시오. Mar 21, 2025 pm 01:33 PM

기사는 PHP 5.3에 도입 된 PHP의 LSB (Late STATIC BING)에 대해 논의하여 정적 방법의 런타임 해상도가보다 유연한 상속을 요구할 수있게한다. LSB의 실제 응용 프로그램 및 잠재적 성능

프레임 워크 보안 기능 : 취약점 보호. 프레임 워크 보안 기능 : 취약점 보호. Mar 28, 2025 pm 05:11 PM

기사는 입력 유효성 검사, 인증 및 정기 업데이트를 포함한 취약점을 방지하기 위해 프레임 워크의 필수 보안 기능을 논의합니다.

프레임 워크 사용자 정의/확장 : 사용자 정의 기능을 추가하는 방법. 프레임 워크 사용자 정의/확장 : 사용자 정의 기능을 추가하는 방법. Mar 28, 2025 pm 05:12 PM

이 기사에서는 프레임 워크에 사용자 정의 기능 추가, 아키텍처 이해, 확장 지점 식별 및 통합 및 디버깅을위한 모범 사례에 중점을 둡니다.

PHP의 CURL 라이브러리를 사용하여 JSON 데이터가 포함 된 게시물 요청을 보내는 방법은 무엇입니까? PHP의 CURL 라이브러리를 사용하여 JSON 데이터가 포함 된 게시물 요청을 보내는 방법은 무엇입니까? Apr 01, 2025 pm 03:12 PM

PHP 개발에서 PHP의 CURL 라이브러리를 사용하여 JSON 데이터를 보내면 종종 외부 API와 상호 작용해야합니다. 일반적인 방법 중 하나는 컬 라이브러리를 사용하여 게시물을 보내는 것입니다 ...

확실한 원칙과 PHP 개발에 적용되는 방법을 설명하십시오. 확실한 원칙과 PHP 개발에 적용되는 방법을 설명하십시오. Apr 03, 2025 am 12:04 AM

PHP 개발에서 견고한 원칙의 적용에는 다음이 포함됩니다. 1. 단일 책임 원칙 (SRP) : 각 클래스는 하나의 기능 만 담당합니다. 2. Open and Close Principle (OCP) : 변경은 수정보다는 확장을 통해 달성됩니다. 3. Lisch의 대체 원칙 (LSP) : 서브 클래스는 프로그램 정확도에 영향을 미치지 않고 기본 클래스를 대체 할 수 있습니다. 4. 인터페이스 격리 원리 (ISP) : 의존성 및 사용되지 않은 방법을 피하기 위해 세밀한 인터페이스를 사용하십시오. 5. 의존성 반전 원리 (DIP) : 높고 낮은 수준의 모듈은 추상화에 의존하며 종속성 주입을 통해 구현됩니다.

Reactphp의 비 차단 기능은 정확히 무엇입니까? 차단 I/O 작업을 처리하는 방법은 무엇입니까? Reactphp의 비 차단 기능은 정확히 무엇입니까? 차단 I/O 작업을 처리하는 방법은 무엇입니까? Apr 01, 2025 pm 03:09 PM

Reactphp의 비 블로킹 기능에 대한 Reactphp의 심층적 인 해석의 비 차단 기능에 대한 공식 소개는 많은 개발자들의 질문을 불러 일으켰습니다.

See all articles