![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 78 Pomógł: 4 Dołączył: 7.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam taki sktypt:
który dokonuje zamiany tekstu ($find) na inny ($code) w otwartym pliku ($file). I teraz wszystko działa dobrze dopóki w tekście do znalezienia ($find) nie znajdą się nowe linie (w sumie to nie wiem czy problemem są nowe linie czy tabulatory). "Wyechowanie" tego tekstu w <pre> pokazuje wszystkie linie i tabulatory normalnie. Do wczytywania pliku używam file_get_contents a do zapisywania file_put_contents. edit: Dopiero teraz się przyjrzałem i dochodzę do wniosku że to jednak nie str_replace może być powodem a raczej strpos, bo wyrzuca tego errora że tekst nie znaleziony (czyli idzie przez "else" ![]() Ten post edytował daris 3.02.2008, 17:01:53 -------------------- FluxBB - lekki i szybki skrypt forum | Polskie wsparcie FluxBB
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
który dokonuje zamiany tekstu ($find) na inny ($code) w otwartym pliku ($file). I teraz wszystko działa dobrze dopóki w tekście do znalezienia ($find) nie znajdą się nowe linie (w sumie to nie wiem czy problemem są nowe linie czy tabulatory). No ale co się wtedy dzieje...? i co do tego mają nowe linie i tabulatory...? |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 78 Pomógł: 4 Dołączył: 7.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
To że jak pisałem wyżej jeśli $find ma więcej niż jedną linię to zamiast przejść przez if'a to przechodzi przez else
![]() A tabulatory mogą mieć coś z tym wspólnego bo plikiem ($file) jest skrypt php (z wcięciami) A i jeszcze zapomniałem dodać że przed zamienieniem trim'uje $find'a (bo ma na początku i na końcu pustą linię) Ten post edytował daris 3.02.2008, 17:23:11 -------------------- FluxBB - lekki i szybki skrypt forum | Polskie wsparcie FluxBB
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
To że jak pisałem wyżej jeśli $find ma więcej niż jedną linię to zamiast przejść przez if'a to przechodzi przez else ![]() To nie jest odpowiedź na poziomie kodera php, no ale niech będzie... ![]() Tak bez sczegółów trudno powiedzieć... spróbuj użyć '!==' zamiast '!='... zapodaj też wartości zmiennych $file i $find... |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 78 Pomógł: 4 Dołączył: 7.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(nowotny) zapodaj też wartości zmiennych $file i $find... Z tym to będzie raczej problem bo to leci przez pętelkę ![]() To jest fragment pliku:
który parsuję wyrażeniami regualrnymi po kolei (numerkami), i każda "akcja" zostaje wykonywana. Wszystko działa dobrze dopóki w wykonywanym fragmencie (tylko FIND) nie znajdzie się więcej jak jedna linia (ale jak "wyechuje" fragment w <pre> to tekst zawiera i tabulatory i nowe linie). edit: W powyższym przykładzie możliwe że te \n\t... też przeszkadzają, ale dalej jak nie ma \n\t też nie działa (tylko wtedy kiedy jest więcej niż jedna linia) edit2: To wyrażenie regularne nie za każdym razem chce działać (na niektórych plikach działa a na niektórych nie):
Ten post edytował daris 3.02.2008, 18:11:37 -------------------- FluxBB - lekki i szybki skrypt forum | Polskie wsparcie FluxBB
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 11:19 |