Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Wyszukiwanie wyrazow w pliku tekstowym
Forum PHP.pl > Forum > Przedszkole
lukash82
Witam. Mam dosc obszerny plik z roznymi danymi do pszeszukania. Chcialbym z tego chaosu wydobyc wszystkie adresy mailowe. Napisalem cos takiego narazie:
  1. <?php
  2. $plik = fopen("test.txt","r");
  3. $pobrany_plik = fread($plik,10000);
  4. fclose($plik);
  5. $szukany = '^*[@]$';
  6. if (ereg($szukany, $pobrany_plik)) {
  7. echo " $szukany"."<br/>";
  8. } else {
  9. echo "NIE ZNALEZIONO";
  10. }
  11. ?>

Ale niestety wywala mi blad

Warning: ereg(): REG_BADRPT: in c:\usr\krasnal\www\inne\nowy.php on line 6

w warunku do wyszukiwania. Czytalem troche o wyrazeniach regularnych ale nie wiem co moze byc w tym warunku zle:/ Probowalem tez z funkcja preg_match ale tam mam problem z wymysleniem warunku bo co nie wpisze to wywala mi jakis blad, ze nie zna jakiegos symbolu w warunku...
  1. <?php
  2. $plik = fopen("test.txt","r");
  3. $pobrany_plik = fread($plik,10000);
  4. fclose($plik);
  5. preg_match ("^*[@]$", $pobrany_plik, $znalezione);
  6. echo $znalezione[0];
  7. ?>

Moze Wy wiecie jaki warunek zadeklarowac, zeby zaczelo to wreszcie dzialac? Pozdrawiam, Łukasz
pawel81
zastąp tym
  1. <?php
  2. "^.+@.+..+$"
  3. ?>
lukash82
No niestety, nie dziala:/ Ereg wywala taki tekst:

ZNALEZIONO: wyraz '^.+@.+\..+$'

a preg_match taki blad:

Warning: No ending delimiter '^' found in ...
b_chmura
To Tym biggrin.gif
Kod
"/([a-zA-Z0-9._-]+@[a-zA-Z0-9-_]+\.[a-zA-Z0-9]{2,4})/"
lukash82
Ok. Ten warunek dziala z preg_match. Ale pojawil sie kolejny problem bo znajduje mi tylko pierwsze wystapienie wyrazu zawierajacego @ i dalej juz nie leci. Probowalem rozbic ten wynik funkcja foreach:
  1. <?php
  2. $plik = fopen("test.txt","r");
  3. $pobrany_plik = fread($plik,10000);
  4. fclose($plik);
  5. preg_match ("/([a-zA-Z0-9._-]+@[a-zA-Z0-9-_]+.[a-zA-Z0-9]{2,4})/", $pobrany_plik, $znalezione);
  6.  // echo $znalezione[0]; 
  7. foreach ($znalezione as $files)
  8. {
  9.  echo $files;
  10. }
  11. ?>

ale chyba przedobrzylem. Z tego co widze funkcja preg_match wypelnia mi tak jakby pierwszy indeks tablicy i wiecej wynikow juz nie szuka w pliku zrodlowym. Macie pomysl jak to zapetlic zeby przeszukalo caly plik? 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.