RenePL
21.12.2004, 19:36:49
Witam mam zdanie a wyrazy są odczielone od siebie o różnych roztawach odzielone są spaciom Nie umiem tego w tym poscie zastosować ale zamiast kropek jest normalna przerwa jak w spaci np.
VAR1................VAR2...................................VAR3........VAR4
Jak w php usunąc te przerwny miedzy VAR
zeby uzyskac
VAR1VAR2VAR3VAR4 lub lepiej VAR1 VAR 2 VAR3 VAR 4 czy też dobrze było by
VAR1.VAR2.VAR3.VAR4
prosze o pomoc
sobstel
21.12.2004, 19:47:47
postaraj się jaśniej formułować problem. może ta funkcja pomoże
str_replace" title="Zobacz w manualu PHP" target="_manual ?
RenePL
21.12.2004, 21:18:47
No jasne że to dzieki ci bardzo!
crash
21.12.2004, 21:21:54
A ja pokochalem wyrazenia regularne wiec zaproponuje:
<?php
?>
sobstel
21.12.2004, 21:32:07
Cytat(crashu @ 2004-12-21 21:21:54)
A ja pokochalem wyrazenia regularne wiec zaproponuje:
<?php
?>
moim skromnym zdaniem wyrażenia regularne powinny być wykorzystywane tylko do rzeczy, których nie da się zrobić za pomocą string functions... a to z jednej prozaicznej przyczyny, wyr.reg. są po prostu wolniejsze.
crash
21.12.2004, 21:49:42
Wolniejsze o ile tysiecznych czy dziesieciotysiecznych sekundy?
A tak btw. to jak by to zrobic zwyklym str_replace() ?
sobstel
21.12.2004, 21:59:13
Cytat(crashu @ 2004-12-21 21:49:42)
A tak btw. to jak by to zrobic zwyklym str_replace() ?
zabierasz sie wyrazenia regularne a nie wiesz jak dziala jedna z podstawowych string functions? polecam manuala (
str_replace" title="Zobacz w manualu PHP" target="_manual). to naprawde swietna lektura. piszą tam tez cos o ereg_replace vs. str_replace.
crash
21.12.2004, 22:05:15
Nie nie nie, nie chodzi o rozumienie dzialania

Ale jak uzywajac tylko str_replace zamienisz duza ilosc spacji w ciagu na jedna?
sobstel
21.12.2004, 22:27:46
Cytat(crashu @ 2004-12-21 22:05:15)
Nie nie nie, nie chodzi o rozumienie dzialania

Ale jak uzywajac tylko str_replace zamienisz duza ilosc spacji w ciagu na jedna?
wlasnie, ze chodzi o rozumienie jej dzialania. gdybys rozumial to by nie bylo tego pytania. 2 razy polecałem manuala, to teraz już żywcem wkleje pierwsze zdanie z opsiu str_replace "Replace
all occurrences of the search string with the replacement string"
crash
21.12.2004, 22:55:21
Przestan cytowac swiety manual i sprawdz sam. Co zamienisz? Spacje spacją?
sobstel
21.12.2004, 22:56:55
Cytat(crashu @ 2004-12-21 22:55:21)
Przestan cytowac swiety manual i sprawdz sam. Co zamienisz? Spacje spacją?
1. zapytaj kolegi, ktory o to pytal i znalazl rozwiazanie swojego problemu.
2. zamienam spacje niczym.
crash
21.12.2004, 23:08:14
Ad. 1 Niewiadomo czy koledze udalo sie rozwiazac ten "problem", po prostu ucieszyl sie, ze jest funkcja robiaca 'replace'...
Ad. 2 Kasujac po prostu spacje nie rozwiazujesz tego trudnego zadania... Usuniecie spacji to to gorsze rozwiazanie, kolega wolalby jednak zamienic wiele spacji na jedna.
sobstel
21.12.2004, 23:11:36
Cytat(crashu @ 2004-12-21 23:08:14)
Kasujac po prostu spacje nie rozwiazujesz tego trudnego zadania... Usuniecie spacji to to gorsze rozwiazanie, kolega wolalby jednak zamienic wiele spacji na jedna.
rzucilem okiem na poczatek. no rzeczywiscie kolega najbardizej to by wolał zamienić na kropki (myślałem caly czas ze mowimy o tym pierwszym przypadku, Var1Var2Var3) i wtedy ereg_replace jest w sam raz.
RenePL
22.12.2004, 00:07:07
Chciałem aby zamiast { kropi to spacia} [..........] wstawil jeden element nie da się! za każdym razem jest zawsze tyle samo! jest jakis count w str_ co zamiast 10 spaci wstawi 1 spacie??
DeyV
22.12.2004, 09:25:02
Ale przecież tu już się pojawiła odpowiadź - wyrażenia regularne...
<?php
$tekst=' ale dziwny teskt s t';
?>
RenePL
22.12.2004, 13:05:15
[SQL]SUPER!! DZIAŁA DZIEKI!
rogrog
22.12.2004, 14:53:43
można to zrobić też za pomocą str_replace ale wątpię czy to by było optymalne rozwiązanie
<?php
$str = 'VAR1 VAR2 VAR3 VAR4 VAR5 VAR6 VAR7';
while ( false !== strpos( $str, ' ' ) ){ }
?>
działanie proste - dopóki występują jakieś podwójne spacje, każdą podwójną spację zamień na pojedynczą
crash
22.12.2004, 15:41:27
Ten temat sie ciagnie jakby takie zformatowanie ciagu bylo jakims niezwykle trudnym wyzwaniem. Odpowiedzi dobre byly juz pare razy podane wiec po co ciagnac ten temat...
rogrog: czytaj caly temat zanim cos piszesz, a nie tylko samo pytanie...
rogrog
22.12.2004, 17:07:30
@crashu: dla Twojej informacji dokładnie przeczytałem cały temat. I podałem ten krótki kod bo, mimo że rozwiązanie zostało już podane to były wątpliwości czy można to wykonać bez użycia wyrażeń regularnych, a za pomocą samego str_replace
Cytat(crashu)
A tak btw. to jak by to zrobic zwyklym str_replace() ?
Cytat(crashu)
Ale jak uzywajac tylko str_replace zamienisz duza ilosc spacji w ciagu na jedna?
w dwóch postach pytasz się jak to zrobić z pomocą str_replace - no więc nie wiem co Ci się nie podoba.
crash
22.12.2004, 18:19:09
No to ja juz nie wiem czy uzycie jednego malutkiego ereg_replace bedzie gorsze od, tak jak ty proponujesz, petli while, strpos i str_replace...
Cytat(crashu @ 2004-12-22 18:19:09)
No to ja juz nie wiem czy uzycie jednego malutkiego ereg_replace bedzie gorsze od, tak jak ty proponujesz, petli while, strpos i str_replace...
Rogrog pokazał, że da się to zrobić za pmocą str_replace i tyle. Ten post jest taki długi m.in. z powodu Twoich wypowiedzi... więc pretensje miej do siebie skoro przeszkadza Ci długość posta, a nie do innych.
sobstel
23.12.2004, 09:37:18
Cytat(sf @ 2004-12-22 20:01:10)
Rogrog pokazał, że da się to zrobić za pmocą str_replace i tyle.
sęk w tym ze nie jest to sposób skuteczny. jak udalo nam sie dojsc w dosc zywiolowej dyskusji str_replace mozna uzyc do zastapienia wszystkich spacji, ale zeby osiagnac efekt zastapienia wielu spacji pod rzad jedną spacją ereg_replace jest skuteczniejsze. metoda pokazana przez rogroga sypie się gdy liczba spacji jest parzysta, więc trudno na niej polegać.
podtrzymuje to co powiedziałem na początku. wyrażeń regularnych powinno się używac tylko wtedy gdy string functions zawodzą. jak uświadomił mi crashu w tym przypadku właśnie tak jest.
DavidPL
23.12.2004, 10:01:34
Cytat(sopel @ 2004-12-23 10:37:18)
metoda pokazana przez rogroga sypie się gdy liczba spacji jest parzysta, więc trudno na niej polegać.
A możesz pokazać w którym miejscu, bo ja nie mogę zauważyć błędów logicznych?
DeyV
23.12.2004, 10:17:35
1. metoda z while NIE sypie się, niezależnie od tego, ile jest spacji
2. ereg_replace jest skuteczne
3. preg_replace jest wydajniejsze
Koniec tematu.
Zachęcam tylko, by traktować innych z większym szacunkiem, pamiętając o tezie zawartej w mojej sygnaturce.
lock
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.