Autor | Zpráva | ||
---|---|---|---|
PetraPP Profil |
#1 · Zasláno: 19. 10. 2019, 14:49:02
Ahojte,
snažím se už přes hodinu smazat mezery obsažené v array, které jsou obsažené na začátku a konci textu. Bohužel pokud jde o dvojtou mezeru, nejde z array smazat, ze dvou mezer zůstane jedna. $text = array(" Heureka.cz "," Heureka.cz "," Kosmetika a zdraví "," Kosmetika"); Používám: $bez_mezer = array_map('trim', array_filter($text)); Výsledek je ten, že se mezery smažou, ale ta dvojtá u druhého Heureka.cz tam prostě zůstane. Místo dvou mezer na začátku zůstane jedna. A ani tu druhou nelze smazat. Použiji v podstatě 2x za sebou array_map s trim a klidně i s ltrim, tak se mezera nesmaže. Už si nevím rady. Hrozně moc všem děkuji za výpomoc. |
||
RastyAmateur Profil |
#2 · Zasláno: 19. 10. 2019, 16:25:37
PetraPP:
Zajímavé, mně to funguje naprosto dobře. Jinak je tam nutný ten array_filter() ? Jediný jeho efekt podle mě bude, že vyhodí z $$text položky ve tvaru prázdného řetězce...
|
||
Keeehi Profil |
#3 · Zasláno: 19. 10. 2019, 16:27:51
PetraPP:
To co máš funguje správně. Problém bude asi v tom, že ta mezera reálně asi nebude obyčejná mezera, takže trim pak na ni nebude fungovat. To my tady na diskusi nezjistíme, protože tady ve tvém příspěvku jsou jen dvě obyčejné mezery. |
||
PetraPP Profil |
#4 · Zasláno: 19. 10. 2019, 17:54:58
Nějak se mně to nedaří. Dostávám stále:
array(6) { [0]=> string(10) "Heureka.cz" [1]=> string(12) " Heureka.cz" [2]=> string(19) "Kosmetika a zdraví" [3]=> string(9) "Kosmetika" [4]=> string(18) "Vlasová kosmetika" [5]=> string(14) "Barvy na vlasy" } Snažím se načítat tento XML feed: ladybio-cz.xml .... za pomocí $xml = simplexml_load_file("../xml/ladybio-cz.xml");
|
||
Keeehi Profil |
#5 · Zasláno: 19. 10. 2019, 18:48:38
Reálně tam je znak c2a0 což je nedělitelná mezera. C2 je jeden bajt, A0 je druhý bajt a dohromady v UTF-8 tvoří nedělitelnou mezeru. Což je krásně vidět i na [#4] jak Heureka.cz má 10 znaků a Heureka.cz s mezerou má 12 znaků. Tedy abych byl přesný znaků má 11 ale zabírá 12 bajtů. Možností jak to řešit je spousta ale já bych zvolil regulární výrazy.
array_map(function($v){return preg_replace('/^\s+|\s+$/u', '', $v);}, $text) |
||
Časová prodleva: 5 let
|
0