1. 원격 이미지를 로컬로 캡처하려면 어떤 함수를 사용합니까?
fsockopen, A
2. 최대 3개의 값을 찾는 함수를 작성하려면
$a ,$b,$c){
* W0 z* u6 k e. L a: }5 } $a>$b? $a : $c) : ($ b> $c? $b : $c );
5 O: F6 v1 W# U}
3. PHP를 사용하여 전날의 시간을 출력합니다. 형식은 2007년 5월 10일입니다. :21:21
Echo date('Y-m-d H:i:s',strtotime('-1 day'));
4. JavaScript가 2차원 배열을 정의할 수 없다면 어떻게 해결할 수 있나요? 그것?
자바스크립트는 2차원 배열을 지원하지 않습니다. 차원 배열 정의는 arr[0] = new array()로 해결할 수 있습니다.
5. a.html과 b.html이 같은 폴더에 있다고 가정하고, a.html을 5초 동안 열면 자동으로 b.html로 이동한다는 것을 javascript에서 인식합니다.
function go2b(){
window.location = “b.html”;
window.close();
}
setTimeout( “go2b()”,5000 ) // 5초 후 자동으로 go2b() 실행
6. //현재 페이지를 탐색하는 사용자의 IP 주소: 127.0.0.1
echo $_SERVER["REMOTE_ADDR"]."
";
//쿼리 문자열(URL에서 첫 번째 물음표 ? 다음의 내용): id=1&bi=2
echo $_SERVER["QUERY_STRING"]."
";
//문서 현재 실행 중인 스크립트가 있는 루트 디렉터리: d:inetpubwwwroot
echo $_SERVER["DOCUMENT_ROOT"]."
";
7. HTTP 1.0에서 상태 코드 401은 승인되지 않은 ____을 의미합니다. "파일을 찾을 수 없음"이 반환되고 헤더 기능을 사용할 수 있으며 해당 문은 header("HTTP/1.0 404 Not Found")입니다.
답변: 401은 승인되지 않은 헤더("HTTP/1.0 404 Not Found"를 의미합니다. );
8. 폴더의 모든 파일과 하위 폴더를 탐색할 수 있는 함수를 작성하세요.
function 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”));
?> ;
9. 사용자 배열에 John을 추가하시겠습니까?
$users[] = 'john'; array_push($users,'john');
10. error_reporting 함수 do?
답변: error_reporting()은 PHP의 오류 수준을 설정하고 현재 수준을 반환합니다.
11. 정규식(Regular Expression)을 이용하여 이메일의 형식이 올바른지 확인하는 함수를 작성해 주세요.
답변:
$email=$_POST['email'];
if(!preg_match('/^[w.] @([w.] ).[ a-z]{2,6}$/i',$email)) {
echo “이메일 감지 실패”;
}else{
echo “이메일 감지 성공”;
}
?>
12. PHP를 사용하여 클라이언트 IP와 서버 IP를 표시하는 코드를 작성하세요
답변: 클라이언트 IP를 인쇄하세요: echo $_SERVER['REMOTE_ADDR'] 또는: getenv('REMOTE_ADDR') ;
인쇄 서버 IP: echo gethostbyname(“www.bolaiwu.com”)
13. SESSION의 생존 시간을 수정하는 방법(1점).
답변: 방법 1: php를 변경합니다. ini Session.gc_maxlifetime이 9999로 설정되고 Apache를 다시 시작합니다
방법 2: $savePath = “./session_save_dir/”;
$lifeTime = 시간 * 초;
session_save_path($savePath);
session_set_cookie_params( $lifeTime);
session_start();
방법 3: setcookie() 및 session_set_cookie_params($lifeTime);
14. PHP 개발 자원 네트워크: http://www.phpres.com/index.html, 내용을 얻는 방법($1 포인트)
답변: 방법 1(PHP5 이상):
$readcontents = fopen (“http://www.phpres.com/index.html”, “rb”);
$contents = stream_get_contents($readcontents);
fclose($readcontents);
echo $contents;
방법 2:
echo file_get_contents(“http://www.phpres.com/index.html”);
15. PHP. 언제 값으로 전달해야 하는지, 언제 참조로 전달해야 하는지(2점)
답: 값으로 전달: 함수 범위 내의 값에 대한 모든 변경 사항은 함수 외부에서 무시됩니다.
참조로 전달: 다음의 모든 변경 사항은 무시됩니다. 함수 범위 내의 값 변경 사항은 함수 외부에도 반영될 수 있습니다.
장점 및 단점: 값으로 전달할 때 PHP는 값을 복사해야 합니다. 특히 큰 문자열과 개체의 경우 비용이 많이 드는 작업이 될 수 있습니다.
참조로 전달하면 값을 복사할 필요가 없으므로 성능 향상에 매우 좋습니다.
16. 표준 URL에서 최대한 효율적으로 파일 확장자를 검색하는 함수를 작성하세요.
예: http://www.sina.com.cn/abc/de/fg? id=1은 php 또는 .php를 제거해야 합니다
답변 1:
function getExt($url){
$arr = pars_url($url);
$file = basename($arr['path']);
$ext =Explode(".",$file);
return $ext[1 ];
}
답변 2:
function getExt($url) {
$url = basename($url);
$pos1 = strpos($url,".");
$pos2 = strpos($url,”?”);
if(strstr($url,”?”)){
return substr($url,$pos1 1,$pos2 – $pos1 – 1);
} else {
return substr($url,$pos1);
}
}
17. file
요구 사항: dir/upload.image.jpg, find .jpg 또는 jpg,
은 처리를 위해 PHP 자체 처리 함수를 사용해야 하며, 메서드는 명백히 반복될 수 없으며 get_ext1과 같은 함수로 캡슐화될 수 있습니다. ($file_name) , get_ext2($file_name)
function get_ext1($file_name){
return strrchr($file_name, '.');
}
function get_ext2($file_name){
return substr( $file_name, strrpos($file_name, '.'));
}
function get_ext3($file_name){
return array_pop(explode('.', $file_name));
}
함수 get_ext4($file_name){
$p = pathinfo($file_name);
return $p['extension'];
}
함수 get_ext5($file_name) {
return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.')));
}
18、$str1 = null;
$str2 = false;
echo $str1==$str2 ? '같음' : '같지 않음';
$str3 = ”;
$str4 = 0;
echo $str3==$str4 ? '같음' : '같지 않음';
$str5 = 0;
$str6 = '0′;
echo $str5===$str6 ? '같음' : '같지 않음';
?>
같음 같지 않음
19. MySQL 데이터베이스에서 varchar 및 char 필드 유형의 주요 차이점은 무엇입니까? 왜 그런 종류의 필드가 더 높나요?
Varchar는 가변 길이이므로 저장 공간이 절약되는 반면 char는 고정 길이입니다. char형에 비해 검색 효율이 빠르다. varchar는 길이가 고정되지 않기 때문에 먼저 길이를 검색한 후 데이터를 추출해야 하는데, char 고정 길이형보다 한 단계 더 많아 효율성이 떨어진다.
20. JavaScript를 사용해 작성해 주세요. 이미지 태그를 생성하는 세 가지 방법을 생각해 보세요. (힌트: 메소드, 객체, HTML의 관점에서 생각해보세요)
(1)var img = new Image( );
(2)var img = document.createElementById(“image ”)
(3)img.innerHTML = “”
21. 가장 중요한 것을 2가지 이상 기술해 주세요. XHTML과 HTML의 차이점
(1) XHTML은 문서 유형 DocType을 강제로 지정해야 하며 HTML은
을 요구하지 않습니다. (2) 모든 XHTML 태그는 닫혀야 하며 HTML은 더 캐주얼합니다
22. 정렬 알고리즘 작성 , 이는 버블 정렬 또는 빠른 정렬일 수 있습니다. 정렬할 개체가 차원 배열이라고 가정합니다.
//버블 정렬(배열 정렬)
function bubble_sort($array)
{
$count = count($array);
if ($count <= 0) return false ;
for($i=0; $i<$count; $i ){
for($j=$count-1; $j>$i; $j–){
if ( $array[$j] < $array[$j-1]){
$tmp = $array[$j];
$array[$j] = $array[$j-1] ;
$array[$j-1] = $tmp;
}
}
}
return $array;
}
//빠른 정렬(배열 정렬)
function Quicksort($array) {
if (count($array) <= 1) return $array;
$key = $array[0];
$left_arr = array() ;
$right_arr = array();
for ($i=1; $i
$left_arr[] = $array[$i];
else
$right_arr[] = $array[$i];
}
$left_arr = Quicksort($left_arr) ;
$right_arr =quicksort($right_arr);
return array_merge($left_arr, array($key), $right_arr);
}
3가지 이상의 MySQL 유형 작성 데이터베이스 스토리지 엔진 이름(팁: 대소문자 구분 안 함)
MyISAM, InnoDB, BDB(Berkeley DB), Merge, Memory(Heap), example, Federated, Archive, CSV, Blackhole, MaxDB 외 다수 엔진
24. 2007-2-5 ~ 2007-3-6 사이의 날짜 차이 등 두 날짜의 차이를 찾습니다.
방법 1:
클래스 Dtime
{
function get_days($date1, $date2)
{
$time1 = strtotime($date1);
$time2 = strtotime($date2);
return ( $ time2-$time1)/86400;
}
}
$Dtime = 새로운 Dtime;
echo $Dtime->get_days('2007-2-5′, '2007-3- 6 ′);
?>
방법 2:
$temp =explod('-', '2007-2-5′);
$time1 = mktime (0, 0, 0, $temp[1], $temp[2], $temp[0]);
$temp = 폭발('-', '2007-3-6′);
$time2 = mktime(0, 0, 0, $temp[1], $temp[2], $temp[0]);
echo ($time2-$time1)/86400;
방법 3 : echo abs(strtotime(“2007-2-1″)-strtotime(“2007-3-1″))/60/60/24 시차 계산
25. 다음 함수:
문자열 "open_door"는 "OpenDoor"로 변환되고, "make_by_id"는 "MakeById"로 변환됩니다.
방법:
function str_explode($str){
$str_arr=explode(“_”,$str);$str_implode=implode(” “,$str_arr); $str_implode=implode
(“”,explode(” “ ,ucwords($str_implode)));
return $str_implode;
}
$strexplode=str_explode(“make_by_id”);print_r($strexplode);
방법 2: $str="make_by_id !";
$expStr=explode("_",$str);
for($i=0;$i
echo ucwords ($expStr[$i]);
}방법 3: echo str_replace(' ',",ucwords(str_replace('_',' ','open_door')));
26. 테이블에 여러 개의 ID 레코드가 있습니다. 해당 ID의 레코드를 모두 찾아 총 레코드 수를 표시합니다. SQL 문과 뷰 및
저장 프로시저를 사용하여 각각
DELIMITER //
프로시저 proc_countNum(columnId int,outrowNo int)
begin
member_id=columnId;
end
call proc_countNum(1,@no);
@no 선택;
방법: 보기:
member_id를 선택하여 v_countNum 뷰를 생성하고,
member_id
member_id=1인 v_countNum에서 countNum을 선택하여 멤버 그룹에서 count(*)를 선택합니다.
27. js에서 웹페이지 앞뒤로 이동하는 코드(forward:history.forward();=history.go(1);backward:history.back
();=history.go(- 1) ; )
28. echo count("abc"); 무엇을 출력합니까?
답: 1
count - 배열의 셀 수 또는 속성의 수를 계산합니다. object
int count (mixed$var [, int $mode ] ), var가 배열 유형이 아니거나 Countable 인터페이스를 구현하는 객체인 경우 var가 NULL인 경우 예외가 발생합니다. 결과는 0입니다.
객체의 경우 SPL이 설치되어 있으면 Countable 인터페이스를 구현하여 count()를 호출할 수 있습니다. 이 인터페이스에는 count() 함수의 반환 값을 반환하는 메서드 count()가 하나만 있습니다.
29. 정수 데이터를 저장하는 1차원 배열이 있습니다. 큰 것부터 작은 것 순으로 정렬하는 함수를 작성해 주세요. 높은 실행 효율성이 필요합니다. 실행 효율성을 향상시키는 방법을 설명합니다. (이 함수는 직접 구현해야 하며 PHP 함수를 사용할 수 없습니다.)
function BubbleSort(&$arr)
{
$cnt=count($arr);
$flag =1;
for($i=0;$i<$cnt;$i )
{
if($flag==0)
{
return;
}
$flag=0;
for($j=0;$j<$cnt-$i-1;$j )
{
if($arr[$j]> ;$ arr[$j 1])
{
$tmp=$arr[$j];
$arr[$j]=$arr[$j 1];
$arr[ $j 1]=$tmp;
$flag=1;
}
}
}
}
$test=array(1,3,6,8,2, 7) ;
BubbleSort($test);
var_dump($test);
?>
30. 개발 과정에서 페이지 로딩 속도를 높이기 위해 어떤 방법을 사용하는지 예를 들어주세요.
답변: 서버 리소스가 필요할 때만 열고, 서버 리소스를 제때 닫고, 데이터베이스에 인덱스를 추가하고, 페이지는 별도의 서버에 정적, 그림 및 기타 대용량 파일을 생성할 수 있습니다. 코드 최적화 도구 사용
31. 다음 코드는 무엇을 생성합니까?
$num =10;
function Multiply(){
$num =$num *10;
}
multiply();
echo $num;
multiply() 함수는 $num을 전역 변수(예: 전역 $num 또는 $_GLOBALS['num'])로 지정하지 않으므로, 그래서 $ num의 값은 10입니다.
32. PHP 클래스에서 정적, 공개, 비공개, 보호의 차이점은 무엇인가요?
정적은 클래스 이름에 액세스할 수 있습니다.
공개는 전역을 의미하며 둘 다에 액세스할 수 있습니다. 클래스의 내부 및 외부 하위 클래스
private은 비공개를 의미하며 이 클래스 내에서만 사용할 수 있습니다.
protected는 보호되며 이 클래스, 하위 클래스 또는 상위 클래스에서만 액세스할 수 있음을 의미합니다. . HTTP 프로토콜의 GET, POST 및 HEAD 차이점은 무엇입니까?
HEAD: 페이지 헤더만 요청됩니다.
GET: 지정된 페이지 정보를 요청하고 엔터티 본문을 반환합니다.
POST: 지정된 문서를 식별된 URI에 대한 새로운 하위 엔터티로 수락하도록 서버에 요청합니다.
(1) HTTP는 서버와 상호 작용하는 다양한 방법을 정의하며 가장 기본적인 방법은 GET 및 POST입니다. 실제로 GET은 대부분의 요청에 적합한 반면 POST는 사이트 업데이트에만 예약되어 있습니다.
(2) FORM을 제출할 때 Method가 지정되지 않은 경우 기본값은 GET 요청입니다. Form에 제출된 데이터는 URL과 ?로 구분되어 추가됩니다. 영숫자 문자는 있는 그대로 전송되지만 공백은 " " 기호로 변환되고 기타 기호는 %XX로 변환됩니다. 여기서 XX는 기호의 16진수 ASCII(또는 ISO Latin-1) 값입니다. GET 요청으로 제출된 데이터는 HTTP 요청 프로토콜 헤더에 배치되고 POST로 제출된 데이터는 엔터티 데이터에 배치됩니다.
GET으로 제출된 데이터는 최대 1024바이트일 수 있지만 POST는 그렇지 않습니다. 이 한도.
(3) GET 브라우저가 서버에 요청하는 데 가장 일반적으로 사용되는 방법입니다. POST 방식도 데이터를 전송하는데 사용되는데, POST를 사용할 경우에는 데이터가 URI 뒤에 전달되지 않고 독립된 행으로 전달되는데 이때 이를 나타내기 위한 Content_length 헤더도 함께 보내야 한다. 데이터 길이, 빈 줄, 전송된 실제 데이터 순입니다. 웹 양식은 일반적으로 POST를 사용하여 전송됩니다.
위 내용은 관련 내용을 포함하여 PHP 작문 시험 문제를 요약하여 소개한 것입니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.