Heim  >  Artikel  >  Backend-Entwicklung  >  Zwei Sätze Testpapiere, die für PHP-Entwicklungsingenieure geeignet sind

Zwei Sätze Testpapiere, die für PHP-Entwicklungsingenieure geeignet sind

小云云
小云云Original
2017-11-10 15:03:101499Durchsuche

Nachdem Sie PHP gelernt haben, besteht der nächste Schritt darin, einen Job zu finden. Wir alle wissen, dass PHP-Entwicklungsingenieure einen schriftlichen Test und ein Vorstellungsgespräch benötigen, um einen Job zu finden. Daher müssen wir vor dem Vorstellungsgespräch vollständig vorbereitet sein. Hier sind zwei Sätze von Testfragen für Vorstellungsgespräche mit PHP-Entwicklern, die der Herausgeber hoffentlich hilfreich sein wird.

Der erste Satz Testpapiere
1. PHP-Entwicklungsteil

1. Es gibt mehrere Möglichkeiten, zwei Arrays zusammenzuführen. Versuchen Sie, ihre Ähnlichkeiten und Unterschiede zu vergleichen

2. Bitte schreiben Sie eine Funktion, um zu überprüfen, ob die vom Benutzer übermittelten Daten eine Ganzzahl sind (unabhängig vom Datentyp können es Binär-, Oktal-, Dezimal- oder Hexadezimalzahlen sein)

3. Die PHP-Funktionen strtolower() und strtoupper() können dazu führen, dass chinesische Zeichen auf Servern mit nicht-chinesischen Systemen in verstümmelte Zeichen umgewandelt werden. Bitte schreiben Sie zwei alternative Funktionen, um eine mit Unicode-Text kompatible Zeichenkettenkonvertierung zu erreichen

4. Die Funktion is_writeable() von PHP weist einen Fehler auf und kann nicht genau bestimmen, ob ein Verzeichnis/eine Datei beschreibbar ist. Bitte schreiben Sie eine Funktion, um festzustellen, ob das Verzeichnis/die Datei absolut beschreibbar ist

5. Es liegt ein Fehler in der Funktion chmod() von PHP vor und es kann nicht garantiert werden, dass die Einstellung erfolgreich ist. Schreiben Sie eine Funktion zum Erstellen eines Verzeichnisses/einer Datei unter dem angegebenen Pfad und stellen Sie sicher, dass die Berechtigungsmaske korrekt eingestellt werden kann

6. Der Dateityp $_FILES['type'] im PHP-Array mit den hochgeladenen Dateiinformationen wird vom Client-Browser bereitgestellt. Es kann sich um von Hackern gefälschte Informationen handeln. Bitte schreiben Sie eine Funktion, um sicherzustellen, dass der vom Benutzer hochgeladene Bilddateityp authentisch ist und zuverlässig

7. PHP implementiert die Dateninteraktion mit Javascript, indem es die Daten in der URL kodiert. Die Kodierungs- und Dekodierungsregeln für einige Sonderzeichen unterscheiden sich jedoch von denen von Javascript. Bitte erläutern Sie diesen Unterschied im Detail und schreiben Sie Folgendes für die Daten in UTF-8 Die Kodierungs- und Dekodierungsfunktionen von PHP und die Kodierungs- und Dekodierungsfunktionen von Javascript stellen sicher, dass PHP-kodierte Daten von Javascript korrekt dekodiert werden können und dass Javascript-kodierte Daten von PHP korrekt dekodiert werden können

8. Versuchen Sie, den wichtigsten Multi-Node-Verteilungsalgorithmus von Memcache zu erklären? Wie geht der Memcache-Client von PHP vor, wenn ein Knoten ausfällt? Wie kann die Atomizität von Lese- und Schreibvorgängen für Memcache-Daten sichergestellt werden?

9. Wie maximiert man die Sicherheit von PHP? Wie vermeidet man SQL-Injection-Schwachstellen und XSS-Cross-Site-Scripting-Schwachstellen?

10. Bitte entwerfen Sie eine Datenstruktur, die die Baummenüfunktion unendlicher Untermenüs realisieren und einen Menügenerierungsalgorithmus bereitstellen kann. Verwenden Sie UML, um das Design zu beschreiben und den relevanten PHP-Code zu schreiben

2. Systembezogene Teile

1 . Bitte beschreiben Sie kurz die Ähnlichkeiten und Unterschiede in den Kernel-Implementierungsmethoden und Verwaltungsmechanismen von Prozessen und Threads unter Linux-, FreeBSD-, Solaris-, Mac OS- und Windows-Systemen

2. Bitte beschreiben Sie kurz die Methoden der Interprozesskommunikation unter Linux/BSD-Systemen und erläutern Sie konkret, wie sie unter PHP implementiert werden

3. Bitte beschreiben Sie kurz die verschiedenen asynchronen Nachrichten-/Ereignisbenachrichtigungsmechanismen des Systems unter Linux/BSD-Systemen und vergleichen Sie sie

4. Vergleichen Sie einfach die Ähnlichkeiten und Unterschiede der TCP/UDP-Protokolle. Versuchen Sie für die Socket-Erweiterung und die Stream-Erweiterung von PHP, die Unterschiede in der SOCKET-Programmierung basierend auf dem TCP/UDP-Protokoll zu vergleichen.

5. Warum erscheinen Zombie-Prozesse (verwaiste Prozesse)? Wie überprüfe ich den Zombie-Prozess? Wie kann das Zombie-Prozessproblem gelöst werden?

6. Wie können bei System-V-Nachrichtenwarteschlangen die systemeigenen Einschränkungen hinsichtlich der Anzahl der Nachrichtenwarteschlangen und der Gesamtkapazität (Anzahl der Bytes) gelöst werden? Wie stelle ich die Prioritätsstufe von Nachrichten ein? Vergleichen Sie bitte die Ähnlichkeiten und Unterschiede zwischen dem Blockierungsmodus und dem Nicht-Blockierungsmodus und erläutern Sie, wie Sie eine Überlastung der Nachrichtenwarteschlange im Nicht-Blockierungsmodus vermeiden können.

7. Bitte beschreiben Sie den MPM-Mechanismus (Multi-Processing Module) der Apache 2.x-Version und erläutern Sie insbesondere, wie PHP unter verschiedenen MPM-Mechanismen unterstützt wird.

8. Bitte beschreiben Sie kurz verschiedene Möglichkeiten, PHP unter Apache auszuführen, und vergleichen Sie diese. Wie kann PHP unter Linux+Apache im Fast CGI-Modus ausgeführt werden?

9. Bitte notieren Sie sich die Konfigurationsparameter, die für die Installation von PHP angegeben werden müssen, wenn PHP als Skript auf der Befehlszeile ausgeführt werden kann, und erläutern Sie, wie Sie ein PHP-Skript auf der Befehlszeile ausführen (notieren Sie sich zwei Methoden) und Parameter an PHP übergeben Skript gleichzeitig?

10. Bitte beschreiben Sie kurz den Speicherpool von PHP 5.2, seinen Speicherverwaltungsmechanismus und den Garbage-Collection-Mechanismus. 1. Die folgenden Fragen müssen, mit Ausnahme von Programmieraufgaben, auf das Ihnen zur Verfügung gestellte Arbeitspapier geschrieben werden. Papier ist eine kostbare Ressource der Erde, bitte gehen Sie sparsam damit um. Wenn eine entsprechende Umgebung vorhanden ist, müssen Programmieraufgaben am Computer geschrieben werden. Wenn keine Bedingungen vorliegen, kann nur auf Strohpapier geschrieben werden.

Zweiter Satz Testpapiere

Grundlegende Aufgaben + fortgeschrittene Aufgaben + Designaufgaben = 90 Minuten

Programmieraufgaben = 60 Minuten

Grundlegende Aufgaben:

1. Bitte listen Sie das UNIX auf, das Ihnen in den Sinn kommt Signal und erklären Sie den Zweck des Signals.

2. Bitte listen Sie alle String-Suchalgorithmen auf, die Ihnen einfallen, und erläutern Sie diese kurz mit Kommentaren.

3. Es gibt eine IP-Adresse (192.168.0.1), bitte schreiben Sie deren 32-Bit-Ganzzahlform ohne Vorzeichen.

4. Schreiben Sie alle HTTP-Rückgabestatuswerte auf, die Ihnen einfallen, und erläutern Sie deren Verwendung (zum Beispiel: Die Rückgabe von 404 bedeutet, dass die Seite nicht gefunden wurde)

Grundlegende Aufgabe – Auswahl (Sie werden Holen Sie sich zusätzliche Punkte):

1. Zeichnen Sie ein paar serverseitige Modelle, mit denen Sie am besten vertraut sind (das Format ist nicht wichtig, versuchen Sie einfach, die Zeichnungen klar zu machen und die Ideen zu erklären)

Erweiterte Aufgaben:

1. Was ist der Garbage-Collection-Mechanismus von PHP?

Hinweis:

1) Wenn Sie mit PHP-Quellcode vertraut sind, beginnen Sie bitte mit dem Quellcode und beantworten Sie einige Fragen. Sie erhalten zusätzliche Punkte

2) Wenn Sie nicht mit dem PHP-Quellcode vertraut sind, versuchen Sie, so viel wie möglich zu schreiben, einschließlich der Informationen, die Sie mithilfe Ihrer eigenen Programmierintuition erhalten haben.

3) Wenn Sie richtig liegen, erhalten Sie Punkte. Wenn Sie falsch liegen, werden Ihnen keine Punkte abgezogen.

2. Bitte schreiben Sie den HTTP-Header und erfüllen Sie die folgenden Anforderungen:

1) Dies ist eine Post-Anfrage

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

3) POST-Variable:

Benutzername: test

pwd: test2

Einführung: Hallo Welt!

4) Enthält die folgenden COOKIE-Informationen:

cur_query: you&me

Erklärung:

1) Wenn Sie sich das Befehlswort in einem bestimmten HTTP-Protokoll nicht merken können, dann leider , besteht dieser Schritt darin, stattdessen „chinesische Schriftzeichen“ zu verwenden.

2) Wenn Sie sich mehr Befehlswörter für das HTTP-Protokoll merken können, kann es doch nicht schaden, ein paar Sätze mehr zu schreiben, oder?

3) Das Wichtigste ist, den richtigen „Umriss“ zu zeichnen (erinnern Sie sich an die Kopfzeile, die von Tools wie httpwatch gedruckt wird? Das ist die Bedeutung von „Umriss“), es wird auch Punkte geben, aber wenn , selbst „outline“ ist falsch geschrieben, dann ist es schade.

Designaufgaben:

In letzter Zeit gibt es immer wieder Leute, die unser Abstimmungsmodul belästigen.

Die Anforderungen sind wie folgt.

1) Es ist erforderlich, dass jede QQ-Nummer (vorausgesetzt, diese QQ-Nummer kann in UNIT32 ausgedrückt werden) innerhalb von 10 Minuten nur 5 Stimmen abgeben kann.

2) Unsere Nutzer sind sehr begeistert, im Durchschnitt stimmen jeden Tag etwa 20 Millionen Menschen über dieses Programm ab.

Anleitung:

1) Es ist nicht nötig, Code zu schreiben, nur Bilder und Text.

2) Für die Schlüssellogik verwenden Sie bitte Bilder und Code, um sie auszudrücken. Dies ist auch ein Test Ihrer Schreibfähigkeiten.

3) Listen Sie alle Randbedingungen auf, die Ihnen einfallen. Dies ist ein Test für Ihre Vollständigkeit und Beweglichkeit im logischen Denken.

4) Geben Sie für die Lagerung Ihr Bestes. Wenn Sie eine selbst entworfene Speicherschicht benötigen, beschreiben Sie die Implementierung dieser Speicherschicht klar in Worten und Bildern. Wenn das Design angemessen ist, erhalten Sie großartige Bonuspunkte.

Programmieraufgaben:

1. Wir gerieten in Schwierigkeiten. Gott war sehr wütend und forderte uns auf, die Bibel (bbe.txt) auswendig zu lernen. Wir müssen schnell beantworten, in welcher Zeile und Wortposition sich das Wort befindet. Ich habe gehört, dass Sie ein ausgezeichneter Programmierer sind. Bitte helfen Sie uns, diese unmögliche Aufgabe zu bewältigen.
Die Anforderungen lauten wie folgt:

1)/myworks/example/bbe.txt, eine englische Bibel mit 98 Versionen

2) Die Anforderungen für den Eingabeteil lauten wie folgt: php ./ example.php [word ]

3) Der Ausgabeteil lautet wie folgt: [Wort] 1,2 2,4 5,6 bedeutet: Dieses Wort befindet sich in Zeile 1 und Spalte 2 (das zweite Wort), Zeile 2 und Spalte 4...

Beschreibung:

1) Dieser Text ist 4 MB groß...

2) Die Bedeutung des Wortes: eine Zeichenfolge bestehend aus aus englischen Buchstaben (Groß- und Kleinbuchstaben) und Zahlen (0-9)

3) Das Betriebssystem der Ihnen zur Verfügung gestellten Maschine ist Ubuntu 9.10, der Speicher ist nur 1 GB groß und leider sind es 700 MB Wird für andere Zwecke verwendet

4) Die computerbasierte Prüfung erlaubt kein Internet, aber ich habe das Man-Dokument und einen Reader zum Lesen von CHM und PDF installiert. Im CHM-Ordner auf dem Computer-Desktop befindet sich das entsprechendes PHP-Referenzhandbuch

5) Die Komplexitätsanforderung des Algorithmus darf nicht größer als O(N^2) sein (Das ist N im Quadrat)

6) Was? PHP ist ineffizient und unbequem zu verwenden. Nun, Sie können es in anderen Sprachen tun. Aber beachten Sie: Die Ihnen zur Verfügung gestellte Maschine verfügt nur über Python 2.4/Perl 5.8/gcc[g++] 4.1

Zusammenfassung: Egal um welches Interview es sich handelt, ich hoffe, dass Sie diese beiden Sätze wann verwenden können Vorstellungsgespräche mit PHP-Entwicklungsingenieuren können Ihnen helfen, und ich hoffe auch, dass die PHP-Mitarbeiter, die Vorstellungsgespräche führen, ihre idealen Jobs bekommen.

Verwandte Empfehlungen:

Die Wissensstruktur von PHP-Entwicklungsingenieuren

Grundlagen, um ein erfolgreicher Programmierer zu werden

Sei ein anderer Programmierer

Das obige ist der detaillierte Inhalt vonZwei Sätze Testpapiere, die für PHP-Entwicklungsingenieure geeignet sind. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn