2010-12-05 3 views
0

Я пытаюсь загрузить файл javascript на страницу PHP, а затем я могу использовать загрузку jquery для переноса этих данных на свой сайт.Загрузите текст/javascript на страницу PHP

http://www.themoviequotes.com/widgets/javascript?n=1&l=1&g=3 

Это URL. Если вы поместите это в браузер, он отобразит document.write и т. Д., А затем фактический контент, который я хочу.

Какую функцию PHP я мог бы использовать, чтобы получить данные, я попытался file_get_contents, но он возвращает все HTML/JavaScript теги и т.д. ... как это:

document.write(" 
Finding Forrester (2000) 

William Forrester: Writers write things to give readers something to read. 
"); 
+1

Какая форма * do * вы хотите? – 2010-12-05 21:33:02

+0

raw html без всех тегов и theres много «\» в источнике на данный момент. – benhowdle89 2010-12-05 21:34:17

ответ

2
<?php 
    $quote = file_get_contents('http://www.themoviequotes.com/widgets/javascript?n=1&l=1&g=3'); 
    $quote_text = array(); 
    preg_match('!document\.write\(\"(.+)\"\);!', $quote, $quote_text); 
    $quote_text = stripslashes($quote_text[1]); 
    echo($quote_text); 

Если вы хотите, чтобы захватить значение в JavaScript, вы также можете переопределить функцию document.write() вместо этого функция обратного вызова, чтобы вставить цитату где-то в йот.

0

Поместите тег сценария, где вы хотите, чтобы контент прошел, и атрибут src установлен на этот адрес.

<script type="text/javascript" src="http://www.themoviequotes.com/widgets/javascript?n=1&l=1&g=3"></script> 
0

Вы имеете в виду, что хотите выполнить JavaScript внутри PHP? Для этого вам понадобится механизм парсера/JavaScript. Дело не в том, что Javascript волшебным образом работает; браузер содержит логику для этого и выполняет Javascript-код, но я не знаю, есть ли для этого библиотеки Javascript.

В этом случае вы можете уйти, используя некоторые строковые функции или регулярные выражения, чтобы удалить все html и javascript из этого кода и сохранить заголовок и текст.

+0

Код регулярного выражения (если вы этого хотите) ниже. Вы также можете кэшировать цитату (file_put_contents() цитату, если файл mtime больше десяти часов и т. Д.). – CodeJoust 2010-12-05 21:49:23

0

попробовать это:

$ch = curl_init("http://www.themoviequotes.com/widgets/javascript?n=1&l=1&g=3"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$output = curl_exec($ch);  
curl_close($ch); 
echo $output; 

Как выше URL возвращает ваши данные HTML, нет никакого способа, чтобы разобрать. Чтобы получить желаемый результат, вам нужно использовать функцию подстроки. или вы можете использовать метод preg_match для извлечения данных или функцию взрыва.

желающий это поможет.

Смежные вопросы