Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [meta] testing
Forum PHP.pl > Inne > Oceny
lenczewski
nie wiem czy wybrałem dobry dział, ale czy moglibyście pomóc mi w pzetestowaniu skryptu:
http://meta.rutkatartak.info/index.php

Czyta on stronę, a następnie wyszukuje tytul, opis i słowa kluczowe na stronie.
chciałbym dowiedzieć się na jakie błędy może być narażony (np. wpisywany adres z http:// lub bez, znacznik <title> lub <TITLE> itp.), czy działa na wszystkie strony czy z jakimiś są problemy.

użycie:

http://meta.rutkatartak.info/index.php/google.pl
kszychu
Przenoszę. Daj przynajmniej podgląd kodu.
dr_bonzo
Opisalbys wyswietlane dane: ktore to tytul, slowa kluczowe itd.
lenczewski
Poniżej załączam klasę (moja pierwsza w zyciu, wiec błedów zapewne masa).

  1. <?php
  2. class meta
  3. {
  4. var $adres;
  5. var $description;
  6. var $keywords;
  7. var $title;
  8.  
  9.         function ADR($adres)
  10.          {
  11.             if(!ereg('^http://', $adres))
  12.             $this->adres = "http://" . $adres;
  13.          }
  14.  
  15.         function VIEW($co)
  16.          {
  17.             $tmp = htmlspecialchars($this->$co);
  18.             if(!empty($tmp)) echo $tmp . "n";
  19.             else echo " ";
  20.          }
  21.      
  22.  
  23.         function IF_EXISTS($adres)
  24.          {
  25.             if(!@fopen($adres, 'r'))
  26.             die("Page not found.nUsage: http://meta.rutkatartak.info/index.php/google.com");
  27.          }
  28.      
  29.  
  30.         function META_TAGS($what)
  31.          {
  32.             $tags = get_meta_tags($this->adres);
  33.             $this->$what = $tags[$what];
  34.             $this->VIEW($what);
  35.          }
  36.     
  37.     // WYSZUKUJE TYTUL STRONY
  38.     
  39.         function TITLE()
  40.          {
  41.  
  42.             $plik = @fopen($this->adres, r);
  43.         
  44.             $q_title_start = "<title>";
  45.             $q_title_end   = "</title>";
  46.         
  47.             $all_data = "";
  48.             
  49.             for($i=1;$i<=100;$i++)
  50.             {
  51.                 $dane = @fgets($plik);
  52.         
  53.                 if(stristr($dane, $q_title_start))
  54.                  {
  55.                   $all_data .= $dane;
  56.                   # echo "STARTn";
  57.                        if(stristr($dane, $q_title_end))    break;
  58.                        else
  59.                         {
  60.                             for($i;$i<100;$i++)
  61.                              {
  62.                                 $dane = @fgets($plik);
  63.                                 if(stristr($dane, $q_title_end))
  64.                                  {
  65.                                     $all_data .= $dane;
  66.                                     # echo "ENDn";
  67.                                     break;
  68.                                  }
  69.                                 else
  70.                                  {
  71.                                     $all_data .= $dane;
  72.                                     # echo "NEW LINEn";
  73.                                  }
  74.                               }
  75.                         }
  76.                  }
  77.             }
  78.     
  79.         
  80.             $all_data = ereg_replace("(rn|n|r)", " ", $all_data);
  81.             $all_data = ereg_replace("(  |    )", "", $all_data);
  82.         
  83.                 if(!strstr($all_data, $q_title_start))
  84.                  {
  85.                     $q_title_start = strtoupper($q_title_start);
  86.                  }
  87.         
  88.             $all_data=split($q_title_start,$all_data);
  89.             $all_data=split("</",$all_data[1]);
  90.         
  91.             $all_data[0] = trim($all_data[0]);
  92.         
  93.             if(strlen($all_data[0]) > 47) { $all_data[0] = substr($all_data[0], 0, 47); $all_data[0] .= "..."; }
  94.             $this->title = $all_data[0];
  95.         
  96.             $this->VIEW("title");
  97.          }
  98. }
  99. ?>
Spirit86
Cześć, jak na razie znalazłem takie bugi:
1) Bug, jak ktoś wpisze adres:
index.php/jakis_link/jakis_katalog/
skrypt nie działa. Tak samo będzie się działo z kontami typu:
localhost/~jakisnick/
itd.
2) Daj inputa, zamiast ręcznego wpisywania zmiennych winksmiley.jpg.
yavaho
Nie rozpoznaje polskich liter na stronnach, które mają kodowane inne niz iso-8859-2
Powinienes zrobic konwersje znakow przynajmniej jeszcze z 2 standardow ktore sa stosowane:
utf-8
windows-1250
lenczewski
dobra z tym katalogiem, to jak wyłapać stronę? Przecież nie zawsze jest html (php, php3, shtml, asp, ... i setki innych).

Macie może jakieś pomysły na optymalizację kodu?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.