2011-07-18 32 views
9

Vì vậy, tôi đang làm việc trên một kịch bản PHP, và một phần của nó cần để có thể truy vấn một trang web, sau đó nhận được văn bản từ nó.Làm cách nào để nhận văn bản từ trang web bằng PHP?

Trước hết, tôi cần có khả năng truy vấn URL trang web nhất định, sau đó tôi cần có thể nhận văn bản từ văn bản từ trang web đó sau truy vấn và có thể trả lại văn bản đó ra khỏi hàm.

Tôi làm cách nào để truy vấn trang web và nhận văn bản từ trang web?

Trả lời

9

Cách đơn giản nhất:

file_get_contents()

Điều đó sẽ giúp bạn có được nguồn của trang web.

Bạn có thể muốn một chút gì đó hoàn chỉnh hơn, vì vậy hãy xem xét cURL, để xử lý lỗi tốt hơn, và thiết lập tác nhân người dùng và những gì không.

Từ đó, nếu bạn chỉ muốn văn bản, bạn sẽ phải phân tích trang. Đối với điều đó, xem: How do you parse and process HTML/XML in PHP?

0

Bạn có thể sử dụng file_get_contents hoặc nếu bạn cần kiểm soát nhiều hơn một chút (tức là gửi yêu cầu POST, để đặt chuỗi tác nhân người dùng, ...) bạn có thể xem cURL.

file_get_contents Ví dụ:

$content = file_get_contents('http://www.example.org'); 

Basic cURL Ví dụ:

$ch = curl_init('http://www.example.org'); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3'); 

$content = curl_exec($ch); 

curl_close($ch); 
0

Nếu bạn đã cài đặt Curl, sử dụng nó. Nếu không:

$website = file_get_contents('http://google.com'); 

Sau đó, bạn cần phải tìm kiếm qua chuỗi cho văn bản bạn muốn. Cách bạn làm điều đó tùy thuộc vào trang web và văn bản bạn đang cố gắng đọc.

0

bạn cần sử dụng CURL. Bạn có thể lấy một số mẫu here

0

Nếu bạn muốn kiểm soát nhiều hơn, hãy sử dụng cURL. Nếu không: file_get_contents ..

$url = "http://www.example.com/test.php"; // Site URL. 
$site = file_get_contents($url);    // Gets site response. 
0

này có thể được thực hiện bằng cách tất cả các nội dung từ phương pháp sử dụng trang web đã được liệt kê ở trên và sau đó sử dụng regex để xóa tất cả các ký tự giữa dấu ngoặc mở và dấu đóng?

Một trang trông như thế này:

<html><style> h1 { font-style:... }</style><h1>stuff in here</h1></html> 

có sau đó trở thành này sau regex:

h1 { font-style:... }stuff in here 

Và bởi vì chúng tôi muốn loại bỏ tất cả các mã ở giữa nhiều thẻ như thẻ [style], sau đó chúng tôi có thể sử dụng regex lần đầu tiên để xóa tất cả các ký tự giữa [style và/style] để chúng tôi chỉ còn lại:

stuff in here 

Công việc này có hiệu quả không? Xin vui lòng trả lời nếu bạn nghĩ rằng nó sẽ hoặc nếu bạn thấy trước lỗi như tôi muốn tạo ra một công cụ với phân tích cú pháp này.

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