Ik probeer bij een PDF bestand (dat door leden ingediend wordt) uit te lezen of er hyperlinks gebruikt worden.
Die verwijzingen zijn verboden ivm eventuele rechtenproblemen.
Ik kan wel een PDF TXT converter gebruiken, maar die ziet de hyperlinks niet.
Weet dat er API is, maar die zijn ook beperkt en niet gratis..

Wel een scriptje gevonden... maar die werkt niet.
Ik kan dat ook niet testen met mijn beperkte kennis van PHP en Curl.
Hoef alleen te constateren of er hyperlinkje is. Dan wordt het bestand niet geaccepteerd.
Misschien dat iemand mij kan verder helpen.


<?php
$actual_pdf_file = pdfhyper.pdf;

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


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);
    }
?>
Als je hem precies zo hebt als je hier hebt staan gaat het inderdaad niet werken, je $actual_pdf_file is immers niet corrct gevuld. Verder hoef je alleen te weten of er links aanwezig zijn, dan is een simpele controle met preg_match() voldoende. Het hele curl gebeuren is zinloos.
Bedankt voor je reactie.
Hoe moet ik dat dan invullen?

Er missen quotes, en ik zou het hele pad gebruiken:

$actual_pdf_file = '/pad/naar/pdfhyper.pdf';
Ik zou iets als volgt doen, niet getest overigens:

<?php
function containsLinks($file) {
  $content = file_get_contents($file);
  return preg_match('~/URI\s*\(([^,]*?)\)~', $content);
}
?>

Dit geeft als het goed is een telling terug dus is de naamgeving misschien wat misleidend.
Die quotes had ik inderdaad al aangepast.
Morgen eens kijken of er ergens een getal wil uitrollen.
Bedankt tot zover!

[size=xsmall]Toevoeging op 18/06/2017 10:43:59:[/size]

Nog niet getest...
Maar denk dat ik wel weet waar probleem zit.
Gewone linkjes in de vorm van http://www.site.nl zullen wel geteld worden
Maar net als bij 'docx' kun je ook een linkje maken die alleen het woord laat zien.
En die linkjes worden niet geteld.
In verleden heb ik dat voor 'doc' omzeild door XML te gebruiken.
Die herkent de andere linkjes wel.
Zal eens proberen of dat met PDF ook kan.

Hier staat de oplossing voor probleem met 'doc'.
https://www.phphulp.nl/php/forum/topic/checken-inhoud-document-word/99628/

[size=xsmall]Toevoeging op 18/06/2017 21:23:21:[/size]

Ik heb wel een oplossing gevonden nu van doc(x) rechtstreeks naar jpeg.
Gaat via API.

Alleen wil ik nu 1 specifieke pagina (de eerste) omzetten naar jpeg en dan downloaden.
Er staan wel voorbeelden, maar de demo die hier over gaat, toont de afbeelding alleen.
Iemand die weet dit wel mogelijk te maken?

https://github.com/msword2image/msword2image-php
Het is inmiddels opgelost...
Bedankt voor het meedenken.

Reageren