Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] - Ulepszenie funkcji wyszukującej, Dodanie RegEXP
Adi32
post 18.07.2012, 15:20:03
Post #1





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Witajcie.

Zrobiłem sobie kiedyś funkcję, która przeszukuje wszystkie pliki z katalogu w którym się znajduje i podrzędne w poszukiwaniu danej frazy,
po czym zwraca url do pliku, linie i wiersz. Jest przeogromnie przydatna szczególnie gdy pracuje się z obcym kodem.

W pewnym projekcie zostały naniesione zmiany w bazie danych, konkretnie w tabeli `config`.

Stara struktura czyli
id | wartosc
1 | To jest tytuł strony //tytuł
2 | Bardzo fajna strona // opis (description)
itd.

Nowa struktura:
key | value
title | To jest tytul
itd.

Rekordów jest sporo, projekt też nie mały, a zadaniem jest teraz poodmieniać wszystkie każde użycie klasy config z:
Config::get(1)
na
Config::get('title')

Tak na prawdę to trzeba tylko znaleźć wszystkie użycia metody Config::get() gdzie parametrem jest INT i zamienić na $c->title, $c->description itd;

Ten problem nasunął mi pomysł nadpisania funkcji, na pewno przyda się jeszcze w innych przypadkach.

Chyba nie ma sensu wklejać całej funkcji szukającej...

  1. <?
  2. if (stripos(file_get_contents($sciezka . $plik), $szukany_ciag) !== false) {
  3.  
  4. if ($linie = @file($sciezka . $plik)) {
  5.  
  6. foreach ($linie as $linia => $tresc) {
  7.  
  8. if ($pozycja = stripos($tresc, $szukany_ciag)) {
  9.  
  10.  
  11. ?>
  12. <tr title="<?=htmlspecialchars(trim($tresc))?>">
  13. <td><?= $sciezka ?><strong><?= $plik ?></strong></td>
  14. <td><?= ($linia + 1) ?></td>
  15. <td><?= $pozycja ?></td>
  16. </tr>
  17. <?
  18. flush();
  19. }
  20. }
  21. }
  22. }
  23. ?>


Chciałbym móc użyj jej w mniej więcej taki sposób:

  1. Config->get(/[0-9]?/)


Czy istnieje możliwość wprowadzenie do PHPowej wyszukiwarki wyrażeń regularnych?

Ten post edytował Adi32 18.07.2012, 15:47:34


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 17.06.2025 - 11:20