2010-12-05 4 views
0

J'essaie de charger un fichier javascript dans une page PHP et ensuite je peux utiliser jquery load pour amener ces données dans mon site web.Charger un texte/javascript dans une page PHP

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

Ceci est l'URL. Si vous mettez cela dans un navigateur, il affichera document.write etc et ensuite le contenu réel que je veux.

Quelle fonction PHP pourrais-je utiliser pour obtenir les données, je l'ai essayé file_get_contents mais il retourne tous les html/javascript balises etc ... comme ceci:

document.write(" 
Finding Forrester (2000) 

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

Sous quelle forme * le voulez-vous? –

+0

le html brut sans tous les tags et theres beaucoup de "\" dans la source pour le moment .. – benhowdle89

Répondre

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); 

Si vous voulez capturer la valeur en javascript, vous pourriez également remplacer la fonction document.write() pour être à la place une fonction de rappel pour insérer la citation quelque part dans votre dom.

+1

Vous pouvez également analyser leur flux RSS: http://www.themoviequotes.com/rss/randomQuotes.rss – CodeJoust

+0

Vrai, c'était un plan de secours :) – benhowdle89

0

mettre un script où vous Voulez-vous que le contenu disparaisse et que l'attribut src soit défini sur cette adresse.

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

Vous voulez dire que vous voulez exécuter JavaScript en PHP? Vous aurez besoin d'un moteur d'analyse syntaxique/JavaScript pour cela. Ce n'est pas que Javascript fonctionne comme par magie; le navigateur contient la logique pour cela et exécute le code Javascript, mais je ne sais pas s'il existe des bibliothèques Javascript pour cela.

Dans ce cas, vous pouvez vous en tirer en utilisant des fonctions de chaîne ou des expressions régulières pour supprimer tous les fichiers html et javascript de ce code et conserver le titre et le texte.

+0

Le code regex (si vous le voulez) est ci-dessous. Vous pouvez également mettre en cache le devis (file_put_contents() le devis si le fichier mtime dure plus de dix heures, etc.). – CodeJoust

0

essayez ceci:

$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; 

Comme l'URL ci-dessus vous renvoie les données HTML, il n'y a aucun moyen d'analyser. Vous devez utiliser la fonction de sous-chaîne pour obtenir le résultat souhaité. ou vous pouvez utiliser la méthode preg_match pour extraire les données ou exploser également la fonction.

espérons que cela vous sera utile.

Questions connexes