Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomocy!
Forum PHP.pl > Forum > PHP
Mac
Mam pytania:
1. Jak można zrobić (moze byc w php) program (skrypt), który pobierze (wejdzie) na strone sprawdzi w źródle czy jest tam okreslony znacznik (fragment tekstu).
2. Później całość (strone,jeden znacznik,drugi znacznik (bo skrypt powinien pobierac dwa znaczniki)) zapisze do pliku.

PS Nie wiem czy dość dobrze wytłumaczyłem o co mi chodzi, ale mam nadzieje, że rozumiecie.

Z góry dzięki.
Seth
Mozna by zastosowac funkcje fopen() i pobrac caly plik przez podanie sciezki jako http://... A potem wyszukac w pobranym tekscie dany string i jezeli zostanie znaleziony to zapisac text do pliku
kryr
Jezeli chcesz pobrac strone i zamienic literki a na o to powinienes zrobic to przez fopen()
Jezeli chodzi o uzywanie "szablonow" z layoutem strony, to mozliwosci jest wiecej ... mozna uzyc na przyklad funkcji XSLT.
Wiec co dokladnie chcesz zrobic?
Mac
Chodzi mi oto żeby mieć taką prosta wyszukiwarke. Na stronie wpisywało by się adres swojej strony i naciskało zarejestruj i wtedy php by wchodziło (otwierało) plik (stronę) i pobierało <META NAME="Keywords" CONTENT="cos,tam,cos tam"> i <META NAME="Description" CONTENT="Jakis opis!"> i zapisywało do pliku (z którego by wyszukiwarka (skrypt wyszukujący) pobierał dane do wyszukiwania stron).
Z góry dzięki. smile.gif
Seth
Do odczytywania meta znacznikow uzyj funkcji get_meta_tags ()
Wiecej informacji o funkcji pod adresem: pl.php.net/manual/pl/function.get-meta-tags.php
Mac
Cytat
Do odczytywania meta znacznikow uzyj funkcji get_meta_tags ()
Wiecej informacji o funkcji pod adresem: pl.php.net/manual/pl/function.get-meta-tags.php

Dzięki poszukam (sprawdze :wink: )! smile.gif
Mac
Sprawdziłem manuala i nie rozumiem jak ta funkcja (get_meta_tags()) działa. Mógłbyś mi podać jakiś przykład zastosowania(jakiś fragment kodu, który by pobierał z jakieś strony meta tag)? smile.gif
Z góry dzięki smile.gif
Seth
Kod
Plik HTML:

...

<meta name="keywords" content="jakis text">

<meta name="author" content="jakis autor">

...



Skrypt php:

$meta_tags = get_meta_tags("jaksi_url/jakas_strona.html");

echo $meta_tags['keywords'];   // Wynik: jakis text

echo $meta_tags['author'];     // Wynik: jakis autor
Mac
Cytat
Kod
Plik HTML:

...

<meta name="keywords" content="jakis text">

<meta name="author" content="jakis autor">

...



Skrypt php:

$meta_tags = get_meta_tags("jaksi_url/jakas_strona.html");

echo $meta_tags['keywords'];   // Wynik: jakis text

echo $meta_tags['author'];    // Wynik: jakis autor

WIELKIE DZIĘKI :!: :!: :!:
steru
Cytat
Kod
Plik HTML:

...

<meta name="keywords" content="jakis text">

<meta name="author" content="jakis autor">

...



Skrypt php:

$meta_tags = get_meta_tags("jaksi_url/jakas_strona.html");

echo $meta_tags['keywords'];   // Wynik: jakis text

echo $meta_tags['author'];     // Wynik: jakis autor

wszystko niby fajnie, ale ta funkcja jest strasznie kulawa. Jezeli na stronie jest Keywords (z duzej litery) a w skrypcie dasz $meta_tags['keywords'] to qpa. odwrotnie oczywiscie tez
Keywords. keywords, KEYWORDS ,KeYwOrDs - nie wiadomo jak pacjent to napisze sad.gif
Mac
Cytat
Cytat
Kod
Plik HTML:

...

<meta name="keywords" content="jakis text">

<meta name="author" content="jakis autor">

...



Skrypt php:

$meta_tags = get_meta_tags("jaksi_url/jakas_strona.html");

echo $meta_tags['keywords'];   // Wynik: jakis text

echo $meta_tags['author'];     // Wynik: jakis autor

wszystko niby fajnie, ale ta funkcja jest strasznie kulawa. Jezeli na stronie jest Keywords (z duzej litery) a w skrypcie dasz $meta_tags['keywords'] to qpa. odwrotnie oczywiscie tez
Keywords. keywords, KEYWORDS ,KeYwOrDs - nie wiadomo jak pacjent to napisze sad.gif

Też się o tym przekonałem (próbowałem nawet z if zrobić "zabezpieczenie" przed różnymi "rodzajami" keywords-ów) to "zabezpieczenie miało działać na zasadzie mniej więcej takiej:
Gdy zmienna przyjmujaca keywords-y była pusta to zmieniał get_meta_tags() z "keywords" na "Keywords" ale to nie działało. sad.gif Ale ustawiłem ostatecznie na "Keywords", bo mam wrażenie, że na "większości" :wink: stron jest "Keywords", a nie "keywords" (ale do końca nie wiem) smile.gif
castor
Napisalem cosik, poniwez na wyrazeniach regularnych nie znam sie zabardzo wiec poszedlem inna droga :wink:

FUNKCJA WYCIAGAJACA Z META TAG name i content:

Kod
function wybierz_meta_tagi($adres){

    function wyczysc_tagi($arg){

        $arg=str_replace(""","",$arg);

        $arg=str_replace("=","",$arg);

        $arg=str_replace(">","",$arg);

        return $arg;

    }

    

    $meta_tags=array();

    $meta_tmp="";

    $fp=fopen($adres,"r");

    while($bf=fgets($fp,1024)){

      $bf=strtolower($bf);

      if(substr_count($bf,"meta")!=0){

         $meta_tmp.=chop($bf);

      }

    }

    fclose($fp);  

    $meta_tmp=split("<",$meta_tmp);

    for($i=0;$i<count($meta_tmp);$i++){

      if(eregi("name(.*) content(.*)", $meta_tmp[$i], $rgs)){

          $rgs[1]=wyczysc_tagi(str_replace(" ","",$rgs[1]));

          $rgs[2]=wyczysc_tagi($rgs[2]);

          $meta_tags[$rgs[1]]=$rgs[2];

      }

    }

    if(count($meta_tags)==0){

      $meta_tags=FALSE;  

    }  

    return $meta_tags;

}


funkcja zwraca tablice asocjacyjna jesli plik zawiera meta tagi a jesli nie to zwroci nam FALSE

meta tag musi zawierac name czyli tego tagu nie wezmie pod uwage:
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=iso-8859-2">

A tak mozemy to sprawdzic:
Kod
<?php

$tagi=wybierz_meta_tagi("http://ygreg.com/");





//----teraz zobaczymy co nam wydalo---/

if($tagi){

   foreach($tagi as $k => $v){

     echo "$k = $v <br>n";

   }

}else{

   echo "BRAK";

}



?>
castor
ahhha i nie wazne czy tagi sa z malej czy z duzej czy nawet tak:
<MeTa NAME=author content=CASTOR>
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.