Maison >développement back-end >tutoriel php >Deux séries de papiers de test adaptés aux ingénieurs de développement PHP

Deux séries de papiers de test adaptés aux ingénieurs de développement PHP

小云云
小云云original
2017-11-10 15:03:101564parcourir

Après avoir appris PHP, la prochaine étape consiste à trouver un emploi. Nous savons tous que les ingénieurs de développement PHP ont besoin d'un test écrit et d'un entretien pour trouver un emploi, nous devons donc être parfaitement préparés avant l'entretien. Voici donc deux séries de questions de test pour les entretiens avec les ingénieurs de développement PHP compilées par l'éditeur. J'espère que cela vous sera utile.

La première série de papiers de test
1. Partie de développement PHP

1. Il existe plusieurs façons de fusionner deux tableaux. Essayez de comparer leurs similitudes et leurs différences

2. Veuillez écrire une fonction pour vérifier si les données soumises par l'utilisateur sont un nombre entier (quel que soit le type de données, il peut s'agir de nombres binaires, octaux, décimaux ou hexadécimaux)

3. Les fonctions strtolower() et strtoupper() de PHP peuvent entraîner la conversion des caractères chinois en caractères tronqués sur les serveurs sur lesquels des systèmes non chinois sont installés. Veuillez écrire deux fonctions alternatives pour obtenir une conversion de casse de chaîne compatible avec le texte Unicode

4. La fonction is_writeable() de PHP a un bug et ne peut pas déterminer avec précision si un répertoire/fichier est accessible en écriture. Veuillez écrire une fonction pour déterminer si le répertoire/fichier est absolument accessible en écriture

5. Il y a un bug dans la fonction chmod() de PHP et le succès du paramétrage ne peut pas être garanti. Veuillez écrire une fonction pour créer un répertoire/fichier sous le chemin spécifié et vous assurer que le masque d'autorisation peut être défini correctement

. 6. Le type de fichier $_FILES['type'] dans le tableau d'informations sur les fichiers téléchargés du traitement PHP est fourni par le navigateur client. Il peut s'agir d'informations falsifiées par des pirates informatiques. Veuillez écrire une fonction pour garantir que le type de fichier image téléchargé par l'utilisateur est authentique. et fiable

7. PHP implémente l'interaction des données avec Javascript en codant les données dans l'URL. Cependant, les règles de codage et de décodage de certains caractères spéciaux sont différentes de celles de Javascript. Veuillez expliquer cette différence en détail et écrire ce qui suit pour les données en UTF-8. jeu de caractères. Les fonctions d'encodage et de décodage de PHP et les fonctions d'encodage et de décodage de Javascript garantissent que les données codées en PHP peuvent être correctement décodées par Javascript et que les données codées en Javascript peuvent être correctement décodées par PHP

8. Essayez d'expliquer l'algorithme de distribution multi-nœuds clé de Memcache ? Comment le client Memcache de PHP gérera-t-il la défaillance d'un nœud ? Comment garantir l'atomicité des opérations de lecture et d'écriture des données Memcache ?

9. Comment maximiser la sécurité de PHP ? Comment éviter les vulnérabilités d'injection SQL et les vulnérabilités de scripts intersite XSS ?

10. Veuillez concevoir une structure de données capable de réaliser la fonction de menu arborescent de sous-menus infinis et de fournir un algorithme de génération de menu. Utilisez UML pour décrire la conception et écrire le code PHP pertinent

2. Parties liées au système
1 . Veuillez décrire brièvement les similitudes et les différences dans les méthodes d'implémentation du noyau et les mécanismes de gestion des processus et des threads sous les systèmes Linux, FreeBSD, Solaris, Mac OS et Windows

2. Veuillez décrire brièvement les méthodes de communication inter-processus sous les systèmes Linux/BSD, et expliquer spécifiquement comment l'implémenter sous PHP

3. Veuillez décrire brièvement les différents mécanismes de notification asynchrone des messages/événements du système sous Linux/BSD et les comparer

4. Comparez simplement les similitudes et les différences des protocoles TCP/UDP pour l'extension Socket et l'extension Stream de PHP, essayez de comparer les différences de programmation SOCKET basée sur le protocole TCP/UDP ?

5. Pourquoi des processus zombies (processus orphelins) apparaissent-ils ? Comment vérifier le processus zombie ? Comment résoudre le problème du processus zombie ?

6. Pour les files d'attente de messages System-V, comment résoudre les propres limitations du système concernant le nombre de files d'attente de messages et la capacité totale (nombre d'octets) ? Comment définir le niveau de priorité des messages ? Veuillez comparer les similitudes et les différences entre le mode bloquant et le mode non bloquant, et expliquer comment éviter la congestion de la file d'attente des messages en mode non bloquant ?

7. Veuillez décrire le mécanisme MPM (Multi-Processing Module) de la version Apache 2.x et expliquer spécifiquement comment prendre en charge PHP sous différents mécanismes MPM ?

8. Veuillez décrire brièvement plusieurs façons d'exécuter PHP sous Apache et les comparer ? Comment faire fonctionner PHP en mode Fast CGI sous Linux+Apache ?

9. Veuillez noter les paramètres de configuration qui doivent être spécifiés pour installer PHP lorsque PHP peut être exécuté en tant que script sur la ligne de commande, et expliquer comment exécuter un script PHP sur la ligne de commande (notez deux méthodes) et transmettre les paramètres à PHP. script en même temps ?

10. Veuillez décrire brièvement le pool de mémoire de PHP 5.2, son mécanisme de gestion de la mémoire et son mécanisme de récupération de place. 1. Les questions suivantes, à l'exception des tâches de programmation, doivent être écrites sur le papier brouillon qui vous a été fourni. Le papier est une ressource terrestre précieuse, veuillez l’utiliser avec parcimonie. Lorsqu'il existe un environnement correspondant, les tâches de programmation nécessiteront l'écriture sur l'ordinateur. S'il n'y a aucune condition, vous ne pourrez écrire que sur du papier paille.

Deuxième série de papiers de test

Tâches de base + tâches avancées + tâches de conception = 90 minutes

Tâches de programmation = 60 minutes

Tâches de base :

1. Veuillez énumérer l'UNIX auquel vous pouvez penser. signal et expliquez le but du signal.

2. Veuillez lister tous les algorithmes de recherche de chaînes auxquels vous pouvez penser et les expliquer brièvement avec des commentaires.

3. Il existe une adresse IP (192.168.0.1), veuillez écrire sa forme entière non signée de 32 bits.

4. Écrivez toutes les valeurs de statut de retour HTTP auxquelles vous pouvez penser et expliquez leurs utilisations (par exemple : renvoyer 404 signifie page introuvable)

Tâche de base - sélection (vous le ferez obtenez un score supplémentaire) :

1. Dessinez quelques modèles côté serveur que vous connaissez le mieux (le format n'est pas important, essayez simplement de rendre les dessins clairs et d'expliquer les idées)

Tâches avancées :

1. Quel est le mécanisme de récupération de place de PHP ?

Remarque :

1) Si vous êtes familier avec le code source PHP, veuillez commencer par le code source et répondre à quelques questions, vous obtiendrez des points supplémentaires

2) Si vous n'êtes pas familier avec le code source PHP, faites de votre mieux pour écrire autant que possible, y compris les informations obtenues en utilisant votre propre intuition de programmation.

3) Si vous avez raison, vous obtiendrez des points. Si vous vous trompez, vous ne serez pas déduit. Si vous n'écrivez pas, vous n'obtiendrez aucun point.

2. Veuillez écrire l'en-tête HTTP et répondre aux exigences suivantes :

1) Ceci est une demande de publication

2) Cible : http://www.example. com:8080/test

3) Variable POST :

nom d'utilisateur : test

pwd : test2

intro : Bonjour tout le monde !

4) Contient les informations COOKIE suivantes :

cur_query : you&me

Explication :

1) Si vous ne vous souvenez pas du mot de commande dans un certain protocole HTTP, alors, malheureusement , cette décision consiste à utiliser des « caractères chinois » à la place.

2) Si vous pouvez vous souvenir de plus de mots de commande du protocole HTTP, alors il n'y a toujours aucun mal à écrire quelques phrases supplémentaires, n'est-ce pas ?

3) Le plus important est de dessiner le bon "contour" (vous vous souvenez de l'en-tête imprimé par des outils comme httpwatch ? C'est le sens de "contour"), il y aura aussi des points, mais si , même "aperçu" est mal écrit, alors c'est dommage.

Tâches de conception :

1. Récemment, il y a toujours des gens qui harcèlent notre module de vote. Nous avons besoin que vous conceviez quelque chose avec des restrictions de vote.

Les exigences sont les suivantes :

1) Chaque numéro QQ (en supposant que ce numéro QQ puisse être exprimé dans UNIT32) ne doit émettre que 5 votes en 10 minutes.

2) Nos utilisateurs sont très enthousiastes, avec en moyenne environ 20 millions de personnes votant via ce programme chaque jour.

Instructions :

1) Pas besoin d'écrire du code, juste des images et du texte.

2) Pour la logique clé, veuillez utiliser des images et du code pour l'exprimer. C'est également un test de votre capacité d'écriture.

3) Énumérez toutes les conditions limites auxquelles vous pouvez penser. Il s'agit d'un test de votre exhaustivité et de votre agilité dans la pensée logique.

4) Pour le stockage, faites de votre mieux. Si vous avez besoin d'une couche de stockage conçue par vous-même, décrivez clairement la mise en œuvre de cette couche de stockage en mots et en images. Si la conception est raisonnable, vous obtiendrez de superbes points bonus.

Tâches de programmation :

1. Nous avons rencontré des problèmes. Un nouveau missionnaire a agacé Dieu. Dieu était très en colère et nous a demandé de mémoriser la Bible (bbe.txt) jusqu'à quel mot il dit, nous devons répondre rapidement à la ligne et à la position du mot dans lequel se trouve le mot. J'ai entendu dire que vous êtes un excellent programmeur, alors aidez-nous à accomplir cette tâche impossible.
Les exigences sont les suivantes :

1)/myworks/example/bbe.txt, une Bible en anglais version 98

2) Les exigences de la partie d'entrée sont les suivantes : php ./ exemple.php [mot ]

3) La partie sortie est la suivante : [Mot] 1,2 2,4 5,6 signifie : ce mot est dans la ligne 1 et la colonne 2 (le deuxième mot), ligne 2 et colonne 4...

Description :

1) Ce texte fait 4 Mo...

2) La signification du mot : une chaîne composée de lettres anglaises (majuscules et minuscules) et de chiffres (0-9)

3) Le système d'exploitation de la machine qui vous est fourni est Ubuntu 9.10, la mémoire n'est que de 1 Go, et, malheureusement, 700 Mo sont utilisé pour d'autres choses

4) L'examen sur ordinateur ne permet pas Internet, mais j'ai installé le document man et un lecteur pour lire CHM et PDF Dans le dossier CHM sur le bureau de l'ordinateur, il y a le. manuel de référence PHP correspondant

5) L'exigence de complexité de l'algorithme ne peut pas être supérieure à O(N^2) (C'est N au carré)

6) Quoi ? PHP est inefficace et peu pratique à utiliser. Eh bien, vous pouvez le faire dans d'autres langages. Mais attention : la machine qui vous est fournie n'a que python 2.4/perl 5.8/gcc[g++] 4.1

Résumé : Quel que soit l'entretien, la confiance est très importante lorsque vous pourrez utiliser ces deux ensembles. interviewer des ingénieurs de développement PHP Les questions peuvent vous aider, et j'espère également que les PHP qui passent un entretien pourront obtenir leur emploi idéal.

Recommandations associées :

La structure des connaissances des ingénieurs de développement PHP

Les éléments essentiels pour devenir un programmeur performant

Soyez un programmeur différent

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn