


Wie unterstützt PHP die Übertragung von CURL-String-Zertifikaten (detaillierter Lösungsprozess)
Hintergrund
Bei der Verbindung zur WeChat-Zahlung müssen Zertifikate am Rückerstattungspunkt verwendet werden. Da wir eine SAAS-Plattform sind, müssen wir Zahlungen über mehrere Parteien und alle Kanäle unterstützen Wenn Dateien auf dem Anwendungsserver gespeichert werden, ist dies von SLB betroffen. Die Dateien auf einem bestimmten Computer sind nicht synchron und behindern den Rückerstattungsprozess. Wenn die Dateien jedoch im OSS gespeichert sind, muss das Backend sie vom OSS auf den herunterladen Anwendungsserver, um Konsistenz sicherzustellen. Nach langem Überlegen haben wir uns schließlich entschieden, den Zertifikatsinhalt in der Datenbank zu speichern. Unabhängig davon, wie viele Maschinen im Cluster verwendet werden, kann die Konsistenz der Datei sichergestellt und redundante Downloadschritte vermieden werden .
Problem
Aber ich bin gleich beim Starten auf ein Problem gestoßen. Das CURL-Zertifikat von PHP unterstützt die Übertragung von Zeichenfolgen nicht und kann nur den Zertifikatspfad ausfüllen (das Folgende ist die offizielle Erklärung). )
Client-Zertifikate müssen durch einen Pfadausdruck zu einem Zertifikatspeicher angegeben werden.
Lösungsprozess
Mein erster Gedanke ist, eine leere Datei zu erstellen und schreiben Sie den Inhalt des Zertifikats. Warten Sie, bis das Zertifikat verwendet wird, und löschen Sie dann die Datei. Das Erstellen und anschließende Löschen einer Entitätsdatei verbraucht jedoch Leistung und ist sehr mühsam Datei? Ja, die Funktion tmpfile()
kann uns dabei helfen, eine temporäre Datei zu erstellen und den Dateipfad abzurufen. Deshalb habe ich eine Methode geschrieben, um den temporären Dateipfad abzurufen.
1 2 3 4 5 6 7 8 9 |
|
Das Traurige daran ist, dass der von dieser Methode zurückgegebene Pfad dies tut Überhaupt nicht gelesen. Ich konnte den Inhalt nicht finden und dachte sogar, ich wäre betrogen worden. Ich habe den Grund gefunden, nachdem ich die offiziellen Dokumente gelesen hatte. Wenn die von
zurückgegebene Handle-Referenzanzahl 0 ist , die temporäre Datei wird recycelt und der temporäre Pfad wird natürlich recycelt. Nachdem die Methode ausgeführt wurde, endet der Lebenszyklus der lokalen Variablen tmpfile()
(das offizielle Dokument lautet wie folgt). 🎜>getTmpPathByContent()
$tmpFile
Die Datei wird automatisch entfernt, wenn sie geschlossen wird (z. B. durch Aufrufen von fclose() oder wenn keine weiteren Verweise auf das von tmpfile() zurückgegebene Dateihandle vorhanden sind) oder wenn das Skript endet
Bestätigt die Grundursache, dann müssen wir jetzt dringend ein Leben finden. Ein Variablentyp, dessen Zyklus endet, wenn der Prozess endet, um das Handle zu speichern. Welcher Typ kann die Bedingungen erfüllen? statische Variablen. Der Unterschied zwischen statischen Variablen und lokalen Variablen besteht darin, dass ihnen zu Beginn des PHP-Lebenszyklus Speicherplatz zugewiesen und im globalen Variablenbereich gespeichert wird. In diesem Fall werden statische Variablen von Ihnen deklariert Wenn Sie den Referenzzähler
größer als 0 halten können, kann unser Code die folgende Verarbeitung ausführen:
1 |
|
Führen Sie ihn erneut aus und lesen Sie den Inhalt der temporären Datei erfolgreich $tmpFile
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
[Empfohlener Kurs: CURLOPT_SSLCERT
PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWie unterstützt PHP die Übertragung von CURL-String-Zertifikaten (detaillierter Lösungsprozess). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
