PHP를 배운 후 다음 단계는 취업입니다. PHP 개발 엔지니어가 취업하려면 필기 시험과 면접이 필요하다는 것을 우리 모두 알고 있으므로 면접 전에 철저히 준비해야 합니다. 그래서 편집자가 정리한 PHP 개발 엔지니어 인터뷰용 테스트 질문 두 세트가 여러분에게 도움이 되기를 바랍니다.
첫번째 시험지
1. PHP 개발 부분
1. 두 배열을 병합하는 방법에는 여러 가지가 있습니다. 유사점과 차이점을 비교해 보세요
2. 사용자가 제출한 데이터가 정수인지 확인하는 함수를 작성해 주세요(데이터 유형에 관계없이 2진수, 8진수, 10진수, 16진수일 수 있음)
3. PHP의 strtolower() 및 strtoupper() 함수로 인해 중국어가 아닌 시스템이 설치된 서버에서 중국어 문자가 잘못된 문자로 변환될 수 있습니다. 유니코드 텍스트
4와 호환되는 문자열 대소문자 변환을 달성하려면 두 가지 대체 함수를 작성하십시오. PHP의 is_writeable() 함수에는 버그가 있어 디렉터리/파일이 쓰기 가능한지 여부를 정확하게 확인할 수 없습니다. 디렉터리/파일이 완전히 쓰기 가능한지 확인하는 함수를 작성하세요
5. PHP의 chmod() 함수에 버그가 있어 설정 성공을 보장할 수 없습니다. 지정된 경로에 디렉터리/파일을 생성하는 함수를 작성하고 권한 마스크가 올바르게 설정될 수 있는지 확인하세요
6. PHP 처리 업로드 파일 정보 배열의 $_FILES['type'] 파일 형식은 클라이언트 브라우저에서 제공하는 정보일 수 있습니다. 사용자가 업로드한 이미지 파일 형식이 정품인지 확인하는 함수를 작성하세요. 믿음직스럽고
7. PHP는 URL의 데이터를 인코딩하여 Javascript와의 데이터 상호 작용을 구현합니다. 그러나 일부 특수 문자의 인코딩 및 디코딩 규칙은 Javascript의 규칙과 다릅니다. 이 차이점을 자세히 설명하고 UTF-8 데이터에 대해 다음을 작성하십시오. PHP의 인코딩 및 디코딩 기능과 Javascript의 인코딩 및 디코딩 기능은 PHP로 인코딩된 데이터가 Javascript로 올바르게 디코딩될 수 있도록 하고, Javascript로 인코딩된 데이터가 PHP
8로 올바르게 디코딩될 수 있도록 보장합니다. Memcache의 핵심 다중 노드 배포 알고리즘을 설명해 보시겠습니까? 노드가 실패하면 PHP의 Memcache 클라이언트는 어떻게 처리합니까? Memcache 데이터 읽기 및 쓰기 작업의 원자성을 어떻게 보장합니까?
9. PHP의 보안을 극대화하는 방법은 무엇입니까? SQL 주입 취약점과 XSS 크로스 사이트 스크립팅 취약점을 방지하는 방법은 무엇입니까?
10. 무한 하위 메뉴의 트리 메뉴 기능을 구현할 수 있는 데이터 구조를 설계하고 메뉴 생성 알고리즘을 제공해주세요. UML을 이용하여 디자인을 기술하고 관련 PHP 코드를 작성해주세요
2. 시스템 관련 부분
1. Linux, FreeBSD, Solaris, Mac OS 및 Windows
2에서 커널 구현과 프로세스 및 스레드 관리 메커니즘의 유사점과 차이점을 간략하게 설명하십시오. Linux/BSD 시스템에서 프로세스 간 통신 방법을 간략하게 설명하고, PHP
3에서 구현하는 방법을 구체적으로 설명해주세요. Linux/BSD 시스템에서 시스템의 여러 메시지/이벤트 비동기 알림 메커니즘을 간략하게 설명하고 비교해 보세요
4. 간단하게 TCP/UDP 프로토콜의 유사점과 차이점을 비교해 보세요. PHP의 소켓 확장과 스트림 확장의 경우 TCP/UDP 프로토콜을 기반으로 하는 SOCKET 프로그래밍의 차이점을 비교해 보세요.
5. 좀비 프로세스(고아 프로세스)가 나타나는 이유는 무엇입니까? 좀비 프로세스를 확인하는 방법은 무엇입니까? 좀비 프로세스 문제를 해결하는 방법은 무엇입니까?
6. System-V 메시지 대기열의 경우 메시지 대기열 수 및 총 용량(바이트 수)에 대한 시스템 자체 제한을 해결하는 방법은 무엇입니까? 메시지의 우선순위 수준을 설정하는 방법은 무엇입니까? 차단 모드와 비차단 모드의 유사점과 차이점을 비교하고 비차단 모드에서 메시지 대기열 정체를 방지하는 방법을 설명해주세요.
7. Apache 2.x 버전의 MPM(Multi-Processing Module) 메커니즘을 설명하고, 다양한 MPM 메커니즘에서 PHP를 지원하는 방법을 구체적으로 설명해주세요.
8. Apache에서 PHP를 실행하는 몇 가지 방법을 간략하게 설명하고 비교해 보십시오. Linux+Apache에서 Fast CGI 모드로 PHP를 실행하는 방법은 무엇입니까?
9. PHP를 명령줄에서 스크립트로 실행할 수 있는 경우 PHP를 설치하기 위해 지정해야 하는 구성 매개변수를 적어주시고, 명령줄에서 PHP 스크립트를 실행하는 방법(두 가지 방법을 적어주세요)과 PHP에 매개변수를 전달하는 방법을 설명해주세요. 동시에 스크립트?
10. PHP 5.2의 메모리 풀, 메모리 관리 메커니즘, 가비지 수집 메커니즘에 대해 간략하게 설명하십시오. 1. 프로그래밍 작업을 제외한 다음 질문은 제공된 스크래치 페이퍼에 작성해야 합니다. 종이는 소중한 지구자원이니 아껴 쓰시기 바랍니다. 해당 환경이 있는 경우 프로그래밍 작업은 컴퓨터에서 작성해야 합니다. 조건이 없으면 밀짚 종이에만 작성할 수 있습니다.
두 번째 시험지 세트
기본 작업 + 고급 작업 + 디자인 작업 = 90분
프로그래밍 작업 = 60분
기본 작업:
1. 생각할 수 있는 UNIX 신호를 나열하고 신호의 용도를 설명하세요.
2. 생각나는 문자열 검색 알고리즘을 모두 나열하고 댓글로 간략하게 설명해주세요.
3. IP 주소(192.168.0.1)가 있습니다. 32비트 부호 없는 정수 형식으로 작성해 주세요.
4 생각할 수 있는 모든 HTTP 반환 상태 값을 작성하고 그 용도를 설명합니다(예: 404를 반환하면 페이지를 찾을 수 없음을 의미함)
기본 작업 - 선택(추가 점수 획득):
1 .Draw 당신에게 가장 친숙한 여러 가지 서버측 모델을 선택하세요(형식은 중요하지 않습니다. 도면을 명확하게 만들고 아이디어를 설명하세요)
고급 작업:
1. PHP?
지침:
1) PHP 소스 코드에 익숙하다면 소스 코드부터 시작하여 몇 가지 질문에 답하면 추가 점수를 얻을 수 있습니다.
2) PHP 소스 코드에 익숙하지 않다면 다음을 수행하세요. 자신의 프로그래밍 직관을 사용하여 얻은 정보를 포함하여 무엇이든 좋습니다.
3) 맞으면 포인트를 받고, 틀리면 감점되지 않습니다.
2. HTTP 헤더를 작성하고 다음 요구 사항을 충족하십시오.
1) 게시물 요청입니다
2) 대상: http://www.example.com:8080/test
3) POST 변수:
username: test
pwd: test2
intro: Hello world!
4) 다음과 같은 쿠키 정보가 포함됩니다:
cur_query: you&me
지침:
1) 특정 HTTP 프로토콜을 기억할 수 없는 경우 명령어가 사용되면 불행하게도 이 동작은 "한자"로 대체되어야 합니다.
2) HTTP 프로토콜 명령어를 더 많이 기억할 수 있다면 문장을 몇 개 더 써도 항상 나쁠 건 없겠죠?
3) 가장 중요한 것은 올바른 "윤곽선"(httpwatch와 같은 도구로 인쇄된 머리를 기억하시나요? 그것이 "윤곽선"의 의미입니다)을 그리는 것입니다. 포인트도 있겠지만, 없으면 "개요" "다 잘못 쓰여 있으면 안타깝습니다.
디자인 작업:
1. 최근 투표 모듈을 괴롭히는 사람들이 항상 있습니다.
요구 사항은 다음과 같습니다.
1) 각 QQ 번호가 필요합니다. QQ 번호는 UNIT32 이내) 표현 가능) 10분 동안 5표만 투표 가능합니다.
2) 우리 사용자들은 매일 평균 약 2천만 명이 이 프로그램을 통해 투표할 정도로 매우 열성적입니다.
지침:
1) 코드를 작성할 필요 없이 그림과 텍스트만 있으면 됩니다.
2) 핵심논리를 그림과 코드로 표현해 보세요. 이것도 글쓰기 능력 테스트입니다.
3) 생각할 수 있는 모든 경계 조건을 나열하세요. 이것은 논리적 사고의 포괄성과 민첩성을 테스트하는 것입니다.
4) 보관에 최선을 다하세요. 직접 디자인한 스토리지 레이어가 필요한 경우 이 스토리지 레이어의 구현을 단어와 그림으로 명확하게 설명하세요. 디자인이 합리적이라면 멋진 보너스 포인트를 얻을 수 있습니다.
프로그래밍 작업:
1. 새로운 선교사가 하나님을 짜증나게 했습니다. 하나님은 우리에게 어떤 단어를 말할 때까지 성경(bbe.txt)을 암기하라고 하셨습니다. 이 단어가 있는 위치입니다. 당신은 훌륭한 프로그래머라고 들었습니다. 불가능한 일을 이룰 수 있도록 도와주세요.
요구사항은 다음과 같습니다.
1)/myworks/example/bbe.txt, 98버전 영어성경
2) 입력부분 요구사항은 다음과 같습니다. php ./example.php [단어]
3) 출력 부분은 다음과 같습니다. [ 단어] 1,2 2,4 5,6 의미: 이 단어는 1행 2열(두 번째 단어), 2행 4열에 있습니다...
설명:
1) 이 텍스트는 4MB 거대합니다...
2) 단어의 의미: 영문자(대소문자)와 숫자(0-9)로 구성된 문자열
3) 귀하에게 제공되는 머신 OS는 다음과 같습니다. ubuntu 9.10 메모리는 1G 밖에 안되고 아쉽게도 700M은 다른 용도로 사용하지 않습니다
4) 컴퓨터 기반 시험은 인터넷 접속을 허용하지 않지만 CHM을 읽을 수 있도록 man 문서와 리더를 설치했습니다. 및 PDF 컴퓨터 데스크탑의 CHM 폴더에는 해당 PHP 참조 설명서가 있습니다
5) 알고리즘 복잡도 요구 사항은 O(N^2)(즉, N의 제곱)
보다 클 수 없습니다. 6) 뭐? PHP는 비효율적이고 사용하기 불편합니다. 다른 언어로도 할 수 있습니다. 하지만 참고하세요: 제공된 기계에는 python 2.4/perl 5.8/gcc[g++] 4.1
만 있습니다. 요약: 인터뷰가 무엇이든 자신감은 PHP 개발 인터뷰에서 도움이 되기를 바랍니다. 동시에 당신은 당신이 인터뷰하는 PHPer가 당신이 원하는 직업을 얻을 수 있기를 바랍니다.
관련 권장 사항:
위 내용은 PHP 개발 엔지니어에게 적합한 시험지 2세트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!