Inhaltsverzeichnis
(2) Stellen Sie die Skriptausführungszeit erneut ein und setzen Sie den Timer zurück.
set_time_limit (int $seconds): bool
Heim Backend-Entwicklung PHP-Problem Welche Methoden gibt es, um das PHP-Timeout festzulegen?

Welche Methoden gibt es, um das PHP-Timeout festzulegen?

May 26, 2021 pm 05:23 PM
php 超时

In diesem Artikel erfahren Sie, wie Sie das PHP-Timeout festlegen. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein. 1. PHP-Dateiausführungszeitlimit Sie können die integrierte Methode zum Festlegen des Timeouts mithilfe der PHP-Skriptmethode verwenden. Fügen Sie den folgenden Code zur PHP-Datei hinzu, die für die Ausführung langfristiger Vorgänge erforderlich ist:

max_execution_time=30
Nach dem Login kopieren
Welche Methoden gibt es, um das PHP-Timeout festzulegen? Sie können das Timeout auch über die .htaccess-Datei und festlegen Fügen Sie der Datei den folgenden Code hinzu:

max_execution_time=600
Nach dem Login kopieren

(2) Stellen Sie die Skriptausführungszeit erneut ein und setzen Sie den Timer zurück.

set_time_limit (int $seconds): bool

seconds------Maximale Ausführungszeit in Sekunden. Bei der Einstellung 0 (Null) gibt es keine Zeitbegrenzung.

Legen Sie die Zeit in Sekunden fest, die das Skript ausführen darf. Wenn diese Einstellung überschritten wird, gibt das Skript einen schwerwiegenden Fehler zurück. Der Standardwert ist 30 Sekunden oder der in max_execution_time in php.ini definierte Wert, sofern dieser Wert vorhanden ist.

Wenn diese Funktion aufgerufen wird, startet set_time_limit() den Timeout-Zähler von Null neu. Mit anderen Worten: Wenn das Standard-Timeout 30 Sekunden beträgt und set_time_limit(20) aufgerufen wird, wenn das Skript 25 Sekunden lang ausgeführt wurde, beträgt die Gesamtzeit, die das Skript bis zum Timeout ausführen kann, 45 Sekunden.

2. PHP Curl-Anfrage-Timeout

Curl ist eine häufig verwendete Bibliothek für den Zugriff auf die HTTP-Protokollschnittstelle. Sie verfügt über eine hohe Leistung und einige gleichzeitige Unterstützungsfunktionen.

curl_setopt($ch, opt) kann einige Timeout-Einstellungen festlegen, hauptsächlich einschließlich:

a, CURLOPT_TIMEOUT legt die maximale Anzahl von Sekunden fest, die CURL ausführen darf.

b, CURLOPT_TIMEOUT_MS Legen Sie die maximale Anzahl von Millisekunden fest, die CURL ausführen darf.

c. CURLOPT_CONNECTTIMEOUT ist die Wartezeit, bevor eine Verbindung hergestellt wird. Wenn es auf 0 gesetzt ist, wird es auf unbestimmte Zeit warten.

d, CURLOPT_CONNECTTIMEOUT_MS Die Zeit, die auf einen Verbindungsversuch gewartet wird, in Millisekunden. Wenn auf 0 gesetzt, unendlich warten.

d. h. CURLOPT_DNS_CACHE_TIMEOUT legt die Zeit fest, die DNS-Informationen im Speicher speichert. Der Standardwert beträgt 120 Sekunden.

3. PHP-Socket-Request-Timeout

<?php
ini_set(&#39;max_execution_time&#39;, 600);//秒为单位,自己根据需要定义
Nach dem Login kopieren

Obwohl PHP über einen Timeout-Parameter für die Verbindung zum Socket für die fsockopen()-Methode verfügt, gibt es keine Timeout-Parametereinstellung für das Lesen und Schreiben von Daten nach einer erfolgreichen Verbindung wie in C. Es spielt keine Rolle, PHP bietet eine Reihe von Methoden für Streams, um Zeitüberschreitungen zu verhindern.

php_value max_execution_time 600
Nach dem Login kopieren

Stellen Sie den Datenfluss auf den Blockierungsmodus ein, um ein Beenden zu verhindern, bevor die Daten gelesen wurden.

Wenn der Modus falsch ist, wechselt der angegebene Socket-Deskriptor in den Nicht-Blockierungsmodus. Wenn er wahr ist, wechselt er in den Blockierungsmodus. Dieser Effekt ähnelt dem Lesen von fgets() aus dem Socket. Im Nicht-Block-Modus kehrt fgets() sofort zurück, während es im Block-Modus darauf wartet, dass die Daten die Anforderungen erfüllen.

<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=> 1, "usec"=> 0 ) ); // 接收
socket_set_option($socket,SOL_SOCKET,SO_SNDTIMEO,array("sec"=> 3, "usec"=> 0 ) );  // 发送
Nach dem Login kopieren

Legen Sie den Timeout fest. Dieser Satz sollte sofort nach erfolgreichem Verbindungsaufbau hinzugefügt werden. Die folgende Parametereinheit ist Sekunden. Holen Sie sich den Header/die Metadaten aus dem gekapselten Protokolldateizeiger und geben Sie ein Array im Format zurück:

stream_set_blocking( $fp , false )
Nach dem Login kopieren

Der Index timed_out ist die Zeitüberschreitung. Wenn keine Zeitüberschreitung vorliegt, ist er falsch. Dies sollte beachtet werden B. fwrite( ), fread(), hinzugefügt werden, und jedes Mal, wenn sie gelesen wird, muss beurteilt werden, ob eine Zeitüberschreitung aufgetreten ist. Für eine Verbindung ist nur eine Timeout-Einstellung stream_set_timeout ( $ fp , 10 ) reicht aus.

stream_set_timeout( $fp , 10 )
Nach dem Login kopieren

4. File_get_contents-Timeout-Verarbeitung (Socket kapseln, file_put_contents ist ähnlich)

Ab PHP5 unterstützt file_get_content bereits Kontext (im Handbuch heißt es: 5.0.0 Kontextunterstützung hinzugefügt), d. h. ab 5.0, file_get_contents kann tatsächlich Daten POSTEN. Ähnliche sind fopen (Kontextunterstützung wurde seit PHP5 ebenfalls hinzugefügt) und file (Unterstützung wurde in PHP5 hinzugefügt).

Array
(
  [stream_type] => tcp_socket
  [mode] => r+
  [unread_bytes] => 0
  [seekable] =>
  [timed_out] =>
  [blocked] => 1
  [eof] =>
)
Nach dem Login kopieren

5. PHP-Soap-Anfrage-Timeout

$fp = @fsockopen( $ip , $port, $errNo , $errstr, 30 );
if( !$fp )
{
  return false;
}
else
{
  stream_set_timeout( $fp , 3 ) ;
  //发送数据
  fwrite( $fp , $packet ) ;
  $status = stream_get_meta_data( $fp ) ;
  //发送数据超时
  if( $status[&#39;timed_out&#39;] )
  {
    echo "Write time out" ;
    fclose( $fp );
    return false;
  }
  //读取数据
  $buf = fread( $fp , 16 ) ;
  $status = stream_get_meta_data( $fp ) ;
  //读取数据超时
  if( $status[&#39;timed_out&#39;] )
  {
    echo "Read time out" ;
    fclose( $fp );
    return false;
  }
}
Nach dem Login kopieren

Soap-Anfrage kann auch den Ressourcen-Stream-Kontext verwenden, und das Anfrage-Timeout kann in stream_context_create() geschrieben werden.

<?php
$get_opts = array(   
  &#39;http&#39;=>array(   
    &#39;method&#39; => "GET",   
    &#39;timeout&#39; => 1,//单位秒, 默认使用php.ini中default_socket_timeout的设置
   )   
);
$post_opts = array(
&#39;http&#39;=>array(   
    &#39;method&#39; => "POST",   
    &#39;timeout&#39; => 60,//单位秒, 可用ini_set(&#39;default_socket_timeout&#39;, 120);进行默认设置
    &#39;content&#39; =>  http_build_query($param_array, &#39;&#39;, &#39;&&#39;)
   )   
);
 
$opts = $get_opts;
$res = file_get_contents($url, FALSE, stream_context_create($opts)); //返回string,失败返回FALSE
Nach dem Login kopieren

Empfohlenes Lernen:

php-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es, um das PHP-Timeout festzulegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

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.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

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

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP ist ein Open-Source-MVC-Framework. Es erleichtert die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich. CakePHP verfügt über eine Reihe von Bibliotheken, um die Überlastung der häufigsten Aufgaben zu reduzieren.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

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

See all articles