| 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: 7 let
|
|||
0