Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sprawdzanie obecności ciągu znaków
Forum PHP.pl > Forum > Przedszkole
kryka34
Witam

Przeszukałem forum, i to i inne też, i nawet guglowałem i nic :/

chodzi mi o skrypt sprawdzający obecność linka na innej stronie,

$www = "http://www.onet.pl"
$recurl = "http://www.wp.pl"

czy na stronie $www
jest link (ciąg znaków) $recurl

jeśli tak to "OK"
jeśli nie to "Brak !"

niestety nie jestem fenomenem w php i potrafię sobie dać z tym rady,
jeśli ktoś już robił coś takiego to prosiłbym o kod,

z góry wielkie dzięki smile.gif
acztery
  1. public function ver($_url,$_string)
  2. {
  3. header('Content-type: text/html; charset=utf-8');
  4. $c = curl_init();
  5. curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0");
  6. curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  7. curl_setopt($c, CURLOPT_URL, $_url);
  8. curl_setopt($c, CURLOPT_HEADER, 1);
  9. curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
  10. curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
  11. curl_setopt($c, CURLOPT_SSL_VERIFYPEER, FALSE);
  12. $contents = curl_exec($c);
  13. curl_close($c);
  14. $_string2 = str_replace("www.", "", $_string);
  15. $pos2 = strpos($contents,$_string2);
  16. $pos = strpos($contents,$_string);
  17. if ($pos !== false) {
  18. return true;
  19. } elseif ($pos2 !== false) {
  20. return true;
  21. }else{
  22. return false;
  23. }
  24. }
  25.  
  26.  
  27. $aa = $scane->ver(trim($a[$i_]['url']),trim($a[$i_]['S2']));
  28. if ($aa != false) {
  29. //ok
  30. }else{
  31. //bad
  32. }
gr56
  1. if(strpos(file_get_contents($www), $recurl) === true)
  2. echo "ok";
  3. else
  4. echo "brak";
kryka34
Pierwszy skrypt mnie przerasta, chodzi o późniejszą zabawę z tym skryptem, drugi jest czytelny ale :

  1. $www = 'http://www.onet.pl';
  2. $recurl = 'http://www.onet.pl';
  3.  
  4. if(strpos(file_get_contents($www), $recurl) === true)
  5. echo "ok";
  6. else
  7. echo "brak";


nie działa, w co nie chce mi się jakoś wierzyć :/
acztery
kryka34 co Cie w nim przerasta to jest funkcja

  1. $aa = ver('adres gdzie ma szykać','to czego ma szukać np adres');
  2. if ($aa != false) {
  3. //ok
  4. }else{
  5. //bad
  6. }



przykład gr56 może nie działać nie nie każdy serwer pozwala na takie rzeczy. to co ja pokazałem zadziała wszędzie . Korzystam z tego przy dużym panelu reklamowym.

rzecz jasna to wycinek klasy .. więc w tym przypadku bez $scan->
Crozin
@kryka34: Powinieneś sprawdzać czy wynik strpos jest różny od false, ew. większy od zera: strpos(...) !== false. Ta funkcja nigdy nie zwraca boolean'owskiego true.
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.