Maison  >  Article  >  développement back-end  >  Questions d'entretien php intermédiaires et avancées

Questions d'entretien php intermédiaires et avancées

不言
不言original
2018-05-18 14:16:4120627parcourir

Cet article présente principalement les questions d'entretien PHP intermédiaires et avancées, qui ont une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Recommandations associées : " PHP en 2019. Résumé des questions d'entretien (collection)

1. Donnez-vous quatre points de coordonnées et jugez s'ils peuvent former un rectangle, comme en jugeant ([0,0],[0,1],[ 1,1],[1,0]) peuvent former un rectangle.

2. Écrivez un morceau de code pour déterminer si un anneau est formé dans la liste chaînée unidirectionnelle. Si un anneau est formé, veuillez trouver l'entrée de l'anneau, qui est le point P

3. Écrivez une fonction pour obtenir toutes les images dans le contenu de l'article et téléchargez

4. Obtenez l'adresse IP du client actuel et déterminez si elle est (111.111.111.111,222.222.222.222)

5. Configuration log_format de nginx Comme suit :
log_format main 'remoteaddr−remote_user [timelocal]"request"'
'statusbody_bytes_sent "httpreferer"""http_user_agent" "upstreamresponsetime""request_time" "http_x_forwarded_for"';
À partir du fichier journal nginx d'aujourd'hui Dans access.log :

  • a. Répertorier les 20 plus grandes lignes de "request_time" ? Lister les visites à 10h 20 adresses url ?

  • 6. Qu'est-ce qu'une attaque CSRF ? Comment la prévenir

  • 7. Le tableau récupère au hasard 10 éléments de données à afficher. Décrivez brièvement comment vous implémentez cette fonction

8. Tirez au hasard 5 cartes parmi les cartes à jouer et déterminez si elles sont une quinte, c'est-à-dire ces 5 cartes. C'est continu

9. Comment trouver le premier nœud commun de deux listes chaînées unidirectionnelles qui se croisent

10. Le problème de sous-séquence commune le plus long LCS S'il y a deux tableaux [1,2,5,11,32,15,77] et [99,32,15,5,1,77], trouvez-les. écrivez du code avec une complexité temporelle optimale pour les nombres que nous avons tous en commun, array_intersect ne peut pas être utilisé (il y a des pièges ici et vous devez étudier la programmation dynamique).

11. Allocation de mémoire Linux et principes multithreading

12 La différence entre la clé primaire et l'index unique dans MYSQL

13. 🎜>

14. Code d'état http et sa signification

15 Comment vérifier l'utilisation des ressources système sous Linux

16. Comment empêcher l'injection SQL

17. isset(null) isset(false) empty(null) empty(false) sortie

18 Méthodes pour optimiser MYSQL

19. Base de données Dans quoi se déroule la transaction ?

20. Écrivez une fonction pour extraire l'extension de fichier d'une URL standard aussi efficacement que possible

21. Les paramètres sont des tableaux de plusieurs dates et heures, et renvoient celle la plus proche de l'heure actuelle. temps. Temps

22. La différence entre echo, print et print_r

23. Quelles sont les clés et leurs significations dans l'en-tête du protocole http

24. code

25. Quelles sont les différences structurelles entre les tableaux PHP et les tableaux du langage C ?

26. Comment implémenter la table de saut de Redis

27. Qu'est-ce que le hachage ? Comment stocker des données après un conflit de hachage ?

28. Index clusterisé, quelle est la différence entre un index clusterisé ?

29. Comment B+Tree recherche-t-il

30. Quelle est la différence entre un tableau et un hachage ?

31. Écrivez une fonction pour déterminer si le signe d'expansion suivant est fermé. La symétrie gauche et droite signifie fermé : ((())),)(()),(()))), (( (((((() ()), (()()), ()()

32. Recherchez les valeurs uniques dans le tableau [1,2,3,3,2, 1,5]

Quelle est votre complexité temporelle pour les questions 33 et 32 ​​? Dans certains cas, vous écrivez un algorithme, puis l'intervieweur vous demandera d'écrire l'expression de complexité temporelle de votre algorithme

34. Comment cette variable de type faible est-elle implémentée en PHP ?

35. Lors d'une communication HTTP, le client ou le serveur se déconnecte-t-il activement ?

36. Quels sont les moyens d'initier des requêtes http en PHP ? Quelle est la différence ?

37. Il existe un arbre binaire. Écrivez du code pour trouver le chemin le plus court du nœud racine au nœud drapeau et imprimez-le. Par exemple, 6 et 14 dans l'arborescence ci-dessous sont des nœuds de drapeau. Veuillez écrire du code pour imprimer les deux chemins 8, 3, 6 et 8, 10, 14

38. Il y en a deux. fichiers La taille des fichiers dépasse 1 Go. Il y a une donnée par ligne, et chaque ligne de données ne dépasse pas 500 octets. Certains contenus des deux fichiers sont exactement les mêmes. Veuillez écrire du code pour trouver les mêmes lignes et écrire. les dans le nouveau fichier. La taille maximale autorisée de PHP est de 255 Mo.

39. Veuillez écrire au moins deux fonctions PHP qui prennent en charge le traitement des rappels et implémenter vous-même une fonction PHP qui prend en charge les rappels.

40 Veuillez écrire au moins deux fonctions PHP qui prennent en charge le traitement des rappels. pour télécharger tous les fichiers (code ou idées).

41. Veuillez noter au moins trois méthodes ou fonctions pour intercepter les suffixes de noms de fichiers (soit des fonctions natives PHP, soit des fonctions auto-implémentées)

42. Comment PHP implémente-t-il les cookies sans les siens? la fonction émet des cookies au client. Pour les systèmes distribués, comment enregistrer les valeurs de session.

43. Veuillez utiliser SHELL pour compter les adresses URL les plus visitées dans le journal nginx dans les 5 minutes. Quelles sont les adresses IP correspondantes ?

44. Écrivez un script shell pour sauvegarder la bibliothèque MySQL spécifiée (telle que test) dans le dossier spécifié et emballez-la, supprimez la sauvegarde il y a 30 jours, puis envoyez la nouvelle sauvegarde au serveur distant et envoyez un e-mail. notification une fois terminé.

45. La différence entre les moteurs innodb et myisam dans la base de données mysql

46. Quel processus l'utilisateur suit-il entre la saisie de l'URL dans le navigateur et l'appui sur Entrée pour voir la réunion complète ?

47. Comment analyser les performances d'une instruction SQL.

48. En cas d'échec du ping sur un serveur, quelle commande doit être utilisée pour tracer les paquets de routage ?
linux:traceroute,windows:tracert

49 $a=[0,1,2,3]; b; À quoi est égal var_dump($a) ?

50, $a=[1,2,3]; foreach($a comme &$v){} foreach($a comme $v){} var_dump($a) est égal à ; 🎜 >

51. L'ID utilisateur et de nombreuses lignes de déduction sont stockés dans la base de données pour exécuter Redis. une fois toutes les 5 minutes. Quelles problématiques faut-il considérer ?

52. Serveurs maître et esclave MYSQL Si le serveur maître est le moteur innodb et le serveur esclave est le moteur myisam, quels problèmes seront rencontrés dans les applications pratiques ?

53. Quels sont les signaux de processus sous Linux ?

54, l'implémentation sous-jacente de redis

55, modèle asynchrone

56, fichier 10g, utilisez php pour afficher son nombre de lignes

57, il y a 1 milliard de données de commande, appartenant à 1000 pilotes, veuillez retirer le montant de la commande Les 20 meilleurs pilotes

58, concevez une fonction d'enveloppe rouge WeChat

59, comptez les qps des 5 dernières secondes en fonction du fichier access.log et affichez-le dans ce qui suit format, 01 1000 (la difficulté est 01 Numéro de série)

60. Pourquoi les performances de php7 sont-elles tellement améliorées

61. Traversée d'un tableau multidimensionnel

62. Il existe une telle chaîne abcdefgkbcdefab...random length , écrivez une fonction pour trouver le nombre de fois que bcde apparaît dans cette chaîne

63. Il y a un fichier de 1G, chaque ligne qu'il contient est un mot, la taille du mot ne dépasse pas 16 octets et la limite de mémoire La taille est de 1 Mo. Renvoie les 100 mots les plus fréquents

65, modèle de processus PHP, comment PHP prend en charge plusieurs simultanéités

66, modèle de processus nginx, comment prendre en charge plusieurs simultanéités

67, signification de la configuration php-fpm, mode démoniser fpm
statique - le nombre de processus enfants est fixe (pm.max_children)
ondemand - le processus n'est généré que lorsqu'il y a une demande (sur demande, Contrairement à Dynamic, pm.start_servers est démarré au démarrage du service
dynamic - le nombre de processus enfants est défini dynamiquement en fonction de la configuration suivante : pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers

68. Vous permet de mettre en œuvre une architecture simple et de maintenir une haute disponibilité. Il existe deux interfaces, une pour télécharger un texte et une pour obtenir le contenu téléchargé pour éviter les pannes d'une seule salle informatique et en même temps. rendre le niveau de code insensible ? .

69. L'un des deux serveurs mysql est en panne. Comment l'entreprise peut-elle terminer la commutation sans aucune interruption et garantir la cohérence des données sur le serveur podium

70. Protocole http Définition spécifique

71 Qu'est-ce qu'un verrou et comment résoudre le problème de verrouillage

72 La différence entre rand et mt_rand

73. .Comment l'isolation des transactions MySQL est-elle réalisée

74. Comment implémenter le verrouillage MySQL

75 Méthodes de cryptage symétrique et asymétrique

10 bouteilles d'eau, dont une. est toxique. Après avoir bu l'eau toxique, il sera mort du poison après 23 heures et 59 minutes. Veuillez utiliser le moins de souris possible pour trouver cette bouteille d'eau dans les 24 heures

Recommandations associées :

.

Résumé des questions d'entretien PHP


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