Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: phpman 21. 01. 2018, 17:22:04
-
Ahoj, jak můžu odstranit v proměnné nadbytečné mezery?
zdroj
$_POST['str'] = ' nejaky text ';požadovaný výsledek
$_POST['str'] = 'nejaky text';Našel jsem funkci trim(), která umí odstranit pouze krajní mezery. Díky za tip
-
proč si řikáš "phpman" a přitom php očividně vůbec neumíš? :) Dokonce ani neumíš používat dokumentaci? Bez urážky, ale takhle se budeš na vše pořád ptát a nic neuděláš.
začal bych primitivní variantou, někdo určitě poradí elegantnější řešení:
$str = ' nejaky text ';
var_dump(trim(preg_replace('/\s+/', ' ',$str)));
-
mozno skor ~\s{2,}~ nech to zbytocne nenahradzuje, miesta ktore maju menej ako 2 medzery... btw, bacha toto nahradi aj ostatne whitespace znaky.
-
DW: díky, jsem si vědom těhle nedostatků, stejně tak toho, že ne všechny neviditelné znaky to chytne (např. chr(11)). Možná by stačilo chytat pouze mezeru. Začal jsem původně všechny tyhle věci řešit, vč. počátečních a konečných mezer, kombinace více druhů netiskutelných znaků za sebou až jsem ten složitý regulár smazal a napsal tu nejjprimitivnější verzi a čekám, že autor upřesní zadání :).
Nebo existuje v php něco vhodnějšího? Rozdělení na pole a jeho filtrování za vhodnější nepovažuji, ale takové žešení jsem už také viděl.
-
Odpověd jsi už dostal. Není mi však jasné, proč se to snažíš nacpat zpátky do $_POST. To pole by mělo být pouze pro čtení. Jeho modifikace je neefektivní a nebezpečná.