![]() |
![]() ![]() |
![]() |
![]()
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...
Chciałbym móc użyj jej w mniej więcej taki sposób:
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...
|
|
|
![]()
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 -------------------- :)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 348 Pomógł: 26 Dołączył: 8.10.2008 Skąd: Lublin 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 ? Ano jest to oczywiste. Mam wyszukiwarke, szuka w we wszystkich plikach PHP wpisanego ciągu. Chciałbym w tej wyszukiwarce uwzględnić wyrażenia regularne. -------------------- Wolałem języki z rodziny C ale poszedłem na łatwizne...
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
No to wyrażenie regularne w Twoim przypadku może być takie :
-------------------- :)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 348 Pomógł: 26 Dołączył: 8.10.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Nie dokładnie o to chodziło, w każdym razie rozwiązanie było proste i funkcja działa doskonale.
Jeżeli ktoś byłby nią zainteresowany to mogę się podzielić. Funkcjonalność to po prostu przeszukanie wszystkich plików na serwerze i ich zawartości w poszukiwaniu danej frazy z możliwością używania wyrażeń regularnych. + zabezpieczenie hasłem, ograniczenie do konkretnego rozszerzenie, sprecyzowanie miejsca wyszukiwania. -------------------- Wolałem języki z rodziny C ale poszedłem na łatwizne...
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Czy istnieje szczególny powód dla którego chcesz to robić z poziomu PHP?
Każdy szanujący się edytor tekstowy ma taką funkcję. Ten post edytował wNogachSpisz 19.07.2012, 10:40:37 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 348 Pomógł: 26 Dołączył: 8.10.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Już wyjaśniam.
Jak napisałem wcześniej, przydaje się w przeszukiwaniu obcego kodu. W mojej firmie jest przymus pracy z PsPadem, który nie posiada takich opcji. Mimo wszystko korzystam z NetBeansa ale żeby przeszukiwać pliki na obcym serwerze muszę najpierw przeprowadzić integrację co trwa dość długo, jest bez sensu jeżeli trzeba zmienić jedną rzecz w jednym pliku, a co najgorsze NetBeans ma buga który przy takiej integracji losowo kasuje pliki na serwerze. Dlatego czasami lepiej jest wrzucić na serwer jeden plik i odpalić. -------------------- Wolałem języki z rodziny C ale poszedłem na łatwizne...
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 279 Pomógł: 60 Dołączył: 25.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
W mojej firmie jest przymus pracy z PsPadem ?!?!?!?!?!? niech mnie ktoś uszczypnie, bo chyba śnię... owszem, uważam PSPad za super edytorek, znacznie lepszy od jakichkolwiek innych tego typu małych, podręcznych programików (bije notatnik++ na głowę), szczególnie z uwagi na dostępność mnóstwa gotowych, świetnych rozszerzeń do niego i możliwość łatwego pisania własnych w javascript albo visual basicu, ale W mojej firmie jest przymus pracy z PsPadem WTF!? ![]() -------------------- there is much to be learned
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 348 Pomógł: 26 Dołączył: 8.10.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Wolałem języki z rodziny C ale poszedłem na łatwizne...
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli zdalny serwer o którym piszesz stoi na Linuksie albo innym w miarę zgodnym z POSIX i masz dostęp przez ssh to możesz użyc dostępnych tam narzędzi, które będą wydajniejsze od skryptu PHP. Zresztą, jak możecie mieć coś na zdalnym serwerze a nie mieć tego lokalnie? Jak się wysypie wam serwer razem z backupem (zakładając, że macie takowy), to co? Klepanie od nowa?
-------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 348 Pomógł: 26 Dołączył: 8.10.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli zdalny serwer o którym piszesz stoi na Linuksie albo innym w miarę zgodnym z POSIX i masz dostęp przez ssh to możesz użyc dostępnych tam narzędzi, które będą wydajniejsze od skryptu PHP. Zresztą, jak możecie mieć coś na zdalnym serwerze a nie mieć tego lokalnie? Jak się wysypie wam serwer razem z backupem (zakładając, że macie takowy), to co? Klepanie od nowa? Nie mi to trzeba tłumaczyć... A co do wydajności to też nie narzekam, skrypt nigdy nie szukał dłużej niż kilka sekund. -------------------- Wolałem języki z rodziny C ale poszedłem na łatwizne...
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 709 Pomógł: 176 Dołączył: 24.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Trochę offtopując, ktoś wspomniał o Bugu w NB kasującym pliki przy synchronizacji. Jest gdzieś to na bug tracku ? bo kurcze ostatnio mi poginęły pliki projektu i się zastanawiałem gdzie leży problem
![]() Co do samego tematu, narzędzie jak narzędzie jednym się przyda innym nie. Oczywiście fajnie jest mieć dostęp przez ssh jednak nie zawsze jest to możliwe. Z drugiej strony brak kopii lokalnej może być przyczyną ekstremalnych przygód ![]() -------------------- http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 348 Pomógł: 26 Dołączył: 8.10.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Było gdzieś coś, nawet pisali, że w nowej wersji buga już nie ma. Ale to nie prawda, NB i tak kasuje pliki.
-------------------- Wolałem języki z rodziny C ale poszedłem na łatwizne...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.06.2025 - 20:14 |