2011-02-08 26 views
5

Cảm ơn bạn đã xem câu hỏi của tôi.Làm thế nào để yêu cầu phiên bản di động bằng cách sử dụng file_get_contents() trong PHP?

Tôi muốn tải xuống phiên bản dành cho thiết bị di động bằng cách sử dụng tệp file_get_contents() hoặc cURL. Tôi biết rằng nó có thể được thực hiện bằng cách sửa đổi các tiêu đề HTTP trong yêu cầu. Bạn có thể vui lòng cho tôi một ví dụ đơn giản để làm như vậy không?

Cảm ơn bạn lần nữa!

Kính trọng, Sanket

Trả lời

13

Là một thay thế, file_get_contentsstream_context_create cũng có thể được sử dụng:

$opts = array('http' => 
    array(
     'header' => 'User-agent: Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3B48b Safari/419.3', 
    ) 
); 

$context = stream_context_create($opts); 

$result = file_get_contents($url, false, $context); 
+0

Tôi nhận được thông báo cho biết "Trang này đã được chuyển đến đây" hoặc phiên bản dành cho máy tính để bàn của trang web. Hãy giúp tôi! Nó không hoạt động. :( –

+0

Nó làm việc cho tôi. – Sunry

8

Đây có phải là những gì bạn đang tìm kiếm không?

curl -A "Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3" http://example.com/your-url 
5

Bạn cần phải thiết lập các chuỗi user agent:

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/3B48b Safari/419.3'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$page = curl_exec($ch); 
curl_close($ch); 
+0

Tất nhiên, nếu trang web chỉ chuyển hướng bạn đối với phiên bản dành cho thiết bị di động (thường là một cái gì đó như 'm.example.com'), bạn có thể chỉ yêu cầu url đó thay vì tiêu đề không thay đổi. –

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