Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyszukiwanie.
Forum PHP.pl > Forum > PHP
kamilos809
Cześć!
Mam takie pytanko:
Da się załadować tak na oko licząc 3-4 linijki pliku i sprawdzić czy zawierają one jakiś ciąg wyrazów?
i drugie pytanko, mam nadzieje, że proste:
Jak mogę sprawdzić, czy jakiś tam wyraz jest adresem e-mail?

CuteOne
sprawdź preg_match() i preg_match_all() co do maila to google -> preg_match email
suchyMTW
co o adresu e-mail:
  1. filter_var($mail, FILTER_VALIDATE_EMAIL)
CuteOne
cały tekst będziesz validował.. ?
suchyMTW
o tym nie pomyślałem smile.gif wtedy preg_match_all('/[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}/', $plik, $maile);
kamilos809
Dzięki bardzo wink.gif. Ale źle sprecyzowałem pytanie nr. 1 :/. Miało ono wyglądać tak:
Jak załadować w pliku np. szukam.php kilka linijek pliku wyrazy.php i wyszukać czy jest w nich zawarty wyraz "lala" ?
Tak powinno brzmieć poprawnie
CuteOne
$file = file_get_contents('wyrazy.php');
// preg_match
vee
Nie rozumiem po co chcecie pchać tam wyrażenia regularne.

W PHP istnieje funkcja, służąca do sprawdzenia, czy w danym ciągu znaków znajduje się inny (stóg siana i igła smile.gif ):
  1. if(strpos($stogSiana, $igla) !== false)
  2. {
  3. echo 'Znalazłem igłę w stogu siana.';
  4. }
kamilos809
Vee, widziałem już tą funkcję... Ale następnym razem przeczytaj o co chodzi... Bo Twoja funkcja nie odnosi się do innych plików ^^. CuteOne odpowiedział mi dosłownie najlepiej smile.gif
vee
  1. $stogSiana = file_get_contents('plik');

Wciąż nie rozumiem po co zaprzęgać wyrażenia regularne...


EDIT:
Uzasadnię nawet swój upór do unikania preg_match: WYDAJNOŚĆ. Dopóki wyszukujesz frazę w małych plikach - wszystko jest ok. Problem zaczyna się kiedy preg_match musi przemielić cały plik. Dużo wydajniejszym i szybszym rozwiązaniem wtedy, jest strpos.

Pozdrawiam.
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.