2013-07-24 100 views
2

我有一個包含一些鏈接的pdf。鏈接不會像http://www.example.com/abcd.pdf。但有一些鏈接到某個網址的文字。我只是想提取該網址。我怎樣才能從PDF閱讀超鏈接使用PHP?

+1

您是否能夠從PDF文件中獲取文本?如果沒有,看看這個:http://stackoverflow.com/questions/1882318/search-through-pdf-files-with-php。之後,您可以使用REGEX在文本中搜索URL(例如)。 – Pieter

+0

我試着用其他pdf閱讀器。我正在獲取文本,但與文本關聯的鏈接(url)沒有得到。 – SHIN

+0

你想獲得鏈接? 'preg_match_all'什麼的?發佈您的代碼.. – Pieter

回答

0

沒有必要像我最初一樣單獨去pdf閱讀選項。我們可以通過fopen()方法或file_get_contents()方法簡單地閱讀pdf文件。

$pdf_content = file_get_contents($actual_pdf_file, true); 
    preg_match_all('/URI\(([^,]*?)\)\/S\/URI/', $pdf_content, $matches); 

我按照我的要求編寫了這個preg_match_all函數。每個鏈接都會有URI。

現在我們將得到如果在$匹配數組中的任何URL。我的情況這個URL是一個PDF下載鏈接。從鏈接下載PDF的代碼如下...

foreach($matches[1] as $pdfurl) 
    {  
    $CurlConnect = curl_init(); 
    curl_setopt($CurlConnect, CURLOPT_URL, $pdfurl); 
    curl_setopt($CurlConnect, CURLOPT_POST, 1); 
    curl_setopt($CurlConnect, CURLOPT_RETURNTRANSFER, 1); 
    @curl_setopt($CurlConnect, CURLOPT_POSTFIELDS, $request); 
    $Result = curl_exec($CurlConnect); 
    $new_down_pdf='new_pdf_name.pdf'; 
    file_put_contents($new_down_pdf,$Result); 
    }