Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Link Checker
Forum - PHP - Link Checker

Avatar
fa1212 (Normal User)
Pro


Messaggi: 101
Iscritto: 09/10/2008

Segnala al moderatore
Postato alle 20:57
Giovedì, 07/04/2011
Ciao a tutti,
avevo pensato di costruire un piccolo programma in php che data una textarea piena di link, li verificasse (nel senso di vedere se il codice http è 202 e non 404) e ne facesse una lista in un'altra textarea.
Ora i problemi sono i seguenti:
ho butta to giù del codice ma non so come far eseguire il controllo dei link e redirigerne l'output nella textarea

Codice sorgente - presumibilmente Delphi

  1. <html>
  2. <head>
  3.         <title>Link Checker</title>
  4. </head>
  5. <body bgcolor="black">
  6. <h3><center><font color="white" style="font-family:Helvetica">Link Checker</fontC</center></h3>
  7. <br>
  8. <font color="red">Link  to check: (url of file es. http://www.mysite.com/file.rar)</font>
  9.         <form name="tocheck" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  10. <textarea rows="20" cols="50" onfocus="">
  11. </textarea>
  12.                 <input type="submit" value="Check"/>
  13.                 </form>
  14.         <br>
  15. <font color="lime">Link checked:</font>
  16.         <form name="checked" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  17. <textarea rows="20" cols="50" style="color:green" onfocus="">
  18. <?php echo $oki;?>
  19. </textarea>
  20.         <input disabled type="submit" value="Insert in Database"/>
  21.         </form>
  22. </body>
  23. </html>
  24. <?php
  25. $total=$_POST["textarea"];
  26. $arr=explode("\n",$total);
  27.  
  28. for($x=0;$x<count($arr);$x++){
  29.         echo $arr[$x];
  30. }
  31. ?>


Ultima modifica effettuata da fa1212 il 07/04/2011 alle 20:58


Vedi, non devi essere un bravo programmatore per creare un sistema come Linux, devi anche essere un bastardo.

Linus Torvalds
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 1:10
Venerdì, 08/04/2011
non ho capito cosa intendi per
(nel senso di vedere se il codice http è 202 e non 404)

PS:
sei il cugiono del ciaffo?
intendo il caffio supremo f1192 :-|


PM Quote
Avatar
fa1212 (Normal User)
Pro


Messaggi: 101
Iscritto: 09/10/2008

Segnala al moderatore
Postato alle 19:16
Venerdì, 08/04/2011
nel senso che controllando il link tengo solo quelli che danno come risposta http il codice 202 e non 404 (page not found), almeno, così ho pensato io...

mi dispiace deluderti ma non sono il cugino! xD


Vedi, non devi essere un bravo programmatore per creare un sistema come Linux, devi anche essere un bastardo.

Linus Torvalds
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 19:45
Venerdì, 08/04/2011
puoi usare diversi sistemi uno di questi è

Codice sorgente - presumibilmente Php

  1. function page_exists($url){
  2.   $parts=parse_url($url);
  3.   if(!$parts) return false; //Se l'url inserito e fatto a casaccio
  4.  
  5.   $ch = curl_init();
  6.   curl_setopt($ch, CURLOPT_URL, $url);
  7.  
  8.  
  9.   curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
  10.   curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
  11.  
  12.  
  13.   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  14.  
  15.  
  16.   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
  17.   curl_setopt($ch, CURLOPT_TIMEOUT, 20);
  18.  
  19.  
  20.   curl_setopt($ch, CURLOPT_NOBODY, true);
  21.   curl_setopt($ch, CURLOPT_HEADER, true);
  22.  
  23.   if($parts['scheme']=='https'){
  24.         curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  1);
  25.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  26.   }
  27.  
  28.   $response = curl_exec($ch);
  29.   curl_close($ch);
  30.  
  31.   if(preg_match('/HTTP\/1\.\d+\s+(\d+)/', $response, $matches)){
  32.         $code=intval($matches[1]);
  33.   } else {
  34.         return false;
  35.   };
  36.  
  37.   // Mostra se la pagina realmente esiste ritorna 200 altrimenti 400
  38.   return (($code>=200) && ($code<400));
  39. }




Altro modo più semplice

Codice sorgente - presumibilmente PHP

  1. $url = 'http://www.prova.it';
  2. $handle = @fopen($url,'r');
  3. if($handle !== false){
  4.    echo "Pagina Esiste"; //quindi 202
  5. }  else {
  6.    echo "Pagina Inesistente"; //Quindi 404
  7. }



PM Quote
Avatar
fa1212 (Normal User)
Pro


Messaggi: 101
Iscritto: 09/10/2008

Segnala al moderatore
Postato alle 20:41
Venerdì, 08/04/2011
grazie mille, ora ho però un problema, non riesco a recuperare tutti i link che inserisco nella prima textarea, vengono passati come post ma pare che il mio while non riesca a estrarli dall'array, che diamine di castroneria devo aver scritto? xD:pat:


Vedi, non devi essere un bravo programmatore per creare un sistema come Linux, devi anche essere un bastardo.

Linus Torvalds
PM Quote
Avatar
fa1212 (Normal User)
Pro


Messaggi: 101
Iscritto: 09/10/2008

Segnala al moderatore
Postato alle 22:29
Mercoledì, 13/04/2011
hoi raga, non so più dove sbattere la testa; non funziona nulla:
-l'html non invia i dati della textarea al php
-il php non divide le linee ricevute in un array

Perfavore, datemi una mano!


Vedi, non devi essere un bravo programmatore per creare un sistema come Linux, devi anche essere un bastardo.

Linus Torvalds
PM Quote