Jsou tam i jiné prohřešky, pokud se nemýlím. Např. tohle:
"Vystupni soubor:".$jmenoOut
by mělo být buď s jednoduchými závorami nebo se proměnou zasazenou do textu. Pokud vím, php parsuje \" při hledání všemožných vložených features, např. \\n, použitím \' php bere string jako pouze string, takže buď
"Vystupni soubor: {$jmenoOut}";
sprintf('Vystupni soubor: %s', $jmenoOut);
nebo
'Vystupni soubor: ' . $jmenoOut;
20. 10. 2021, 13:16 editováno autorem komentáře
A ja bych doplnil, ze i tak jste tam zanechal z meho pohledu puvodni autorovu chybu.
Ta oddelovaci dvojtecka vcetne mezery by v tom retezci byt nemela. Oddelovac by mel byt definovany predem, ne podle toho, jak se kdo upise. Pak se omezi tyto problemy:
- jednou s mezerou, jednou bez mezery
- pri parsovani obsahuje ta promenna dvojtecku s mezerou
- preklad do jineho textu atd.
@czechsys
Oddělovač je jak vidím definovaný předem. Je to ta dvojtečka. Text alá "<něco>: " je text tak běžný jako JSON sám. Někdy taky potřebujete mít logy/výstup formátovaný pro čtení lidmi.
Běžný JSON parser by si s tím měl poradit. Parser přímo pro JSON jsem nikdy nedělal, ale různé jiné parsery ano. Parser musí brát v potaz cekovou trukturu, tedy např. {"":""} i kdyby tam bylo dvojeteček plný pytel. Klíč může být např. ":<něco>" ... Ale je to k zamyšlení, já používám jak <něco>: tak např. Entity::id=
Každopádně, nevím jestli zadáním bylo, aby to byl čistě nutně strojově parsovatelný výstup. Ve zprávě logu může být i uživatelem definované jméno, ale dvojtečky ani tečky či čárky a apostrofy bych uživatelům po světě nazakazoval.
Překlad by se řešil už při zapisování logu, a nebo vám bude jedno co tam je, buď budete mít shodu na text který má být nahrazen a to od písmene prvního až po poslední, a nebo ne.
A nebo špatně chápu Vaši poznámku.
27. 10. 2021, 22:36 editováno autorem komentáře