2012-05-21 20 views
7

Đây là PHP documentationCó cách nào để thực hiện file_get_contents() không?

Đây là cách tôi sẽ sử dụng nó trong một cuộc gọi Ajax, nếu tôi không tìm thấy một cách khách hàng thuần túy để làm điều này.

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

Có cách nào để thực hiện điều này cho khách hàng thay vì vậy tôi không phải kết nối chuỗi không?

+0

nội dung của tập tin mà bạn muốn "bao gồm" là gì? – MonkeyMonkey

+0

Tương tự như ví dụ trên .. nó chấp nhận một URL như một tham số .. URL được người dùng xác định. –

Trả lời

6

bạn có thể làm

mã JS:

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

mã PHP:

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

Điều đó sẽ giúp bạn có được các nội dung của url.

+0

@ CS_2013 - Nó sẽ phải như thế. Đã thay đổi câu trả lời. – PitaJ

+0

Ajax dữ liệu trong ... từ máy chủ của riêng bạn ... ý tưởng tốt –

+0

@ CS_2013 - Cảm ơn – PitaJ

3

Không theo nghĩa chung. Giới hạn tên miền chéo không cho phép mã Javascript thực hiện việc này.

Nếu trang đích có thiết lập CORS (chia sẻ nguồn gốc chéo), bạn có thể sử dụng XMLHttpRequest để tải tệp. Hầu hết các trang web không, vì nó bị tắt theo mặc định vì lý do bảo mật và hiếm khi cần thiết.

Nếu bạn chỉ cần bao gồm một trang HTML, bạn có thể dán nó vào một phần tử . Điều này là tùy thuộc vào một số gotchas bố trí, mặc dù (trang kết thúc trong một yếu tố kích thước cố định).

+0

... tôi có thể thực hiện bất kỳ phân tích nào về iframe ... có thể lấy tiêu đề một số cách không? –

+0

@ CS_2013 Không, không phải nếu 'iframe' không phải là tài liệu từ miền của bạn. – Sampson

+0

Không. Nội dung của khung là khá nhiều off-giới hạn. – duskwuff

5

JavaScript không thể thoát ra ngoài và xóa dữ liệu khỏi các trang. Nó có thể thực hiện cuộc gọi đến một kịch bản PHP cục bộ mà sau đó thay mặt nó và lấy dữ liệu, nhưng JavaScript (trong trình duyệt) không thể làm điều này.

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

Bạn có các tùy chọn như JSONP và chia sẻ tài nguyên gốc tùy ý, nhưng cả hai đều yêu cầu thiết lập đầu kia.

Đọc thêm: Same origin policy

+0

Điều này có thay đổi không ... –

0

Hoặc Bạn có thể sử dụng thư viện php.js. Cho phép một số chức năng php cho javascript. file_get_contents() chức năng một trong số chúng.

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

Bạn có thể tìm thêm thông tin về php.js: http://phpjs.org/

+1

Điều này cũng sẽ tuân theo chính sách gốc tương tự –

Các vấn đề liên quan