[ Príspevkov: 12 ] 
AutorSpráva
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Odstranenie nadbytocnych medzier, tabulatorov zo stringu....

Registrovaný: 01.05.05
Príspevky: 12425
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32

Riesim taku vec, ze chcem odstranit zo stringu nadbytocne medzery, tj. ked je v stringu dve a viac medzier, ci tabulator, alebo cosi podobne, chcem aby string vo vysledku vyzeral "nejaky text" takze tam bude len jedna medzera..., zaciatok a koniec stringu som zistil ze mozem osetrit cez trim(); ze mi odstrani odtial medzery, ako to spravit v stringu?


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 17.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...

Kód:
preg_replace_all("#(\s)\1+#", "$1", $text);

Cez reg. výrazy by to mohlo ísť takto nejako, len teraz už neviem presne či takto fungujú spätné odkazy v php. Proste metč na biely znak a za ním ďalší rovnaký s plusom (1 a viac výskytov). No a nahradíš tým metčnutým. Snáď by to mohlo fungovať :D


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Odstranenie nadbytocnych medzier, tabulatorov zo stringu....

Registrovaný: 01.05.05
Príspevky: 12425
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32

no toto mi moc nefunguje, na take nieco nie je funkcia priamo v php? lebo aspon mne pride celkom uzitocna taka funkcia, ci? guglim uz pol hodinu a mimo toho trim() som nenasiel nic, asi blbo hladam alebo co :lol:

// Spojený príspevok Sob 04.10.14 12:32

Boze, pridam sem zobrazovanie podobnych clankov a ani sa na ne nepozriem :) tu som to od Stenleyho nasiel ako na to odstranenie-medzier-vt90052.html#p789396


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 17.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...

Mne sa zdá, že som presne toto už raz riešil, ale s ľubovoľnými znakmi. Skús pohľadať v mojích príspevkoch. Po obede sa možno budem nudiť a vyskúšam to, zatiaľ sa potráp :P
//presne to som napísal, ale snažil som sa o všeobecný predpis pre biele znaky ;)

// Spojený príspevok Sob 04.10.14 15:15

A stačí to aj takto a funguje to :)
Kód:
$s = preg_replace( "#(\s)\s+#", "$1",  $text );


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Odstranenie nadbytocnych medzier, tabulatorov zo stringu....

Registrovaný: 02.06.08
Prihlásený: 19.07.16
Príspevky: 3330
Témy: 147 | 147
Bydlisko: Žilina / Os...
Vek: 24

Kód:
str_replace("  ", $string)
, pre tích, ktorý nevedia používať výrazi..to je aj v dokumentácií napísane :D takže to používam :D neviem či som sa trafil do parametrov, pozri php.net ;)


_________________
PC - ASUS M2N-MX Se+ | AMD X2 4200+ | 2GB RAM | Nvidia 8600GT | WD 320GB | 350W |NTB - ASUS K50AB SX-010 | | ASUS X550L | SteelSeries Mousepad | A4tech XL-750BF | HTC Explorer |
CCNA (640-802) |
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Odstranenie nadbytocnych medzier, tabulatorov zo stringu....

Registrovaný: 01.05.05
Príspevky: 12425
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32

BX píše:
Mne sa zdá, že som presne toto už raz riešil, ale s ľubovoľnými znakmi. Skús pohľadať v mojích príspevkoch. Po obede sa možno budem nudiť a vyskúšam to, zatiaľ sa potráp :P
//presne to som napísal, ale snažil som sa o všeobecný predpis pre biele znaky ;)

// Spojený príspevok Sob 04.10.14 15:15

A stačí to aj takto a funguje to :)
Kód:
$s = preg_replace( "#(\s)\s+#", "$1",  $text );

no hej, len to tvoje riesenie mi nefunguje a ani sa mi poprpavde nechce riesit preco, lebo mam plnu hlavu inych veci pri tom co sa snazim spravit, tak som pouzil to od stenleyho to mi ide, riesim registraciu a je chcem osetrit pole na nick/meno aby neobsahovalo nadbytocne medzery :) este ju asi pouzijem pri spravach, robim zoznamovaci portal www.qlp.sk a ani ma nenapada kde by som taku funkciu vobec potreboval, zas nie som nejaky profi koder, mam to len ako hobby, ale asi by som mal pozriet ako ta funkcia funguje, raz niekedy :-) ale dik aj ked teraz pzoeram ze tu si pouzil preg_replace ale predtym preg_replace_all, asi zato mi nefungovala kedze preg_replace_all neexistuje ako pozeram php.net :lol:


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 17.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...

Hej hej, preg_replace_all neexistuje, tiež som zistil :D Ale to posledné čo som napísal mne osobne funguje na všetky biele znaky.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Odstranenie nadbytocnych medzier, tabulatorov zo stringu....

Registrovaný: 01.05.05
Príspevky: 12425
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32

ja som skopcil celu funkciu aj sa mi zdalo ze _all som este nikdy nevidel, len som nepozrel php.net az teraz ked som mrkol tak som zistil ze taka funkcia neexistuje :) bez _all by asi robila to co stenleyho, ale tak to sa mi nechce ani riesit, pouzita je len pri registracii a spravy som este ani necazal programovat, takze to ani neriesim :)


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 28.11.17
Príspevky: 1178
Témy: 188 | 188

Kód:
preg_replace('/\s+/', ' ',$text);

+
Kód:
trim($text)


_________________
CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 17.12.17
Príspevky: 1433
Témy: 2 | 2
Bydlisko: Praha / Rev...

Daemon a co ti to tvoje urobí s newline? ;)


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1719
Témy: 0 | 0

Ak sa výsledok zobrazuje pomocou HTML, tak to nevadí, navyše ani ten tvoj kód by nefungoval správne (ak by boli pred prechodom na nový riadok aj medzery iného druhu). :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 28.11.17
Príspevky: 1178
Témy: 188 | 188

BX, Chrono: Dobra poznamka, nad tym som sa nezamyslal.
Uprimne, vedel som ze mi nieco unika pretoze to co som napisal je elementarny priklad googlitelny vsade.

Rozmyslam ako osetrit ten new line. Zalezi aj este od dalsich kriterii (moze sa na konci riadku nachadzat medzera a nasledne new line ?), avsak v zasade
by asi pomohlo nieco ako pisal BX, akurat pozmenene:
Kód:
$s = preg_replace( "#(\h)\h+#", "$1",  $text );

+
Kód:
$s = preg_replace( "#(\v)\v+#", "$1",  $text );


pricom ale toto je len od PHP 5.2.4 (zdroj), verzie pod jedine asi nejak zlozitejsie


_________________
CPU: Intel core i5 3470 GPU: Gigabyte N760OC-2GD MB: MSI B75A-G43 RAM: DDRAM3 8GB (2x4GB) TEAM RAM 1600MHz Elite Zdroj: Seasonic G Series 450W HDD: 500GB vybraty z notebooku Lenovo E531 i5-3230M N4IBPXS SSD:Samsung 840 Evo 250GB Case: Fractal Define R4 black pearl FAN: Cooler Master Hyper 212+ EVO DVD: SAMSUNG DVD±R/±RW/RAM SH-224DB SATA, černá, bulk OS: Ubuntu 12.04 64bit & Windows 7 Ultimate 64bit Monitor: Dell U2412m
 [ Príspevkov: 12 ] 


Odstranenie nadbytocnych medzier, tabulatorov zo stringu....



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

pridavanie medzier do stringu

v PHP, ASP

7

255

31.01.2009 21:38

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

odstranenie medzier

v PHP, ASP

4

653

23.04.2010 23:09

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

odstranenie medzier

v PHP, ASP

9

925

03.09.2008 17:14

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

odstranenie niekolkych medzier aby bola jedna

v Assembler, C, C++, Pascal, Java

4

350

11.01.2010 15:41

ado21

V tomto fóre nie sú ďalšie neprečítané témy.

Externý disk - cyklická kontrola nadbytočných údajov

v Pevné disky a radiče

5

724

04.04.2015 17:27

tatko Tom

V tomto fóre nie sú ďalšie neprečítané témy.

Cyklicka chyba nadbytocnych údajov minimalizovanie HDD

v Pevné disky a radiče

0

938

12.04.2012 20:02

kamo_444

V tomto fóre nie sú ďalšie neprečítané témy.

zalomenie textu bez medzier

v HTML, XHTML, XML, CSS

6

582

09.03.2009 21:13

pa3ck

V tomto fóre nie sú ďalšie neprečítané témy.

Zistenie poslednych 3ch medzier

v PHP, ASP

5

230

27.02.2009 12:10

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

Vynechanie medzier v reťazci

v Assembler, C, C++, Pascal, Java

2

389

31.01.2012 13:48

street_punk

V tomto fóre nie sú ďalšie neprečítané témy.

assembler, uz len zistit pocet medzier

v Assembler, C, C++, Pascal, Java

5

876

06.05.2010 7:27

coldak

V tomto fóre nie sú ďalšie neprečítané témy.

C++ kopirovanie stringu

v Assembler, C, C++, Pascal, Java

2

252

14.11.2012 18:09

faraon

V tomto fóre nie sú ďalšie neprečítané témy.

Dom z stringu

v JavaScript, VBScript, Ajax

3

231

16.03.2010 20:59

juho

V tomto fóre nie sú ďalšie neprečítané témy.

vycuc zo stringu

v PHP, ASP

4

305

24.05.2009 22:17

Blackdevil

V tomto fóre nie sú ďalšie neprečítané témy.

Pole do stringu

v PHP, ASP

3

252

10.03.2009 17:34

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

java - kontrola stringu

v Assembler, C, C++, Pascal, Java

15

457

16.12.2010 14:22

arnie16

V tomto fóre nie sú ďalšie neprečítané témy.

C - načítanie stringu

v Assembler, C, C++, Pascal, Java

14

1501

17.10.2010 21:33

remus



© 2005 - 2017 PCforum, edited by JanoF