2012-05-21 13 views
7

Ecco la PHP documentationC'è un modo JavaScript per fare file_get_contents()?

Ecco come avrei usato in una chiamata Ajax, se non trovo un modo puro cliente per fare questo.

$homepage = file_get_contents('http://www.example.com/'); 
echo $homepage; 

C'è un modo per fare questo lato client, invece, quindi non devo ajax la stringa sopra?

+0

Qual è il contenuto di quel file che si desidera "include"? – MonkeyMonkey

+0

Simile all'esempio sopra..it accetta un URL come parametro ... l'URL è definito dall'utente. –

risposta

6

si poteva fare

codice JS:

$.post('phppage.php', { url: url }, function(data) { 
    document.getElementById('somediv').innerHTML = data;   
}); 

codice PHP:

$url = $_POST['url']; 
echo file_get_contents($url); 

che si otterrebbe il contenuto dell'URL.

+0

@ CS_2013 - Dovrebbe essere. Risposta modificata – PitaJ

+0

Ajax i dati in ... dal tuo server ... buona idea –

+0

@ CS_2013 - Grazie – PitaJ

3

Non in senso generale. Le restrizioni interdominio impediscono al codice Javascript di farlo.

Se il sito di destinazione è impostato su CORS (condivisione di origini incrociate), è possibile utilizzare XMLHttpRequest per caricare i file. La maggior parte dei siti non lo fa, in quanto è disattivata per impostazione predefinita per motivi di sicurezza ed è raramente necessaria.

Se è sufficiente includere una pagina HTML, è possibile inserirla in un elemento . Questo è soggetto ad alcuni trucchi di layout, tuttavia (la pagina finisce in un elemento di dimensioni fisse).

+0

... posso fare qualche analisi dell'iframe ... magari prendi il titolo un po 'come? –

+0

@ CS_2013 No, non se l'iframe non è un documento del tuo dominio. – Sampson

+0

No. I contenuti del frame sono praticamente completamente off-limits. – duskwuff

5

JavaScript non può uscire e raschiare i dati dalle pagine. Può fare una chiamata a uno script PHP locale che poi va a suo nome e afferra i dati, ma JavaScript (nel browser) non può farlo.

$.post("/localScript.php", { srcToGet: 'http://example.com' }, function(data){ 
    /* From within here, data is whatever your local script sent back to us */ 
}); 

sono disponibili opzioni come JSONP e condivisione delle risorse Cross-Origin a vostra disposizione, ma sia di quelli richiedono l'istituzione l'altra estremità, in modo da non si può semplicemente scegliere un dominio e iniziare a sparare fuori le richieste di dati.

Letture consigliate: Same origin policy

+0

Cambierà mai ... –

0

Oppure È possibile utilizzare la libreria php.js. Che consentono alcune funzioni PHP per javascript. file_get_contents() funzione uno di loro.

<script> 
var data = file_get_contents('Your URL'); 
</script> 

È possibile trovare maggiori informazioni su php.js: http://phpjs.org/

+1

Questo sarà soggetto alla stessa politica di origine pure –

Problemi correlati