Heim Backend-Entwicklung PHP-Tutorial Bei der Verwendung von php-simple-html-dom-parser sind Probleme aufgetreten

Bei der Verwendung von php-simple-html-dom-parser sind Probleme aufgetreten

Aug 08, 2016 am 09:29 AM
com localhost socket xdebug

Ich habe heute dieses Tool verwendet:

https://github.com/sunra/php-simple-html-dom-parser

Zuerst bin ich auf ein Problem gestoßen Ich habe slick_test.php im Testfall gefunden, der mit php-simple-html-dom-parser geliefert wird, und es wurde ein Fehler gemeldet. Dann habe ich die einfachsten drei Codezeilen geschrieben, um die Baidu-Homepage zu erfassen:

<code><span><span><?php</span><span>require</span><span>'./simplehtmldom_1_5/simple_html_dom.php'</span>;
<span>$html</span> = file_get_html(<span>'http://www.baidu.com/'</span>);

<span>//找到所有图片 </span><span>foreach</span>(<span>$html</span>->find(<span>'img'</span>) <span>as</span><span>$element</span>) 
       <span>echo</span><span>$element</span>->src . <span>'<br>'</span>;


  <span>//找到所有链接 </span><span>foreach</span>(<span>$html</span>->find(<span>'a'</span>) <span>as</span><span>$element</span>) 
       <span>echo</span><span>$element</span>->href . <span>'<br>'</span>;</span></span></code>
Nach dem Login kopieren

Ergebnisse Der gemeldete Fehler ist:

<code>andy@AndyMacBookPro:/usr/<span>local</span>/webdata/github/php-simple-html-dom-parser/Src/Sunra/PhpSimple$ php andy.php<span>
//www.baidu.com/img/baidu_jgylogo3.gif<br>//www.baidu.com/img/bd_logo.png<br>http://s1.bdstatic.com/r/www/cache/static/global/img/gs_237f015b.gif<br>//www.baidu.com/gaoji/preferences.html<br>/<br>https://passport.baidu.com/v2/?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F<br>https://passport.baidu.com/v2/?reg&regType=1&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F<br>/<br>http://news.baidu.com/ns?cl=2&rn=20&tn=news&word=<br>http://tieba.baidu.com/f?kw=&fr=wwwt<br>http://zhidao.baidu.com/q?ct=17&pn=0&tn=ikaslist&rn=10&word=&fr=wwwt<br>http://music.baidu.com/search?fr=ps&key=<br>http://image.baidu.com/i?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&word=<br>http://v.baidu.com/v?ct=301989888&rn=20&pn=0&db=0&s=25&word=<br>http://map.baidu.com/m?word=&fr=ps01000<br>http://wenku.baidu.com/search?word=&lm=0&od=0<br>//www.baidu.com/more/<br>javascript:;<br>javascript:;<br>javascript:;<br>http://w.x.baidu.com/go/mini/8/10000020<br>http://news.baidu.com<br>http://www.hao123.com<br>http://map.baidu.com<br>http://v.baidu.com<br>http://tieba.baidu.com<br>https://passport.baidu.com/v2/?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F<br>//www.baidu.com/gaoji/preferences.html<br>//www.baidu.com/more/<br>http://news.baidu.com<br>http://tieba.baidu.com<br>http://zhidao.baidu.com<br>http://music.baidu.com<br>http://image.baidu.com<br>http://v.baidu.com<br>http://map.baidu.com<br>javascript:;<br>javascript:;<br>javascript:;<br>http://baike.baidu.com<br>http://wenku.baidu.com<br>http://www.hao123.com<br>//www.baidu.com/more/<br>/<br>//www.baidu.com/cache/sethelp/index.html<br>http://home.baidu.com<br>http://ir.baidu.com<br>/duty/<br>create_debugger_socket("localhost", 9000) socket: Too many open files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
create_debugger_socket(<span>"localhost"</span>, <span>9000</span>) <span>socket</span>: Too many <span>open</span><span>files</span>
andy@AndyMacBookPro:/usr/<span>local</span>/webdata/github/php-simple-html-dom-parser/Src/Sunra/PhpSimple$</code>
Nach dem Login kopieren

Dieser Fehler wird gemeldet:

create_debugger_socket(“localhost”, 9000) socket: Zu viele offene Dateien

Ja Ich verstehe nicht, ich weiß nicht, wo die Socket-Verbindung verwendet wird. ?

%%%%%%%%%%%%%%%%%%%%%%%%
Jetzt ist es fertig, so: Zuerst wollte ich das fehlerhafte PHP debuggen, um zu sehen, was das Problem war, dann habe ich MacGDBP aktiviert und festgestellt, dass nach dem Einschalten von MacGDBp kein Fehler gemeldet wurde, und ich dachte an Port 9000. Das ist das Gegenstück zum xdebug-Debug-Port, also habe ich einige Ideen bekommen, es könnte ein Problem mit xdebug sein, und dann habe ich online darauf verwiesen:

http://bugs.xdebug.org/view.php ?id=1070

Siehe hier:

  • Xdebug installiert und xdebug.remote_connect_back und xdebug.remote_enable auf 1 gesetzt, damit eine Verbindung zu meinem Host hergestellt wird und phpstorm ausgeführt wird (oder nicht ausgeführt wird). )
  • Setzen Sie xdebug.remote_log=/tmp/remote.log

Dann gingen wir zu /etc/php.ini und fügten

xdebug.remote_log = / hinzu tmp/xdebug_remote. Nach dem Protokoll

wir laufen weiter und die Fehler bleiben bestehen, aber wir können dieses Fehlerprotokoll in der Datei /tmp/xdebug_remote.log sehen:

<code><span>16</span> Log opened <span>at</span><span>2015</span>-<span>02</span>-<span>20</span><span>03</span>:<span>48</span>:<span>29</span><span>17</span> I: Connecting <span>to</span> configured address/port: localhost:<span>9000.</span><span>18</span> E: Could <span>not</span> connect <span>to</span> client. :-(
  <span>19</span> Log closed <span>at</span><span>2015</span>-<span>02</span>-<span>20</span><span>03</span>:<span>48</span>:<span>29</span></code>
Nach dem Login kopieren

Okay, wir bekommen Es kann sicher keine Verbindung zum Socket-Port von localhost:9000 hergestellt werden, da ich MacGDBP nicht lokal geöffnet habe. Dies ist ein Debugging-Tool für PHP. Wenn Sie zu xdebug in php.ini gehen:

<code>xdebug<span>.remote</span>_enable = on
xdebug<span>.remote</span>_handler = dbgp
xdebug<span>.remote</span>_host = localhost
xdebug<span>.remote</span>_port = <span>9000</span>
xdebug<span>.remote</span>_autostart = <span>1</span></code>
Nach dem Login kopieren

Wenn xdebug .remote_autostart auf 1 gesetzt ist, das heißt, wenn es automatisch aktiviert wird, fordert es direkt zum Öffnen der Socket-Verbindung von Port 9000 auf. Andernfalls wird ein Fehler gemeldet. Deshalb :-).

Okay, da die Ausgabe dieser Protokolldatei ziemlich groß ist, können wir xdebug.remote_log deaktivieren, das heißt:

<code>xdebug.<span>remote_enable = on</span>
xdebug.<span>remote_handler = dbgp</span>
xdebug.<span>remote_host = localhost</span>
xdebug.<span>remote_port = 9000</span>
xdebug.<span>remote_autostart = 1</span>
;xdebug.<span>remote_log = /tmp/xdebug_remote.log</span></code>
Nach dem Login kopieren

Fügen Sie ein Semikolon hinzu und es ist in Ordnung.

Das Obige stellt die Probleme vor, die bei der Verwendung von php-simple-html-dom-parser auftreten, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

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)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate 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)

Warum kann MySQL keine Verbindung zu Localhost herstellen? Warum kann MySQL keine Verbindung zu Localhost herstellen? Aug 10, 2023 pm 02:55 PM

Die Gründe, warum MySQL keine Verbindung zu Localhost herstellen kann, sind, dass der MySQL-Dienst nicht gestartet ist, der MySQL-Port belegt ist und ein Problem mit der MySQL-Konfigurationsdatei vorliegt. Detaillierte Einführung: 1. In Windows-Systemen können Sie den Dienst-Manager öffnen, indem Sie an der Eingabeaufforderung „services.msc“ eingeben, dann den MySQL-Dienst suchen und sicherstellen, dass sein Status „Wird ausgeführt“ ist. In Linux-Systemen können Sie den Befehl „services.msc“ verwenden, um den Dienststatus zu überprüfen und zu steuern. Sie können den Befehl „open“ usw. verwenden.

Hongmeng native Anwendung zufälliger Poesie Hongmeng native Anwendung zufälliger Poesie Feb 19, 2024 pm 01:36 PM

Um mehr über Open Source zu erfahren, besuchen Sie bitte: 51CTO Hongmeng Developer Community https://ost.51cto.com Laufumgebung DAYU200:4.0.10.16SDK: 4.0.10.15IDE: 4.0.600 1. Um eine Anwendung zu erstellen, klicken Sie auf Datei- >newFile->CreateProgect. Vorlage auswählen: [OpenHarmony] EmptyAbility: Geben Sie den Projektnamen, shici, den Namen des Anwendungspakets com.nut.shici und den Speicherort der Anwendung XXX ein (kein Chinesisch, Sonderzeichen oder Leerzeichen). CompileSDK10, Modell: Stage. Gerät

IO-Multiplexing der PHP+Socket-Serie und Implementierung eines Webservers IO-Multiplexing der PHP+Socket-Serie und Implementierung eines Webservers Feb 02, 2023 pm 01:43 PM

Dieser Artikel vermittelt Ihnen relevantes Wissen über PHP + Socket. Er stellt hauptsächlich das E / A-Multiplexing vor und erklärt, wie PHP + Socket den Webserver implementiert. Freunde, die interessiert sind, können einen Blick darauf werfen. Ich hoffe, es wird für alle hilfreich sein.

Was soll ich tun, wenn localhost nicht geöffnet werden kann? Was soll ich tun, wenn localhost nicht geöffnet werden kann? Nov 07, 2023 pm 02:47 PM

Lösung: 1. Überprüfen Sie den Betriebsstatus des Servers und stellen Sie sicher, dass er den richtigen Port überwacht. 2. Versuchen Sie, die Firewall oder Sicherheitssoftware vorübergehend zu deaktivieren, und versuchen Sie dann erneut, auf localhost zuzugreifen 4. Versuchen Sie, den Netzwerkadapter neu zu starten oder die Netzwerkverbindung neu zu konfigurieren. 5. Versuchen Sie, den vom lokalen Server verwendeten Port zu ändern, oder schließen Sie andere Programme, die denselben Port belegen um die entsprechende IP-Adresse und den Domänennamen manuell in die Hosts-Datei usw. einzufügen.

So verwenden Sie Pythons Socket und Socketserver So verwenden Sie Pythons Socket und Socketserver May 28, 2023 pm 08:10 PM

1. Socket-Programmierung basierend auf dem TCP-Protokoll 1. Der Socket-Workflow beginnt auf der Serverseite. Der Server initialisiert zuerst den Socket, bindet dann an den Port, lauscht auf den Port, ruft „Accept“ zum „Blockieren“ auf und wartet darauf, dass der Client eine Verbindung herstellt. Wenn zu diesem Zeitpunkt ein Client einen Socket initialisiert und dann eine Verbindung zum Server herstellt (verbinden), wird bei erfolgreicher Verbindung die Verbindung zwischen dem Client und dem Server hergestellt. Der Client sendet eine Datenanforderung, der Server empfängt die Anforderung und verarbeitet sie, sendet dann die Antwortdaten an den Client, der Client liest die Daten und schließt schließlich die Verbindung. Verwenden Sie den folgenden Python-Code, um sie zu implementieren : importso

Was bedeutet Linux Localhost? Was bedeutet Linux Localhost? Mar 14, 2023 am 09:53 AM

Linux Localhost bedeutet „Computer-Hostname“. Der Hostname wird verwendet, um einen unabhängigen Computer im Netzwerk zu identifizieren. Der Root in „root@localhost“ stellt den aktuell angemeldeten Benutzer dar Der Benutzer ist Root. Melden Sie sich als Benutzer am Linux-Computer an.

So verwenden Sie Spring Boot+Vue, um den Socket-Benachrichtigungs-Push zu implementieren So verwenden Sie Spring Boot+Vue, um den Socket-Benachrichtigungs-Push zu implementieren May 27, 2023 am 08:47 AM

Der erste Schritt auf der SpringBoot-Seite besteht darin, Abhängigkeiten einzuführen. Zuerst müssen wir die für WebSocket erforderlichen Abhängigkeiten sowie die Abhängigkeiten für die Verarbeitung des Ausgabeformats com.alibabafastjson1.2.73org.springframework.bootspring-boot-starter-websocket einführen. Der zweite Schritt besteht darin, die WebSocket-Konfigurationsklasse importorg springframework.context.annotation.Bean;importorg.springframework.context.annotation.Config zu erstellen

Wird PHP durch die Aktivierung von XDebug auf einem Produktionsserver langsamer? Wird PHP durch die Aktivierung von XDebug auf einem Produktionsserver langsamer? Sep 22, 2023 pm 10:41 PM

Ja, Debugger wie XDebug können die Leistung des PHP-Servers verlangsamen. Aus diesem Grund wird der Debugger nicht in einer Serverumgebung platziert. Sie werden in verschiedenen Umgebungen bereitgestellt, um unnötigen Overhead zu vermeiden. Debug-Meldungen können nicht in Anwendungen angezeigt werden, die sich bereits in der Produktion befinden. Wenn dem Server Debugverhalten hinzugefügt wird, wird die Debugging-Engine an den PHP-Prozess angehängt. Es beginnt mit dem Empfang von Nachrichten und stoppt am Haltepunkt. Dies ist jedoch kein erforderliches Verhalten, da es zu Leistungseinbußen bei anderen Prozessen führt und somit den PHP-Parser stoppt. Andererseits neigen Debugger bei der Installation dazu, Ports im Server zu öffnen, da sie nicht für den Einsatz in einer Produktionsumgebung gedacht sind. Das Öffnen eines Ports in Ihrem Server ist genauso schlimm wie das Öffnen einer Tür, durch die Hacker schnüffeln können.

See all articles