2016-06-06 2 views
-1

Я пытаюсь присвоить значение (url) в переменной php с помощью javascript. мне нужно прочитать его из гиперссылке страницы и использовать его в функции PHP: 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; 

возвращает: «file_get_contents (document.write (jvalue)): не удалось открыть поток: файл О каталоге не существует»

если я пишу эхо $ URL возвращается правильно:„http://www.google.com/

Как я могу сделать, чтобы исправить это? Спасибо ребята

+1

'$ url' - это просто строка для php. PHP работает на сервере, а не в браузере, таком как javascript. Он не будет анализировать любой код javascript. –

+5

Вы не понимаете, как взаимодействуют PHP и JS. PHP работает на сервере и полностью выполняется * до того, как ваш JS запускается вообще. После всех запусков PHP ваш JS-код будет запущен в браузере. PHP работает на сервере, JS работает в браузере. Они не запускаются одновременно на одной странице. Вы можете использовать AJAX для отправки данных назад и вперед с сервера, но вы не можете запускать PHP-код непосредственно в браузере из вашего JS-кода. –

+2

'echo $ url;' будет выводить '', который имеет * чисто случайный эффект, похожий на 'http://google.com/ 'при просмотре в браузере. Если вы хотите протестировать вывод PHP, всегда используйте параметр «Просмотр исходного источника» или проверяйте сетевой трафик напрямую с помощью инструмента разработчика браузера. –

ответ

0

Общие страницы JavaScript:

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

Он запросит URL контента из PHP и написать результат HTML для первого DIV (вы можете задать другой селектор)

proxy.php

<?=file_get_contents($_GET['url']) 
Смежные вопросы