So löschen Sie die Portnummer in PHP (Lösungsanalyse)

PHPz
Freigeben: 2023-04-06 12:24:02
Original
741 Leute haben es durchsucht

Mit der kontinuierlichen Weiterentwicklung der Internettechnologie werden das Front-End und Backend unserer Website immer komplexer. Bei diesem Vorgang können viele Probleme auftreten. Beispielsweise möchten wir die Portnummer löschen, wenn wir PHP für den Zugriff auf die Website verwenden, was ein problematisches Problem darstellt. Aber keine Sorge, wir haben eine Lösung für dieses Problem.

Lassen Sie uns zunächst die Rolle der Portnummer verstehen. Eine Portnummer ist eine Endpunktkennung, die durch einen gepaarten Kommunikationssatz im TCP/IP-Protokoll gebildet wird und zur Identifizierung eines bestimmten Dienstes in einem Prozess oder einer Anwendung verwendet wird. Eine Portnummer ist normalerweise eine 16-Bit-Ganzzahl im Bereich von 0 bis 65535.

Wenn wir die URL im Browser eingeben, wird standardmäßig Port 80 verwendet. Wenn Sie beispielsweise http://www.test.com eingeben, verwendet Ihr Browser standardmäßig Port 80 und greift direkt auf http://www.test.com:80 zu. Jede Website hat eine Standard-Portnummer. Normalerweise verwendet das HTTP-Protokoll Port 80 und das HTTPS-Protokoll Port 443.

Wenn wir in einem PHP-Programm cURL für den Zugriff auf die Website verwenden möchten und die Website beispielsweise für den Zugriff auf GitHub eine nicht standardmäßige Portnummer verwendet, deren nicht standardmäßige Portnummer 443 ist, müssen wir die festlegen Portnummer in PHP auf 443. Andernfalls wird unser Zugriff auf den Standardport Port 80 umgeleitet.

Wie lösche ich also die Portnummer in PHP? Hier sind einige mögliche Lösungen.

Option 1: Verwenden Sie die Funktion gethostbyname

Wenn Sie cURL verwenden, um auf eine Website zuzugreifen, verwenden wir normalerweise die URL im Code, zum Beispiel:

$url = "https://github.com";
$ch = curl_init($url);
Nach dem Login kopieren

Wenn wir die Portnummer löschen möchten, können wir die Funktion gethostbyname verwenden Wandeln Sie die URL in eine IP-Adresse um:

$url = "https://github.com";
$ip = gethostbyname(parse_url($url, PHP_URL_HOST));
$ch = curl_init("https://$ip");
Nach dem Login kopieren

Verwenden Sie die Funktion gethostbyname, um die URL in eine IP-Adresse umzuwandeln und so die Portnummer zu löschen. Allerdings kann diese Funktion in manchen Umgebungen fehlschlagen, beispielsweise wenn IPv6-Adressen verwendet werden.

Option 2: Verwenden Sie die Funktion stream_context_create

Wir können Kontextparameter im PHP-Programm über die Funktion stream_context_create festlegen. Wir können die Portnummer löschen, indem wir die Kontextparameter ändern.

Das Folgende ist der Beispielcode:

$url = "https://github.com";
$options = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true,
        'peer_name' => parse_url($url, PHP_URL_HOST),
        'peer' => parse_url($url, PHP_URL_HOST) . ':443'
    )
);
$context = stream_context_create($options);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json'
));
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 2000);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 2000);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_STDERR, fopen('php://output', 'w'));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($ch);
Nach dem Login kopieren

Verwenden Sie die Funktion stream_context_create, um Kontextparameter zu erstellen, setzen Sie den Peer-Parameter auf den Hostnamen und die Portnummer der Website und löschen Sie dann die Portnummer.

Zusammenfassung

Es gibt viele Möglichkeiten, die Portnummer in PHP zu löschen. Hier sind nur zwei gängige Methoden. Im tatsächlichen Einsatz kann je nach Situation die passende Lösung ausgewählt werden.

Es wird empfohlen, die Parameter „Verify_peer“ und „Verify_peer_name“ festzulegen, um die Sicherheit zu gewährleisten, wenn cURL für den Zugriff auf die Website verwendet wird. Wenn Sie eine ältere PHP-Version verwenden, wird empfohlen, ein Upgrade Ihrer PHP-Version in Betracht zu ziehen, um die Sicherheit und Stabilität zu verbessern.

Das obige ist der detaillierte Inhalt vonSo löschen Sie die Portnummer in PHP (Lösungsanalyse). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!