Heim > Artikel > Backend-Entwicklung > PHP sendet nur Anfragen, unabhängig davon, wie die Antwortanfrage geschrieben werden soll.
Ich habe eine kleine Anforderung. Das Programm muss nur Anfragen senden und kümmert sich nicht um andere Dinge. Es besteht keine Notwendigkeit, Rückgabeinformationen zu erhalten.
Ich habe eine kleine Anforderung. Das Programm muss nur Anfragen senden und kümmert sich nicht um andere Dinge. Es besteht keine Notwendigkeit, Rückgabeinformationen zu erhalten.
Verwenden Sie cURL
cURL kann einige Parameter an den angegebenen Pfad POSTEN. Für ein bestimmtes Beispiel können Sie die PHP-cURL-Funktion parametrisieren
Am einfachsten ist es, file_get_contents('http://baidu.com') zu verwenden. Wenn es komplizierter ist, können Sie curl oder fsockopen verwenden
Tatsächlich möchten Sie: Wenn Sie eine Anfrage senden, wird Ihr aktueller Prozess nicht blockiert
Beginnen Sie mit asynchronen Baidu-PHP-Aufgaben.
Zu den gängigen Lösungen gehören Redis Publish/Subscribe, Gearmand usw.
Mein eigenes ist komplizierter. PHP verwendet Socket und Nodejs für die Hochgeschwindigkeitskommunikation (um Nodejs mitzuteilen, welche Aufgaben ausgeführt werden sollen), und Nodejs dient als Verbraucher für die Kommunikation mit RabbitMQ, daher kann ich es Ihnen nicht klar sagen.
Das Prinzip besteht darin, dass PHP derzeit nicht für die Initiierung von HTTP-Anfragen verantwortlich ist, sondern nur dafür verantwortlich ist, mitzuteilen, was zu tun ist, und ein spezielles Programm die Anforderungsaufgabe ausführen zu lassen
<code>do_something(); // 告知后台执行请求任务, 几乎不占用时间就立马执行 next(); do_backend("send_request", "http://www.baidu.com"); // 接着做其它东西 next();</code>
Worker-Seite (Aufgabenausführungsseite, die ein PHP-Programm oder ein Programm in anderen Sprachen sein kann)
<code>// 异步监听任务 subscribe("send_request", function($url){ file_get_contents($url); // 或 curl });</code>