Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] - Ulepszenie funkcji wyszukującej, Dodanie RegEXP
Adi32
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Ale w czym konkretnie masz problem ?

Z tego co widzę, ten kawałek kodu szuka w której linii znaleziono "pociąg". Nie wiem jednak po co ten kod wkleiłeś... bo przecież Ciebie teraz to nie interesuje, po prostu chcesz zamienić pewien fragment kodu na inny fragment. Do tego możesz użyć preg_match().

A skoro masz strukturę plików (pewnie w jakiejś tablicy) to robisz pętlę i każdy plik traktujesz tą funkcją.

Mam wrażenie, że to co napisałem jest dla Ciebie oczywiste, więc może napiszesz dokładniej w czym problem ?

Ten post edytował peter13135 18.07.2012, 21:37:38
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 26.12.2025 - 13:15