2017-02-07 1 views
-1

zu sein scheinen, dass die URLPHP Warum kommt mein Code nicht in die foreach Schleife in Zeile 20? Die file_get_contents() muß nicht Dieser Screenshot zeigt Arbeits

Image

This Screenshots in $ url gespeichert wird immer zeigt, dass, nachdem ich mit dem Code echo $ html hinzufügen, sagt es nicht definierte Variable $ url und file_get_contents(): Dateiname kann nicht

Image2

auch leer sein, ich habe fast alles versucht, dass es auf Stackoverflow einschließlich file_get_html() und kräuseln. Nichts scheint zu funktionieren. Bitte sag mir, wo ich hier falsch liege.

<?php 
include_once('simple_html_dom.php'); 
$base_url = "https://www.instagram.com/"; 
$html = ""; 
if (isset($_POST['username'])) { 
    $url = $base_url.htmlspecialchars($_POST['username'])."/";//concatenate $base_url to username to generate full URL 
} 
$html = file_get_contents($url); //access the URL in $url 
$doc = new DOMDocument; 
$doc->loadHTML($html); //get HTML of the webpage given by file_get_contents 
$tags = $doc->getElementsByTagName('img'); 
$arr = (array)$tags; 
if (empty($arr)) { 
    echo 'emptyarray'; 
} 
foreach ($tags as $tag) { 
    echo $tag->getAttribute('src'); 
} 
?> 

Edit:

Wenn 'http: // stackoverflow.com/questions' verwendet wird anstelle von 'https: // www.instagram.com/ its_kushal_here' file_get_contents() funktioniert gut und nicht Versagen.

+0

'if (isset ($ _ POST ['Benutzername'])) { $ url = $ base_url.htmlspecialchars ($ _ POST ['Benutzername'])."/"; } 'Dieses Segment ist nicht erfolgreich bedeutet Ihr Beitrag war nicht erfolgreich –

+0

1 - Entfernen Sie alle Test-Code: 'echo $ url ...' Es gibt eine Menge Test-Code, die es schwieriger zu sehen, was passiert ---- - 2 - Include 'simple_dom_html' Datei ------ 3 - Versuchen Sie, die Code-Schnipsel mit Codepen (http://codepen.io/)- 4 - Betrachten Sie die Verwendung von Kommentaren, um zu zeigen, was Sie sind versuchen zu tun – Cason

+0

@MASIDDIQUI Auch ich dachte schon. Aber der erste Screenshot zeigt Ihnen, dass der POST erfolgreich ist. –

Antwort

-1

Haben Sie beim Aktualisieren der Seite sichergestellt, dass Ihre Post-Parameter zu der neuen Anfrage weitergeleitet wurden?

Das Problem scheint hier

if (isset($_POST['username'])) { 
    $url = $base_url.htmlspecialchars($_POST['username'])."/"; 
} 

zu sein Wenn $_POST['username'] dann nicht gesetzt ist $url nicht definiert werden. Entfernen Sie auch die @ von @$doc->loadHTML($html);, damit Sie den ausgegebenen Fehler sehen können. Das wird Ihnen helfen zu trainieren, was nach diesem Punkt fehlschlägt.

+0

Kirsty Wright. Ja, ich habe sichergestellt, dass die POST-Parameter eingestellt wurden. Ich habe die Seite nicht aktualisiert. Stattdessen habe ich das Formular auf der vorherigen Seite erneut ausgefüllt, damit alle POST-Parameter ihre Werte erhalten. UND das ist, was ich extra nach dem Entfernen der '@' bekommen. Warnung: DOMDocument :: loadHTML(): Leere Zeichenfolge, die in Zeile 12 als Eingabe in C: \ xampp \ htdocs \ instaDP \ php \ process.php angegeben wird –

Verwandte Themen