2016-06-06 19 views
-1

Ich versuche, Wert (URL) in einer PHP-Variable mit Javascript zuweisen. ich es von einem Hyperlink auf einer Seite lesen muß und es in PHP-Funktion verwenden: file_get_contentsjavascript: document.write + php: file_get_contents

<a href="http://www.google.com/" id="link"></a> 
<script type="text/javascript"> 
var jvalue = document.getElementById('link').getAttribute('href'); 
</script> 
<?php $url = ("<script type='text/javascript'>document.write(jvalue)</script>"); 

$content = file_get_contents($url); 
echo $content; 

Es gibt: „file_get_contents (document.write (jvalue)): failed to open stream: Datei-o-Verzeichnis existiert nicht“

wenn ich echo $ url schreiben es wieder richtig:‚http://www.google.com/

Wie kann ich es beheben könnte tun? Danke Jungs

+1

'$ url' ist nur eine Zeichenfolge zu PHP. PHP läuft auf dem Server, nicht im Browser wie Javascript. Es wird keinen JavaScript-Code analysieren. –

+5

Sie missverstehen, wie PHP und JS interagieren. PHP läuft auf dem Server und wird vollständig ausgeführt * bevor * Ihr JS läuft überhaupt. Nachdem alles PHP ausgeführt wurde, wird der JS-Code im Browser ausgeführt. PHP läuft auf dem Server, JS läuft im Browser. Sie laufen nicht gleichzeitig auf derselben Seite. Sie können AJAX verwenden, um Daten vom Server hin und her zu senden, aber Sie können PHP-Code nicht direkt über Ihren JS-Code im Browser ausführen. –

+2

'echo $ url;' wird ausgeben '', was den * rein zufälligen * Effekt hat, genau wie 'http://google.com/ 'wenn in einem Browser angezeigt. Wenn Sie die PHP-Ausgabe testen möchten, verwenden Sie immer die Option Ursprüngliche Quelle anzeigen oder untersuchen Sie den Netzwerkverkehr direkt mit dem Browser-Entwickler-Tool. –

Antwort

0

gemeinsame Seite javascript:

$.get('/proxy.php?url='+encodeURIComponent(jvalue), data => $('div:eq(0)').html(data)); 

Es wird url Inhalt von php anfordern und schreiben html zum ersten div führen (Sie einen anderen Selektor angeben)

proxy.php

<?=file_get_contents($_GET['url']) 
Verwandte Themen