2012-05-21 16 views
7

यहाँ PHP documentationक्या file_get_contents() करने के लिए कोई जावास्क्रिप्ट तरीका है?

है यहाँ कैसे मैं, एक अजाक्स कॉल में यह प्रयोग करेंगे अगर मैं एक शुद्ध ग्राहक तरीका यह है भी नहीं मिलता है।

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

क्या इस क्लाइंट पक्ष को करने का कोई तरीका है इसलिए मुझे स्ट्रिंग को अजाक्स करने की आवश्यकता नहीं है?

+0

आप चाहते हैं "शामिल हैं" कि फ़ाइल की सामग्री क्या है:

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

आप php.js बारे में अधिक जानकारी मिल सकती है? – MonkeyMonkey

+0

उपरोक्त उदाहरण के समान .. यह पैरामीटर के रूप में एक यूआरएल स्वीकार करता है .. यूआरएल उपयोगकर्ता परिभाषित है। –

उत्तर

6

आप

जे एस कोड कर सकता है:

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

PHP कोड:

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

कि आपने URL की सामग्री को मिलेगा।

+0

@ CS_2013 - यह होना होगा। बदल दिया जवाब – PitaJ

+0

डेटा को अजाक्स ... अपने सर्वर से ... अच्छा विचार –

+0

@ CS_2013 - धन्यवाद – PitaJ

3

सामान्य ज्ञान में नहीं। क्रॉस-डोमेन प्रतिबंध जावास्क्रिप्ट कोड को ऐसा करने से अस्वीकार करते हैं।

यदि लक्ष्य साइट पर CORS (क्रॉस-मूल संसाधन साझाकरण) सेट है, तो आप फ़ाइलों को लोड करने के लिए XMLHttpRequest का उपयोग कर सकते हैं। अधिकांश साइटें सुरक्षा कारणों से डिफ़ॉल्ट रूप से बंद नहीं होती हैं, और शायद ही कभी आवश्यक है।

यदि आपको केवल एक HTML पृष्ठ शामिल करने की आवश्यकता है, तो आप इसे तत्व में चिपका सकते हैं। यह कुछ लेआउट गॉथस के अधीन है, हालांकि (पृष्ठ एक निश्चित आकार तत्व में समाप्त होता है)।

+0

... क्या मैं iframe का कोई विश्लेषण कर सकता हूं ... शायद शीर्षक को कैसे पकड़ सकता है? –

+0

@ CS_2013 नहीं, नहीं, अगर 'iframe' आपके डोमेन से कोई दस्तावेज़ नहीं है। – Sampson

+0

नहीं। फ्रेम की सामग्री काफी पूरी तरह से ऑफ-सीमा हैं। – duskwuff

5

जावास्क्रिप्ट बाहर नहीं जा सकता और पृष्ठों से डेटा को स्क्रैप कर सकता है। यह एक स्थानीय PHP स्क्रिप्ट को कॉल कर सकता है जो उसके बाद जाता है और डेटा को पकड़ता है, लेकिन जावास्क्रिप्ट (ब्राउज़र में) ऐसा नहीं कर सकता है।

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

आप अपने निपटान में JSONP और क्रॉस-ओरिजिन रिसोर्स शेयरिंग जैसे विकल्प हैं, लेकिन उन दोनों के दूसरे छोर की स्थापना की आवश्यकता होती है, तो आप सिर्फ एक डोमेन नहीं चुन सकते हैं और डेटा के लिए अनुरोध बंद फायरिंग शुरू करते हैं।

अतिरिक्त पठन: Same origin policy

+0

क्या यह कभी बदल जाएगा .... –

0

या आप php.js लाइब्रेरी का उपयोग कर सकते हैं। जो जावास्क्रिप्ट के लिए कुछ php कार्यों की अनुमति देता है। file_get_contents() उनमें से एक कार्य करता है। http://phpjs.org/

+1

यह वही मूल नीति के अधीन होगा –

संबंधित मुद्दे