2013-07-24 3 views
2

У меня есть pdf, который содержит некоторые ссылки. Ссылка не будет http://www.example.com/abcd.pdf. но есть некоторый текст, который связан с некоторым URL-адресом. Я просто хочу извлечь этот URL.Как я могу прочитать гиперссылку из pdf, используя php?

+1

Вы еще можете получить текст из файла PDF? Если нет, посмотрите на это: http://stackoverflow.com/questions/1882318/search-through-pdf-files-with-php. После этого вы можете искать в тексте URL-адреса с REGEX (например). – Pieter

+0

Я пробовал с другим PDF-ридером. Я получаю текст, но ссылка (url), связанная с текстом, не получается. – SHIN

+0

Что вы пытаетесь получить? 'preg_match_all' или что-то еще? Отправьте свой код .. – Pieter

ответ

0

Нет необходимости искать PDF-параметры для чтения отдельно, как я сделал на начальном этапе. Мы можем просто прочитать pdf-файл методом fopen() или file_get_contents().

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

Я написал эту функцию preg_match_all в соответствии с моим требованием. URI будет доступен для каждой ссылки.

Теперь мы получим URL-адреса, если они есть в $ match array. В моем случае этот 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); 
    } 
Смежные вопросы