Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2302
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 :-|


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
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

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2302
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. }



https://mire.forumfree.it/ - Mire Engine
C# UI Designer
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:

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!

PM Quote