Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Matěj 03. 04. 2018, 16:11:38
-
Ahoj, umí prosím PHP ze souboru ve kterém budou položky vnořené pomocí tabulátoru, tedy něco jako
menu-1
menu-2
menu-3
menu-4
menu-5
menu-6
vytvořit pole, ze kterého by šel vypsat celý seznam?
<ul>
<li><a href="menu-1">menu-1</a></li>
<li><a href="menu-1/menu-2">menu-1/menu-2</a></li>
<li><a href="menu-1/menu-3">menu-1/menu-3</a></li>
<li><a href="menu-1/menu-3/menu-4">menu-1/menu-3/menu-4</a></li>
<li><a href="menu-1/menu-3">menu-5/menu-5</a></li>
<li><a href="menu-6">menu-6</a></li>
</ul>
Pokud ano, poradí někdo jak na to? Děkuji.
-
Ano, jde to. Napíšeš si parser, kterej ti z toho udělá zanořená pole. Případně by to šlo různě zbastlit pomocí regulárů, etc.
Což asi tak docela nechceš.
Ten formát vstupního souboru je nutný? Nemůžeš to mít jako neon, yaml, json?
-
jo, zkus to přes džejson
-
Také se může hodit XML, protože ho šablony umí načítat přímo.
-
Pouzi rekurziu!
-
Tabulator o sirce 2.5 znaku jsem jeste nevidel! (jeden se ti zaokrouhlil na tri mezery, dva pak na pet ,)
-
Taky bych být tebou zvolil buď XML, nebo nějaký systém pevných znaků, který se bude parsovat jednoznačně.
Tabulátory nejsou zrovna nejvhodnější, mohlo by tě překvapit, že to občas funguje jinak, než jsi chtěl.
-
Každý formát alebo jazyk, v ktorom whitespace znaky nesú sémantický význam, by mal byť na mieste popravený.
-
Tvuj nazor respektuji, ale takovej YAML je naprosto v pohode.
-
Tabulátory nejsou zrovna nejvhodnější, mohlo by tě překvapit, že to občas funguje jinak, než jsi chtěl.
Muzes, prosim tuhle myslenku nejak vice rozvest? idealne s konkretnimi priklady.
-
To snad ide urobit na jeden priechod nie?
-
Tvuj nazor respektuji, ale takovej YAML je naprosto v pohode.
Pokud je v pohodě YAML, tak i Python. Jen je škoda, že je zvykem v něm používat mezery místo tabulátorů.
-
Každý formát alebo jazyk, v ktorom whitespace znaky nesú sémantický význam, by mal byť na mieste popravený.
Naopak. Většina inteligentnějších jazyků (haskell, python) toho využívá. Cena komplikace pro parser je vyvážená čitelností pro uživatele.
-
Nieco taketo ?
$menus = array_filter(preg_split("/[\t\n]/", file_get_contents("menu.txt")));
$menus = array_map(function($item) {
return trim($item, ' \'"');
}, $menus);
print_r($menus);
Array
(
- => menu-1
[1] => menu-2
[2] => menu-3
[3] => menu-4
[4] => menu-5
[5] => menu-6
)
-
Nieco taketo ?
...
Tobě to funguje?
-
Tabulátory nejsou zrovna nejvhodnější, mohlo by tě překvapit, že to občas funguje jinak, než jsi chtěl.
Muzes, prosim tuhle myslenku nejak vice rozvest? idealne s konkretnimi priklady.
No, příklady fakt už nemám. Před lety jsem se o něco podobného pokoušel na jednom svém testovacím webu a některé položky TAB se mi nenačetly. Asi není TAB v Notepad++ a TAB v linuxovém VI. Dokonce ve VI tabulátory se pak NP++ chovaly, jako by byly jen mezery.
Tak asi toto si vzpomínám, že mě překvapilo.
PS: Tenkrát jsem to tuším vyřešil CSV formátem, který se mi parsoval dobře. V tý době navíc XML v PHP nebylo moc dobré. Navíc jsem taky byl programátorsky někde jinde ...
-
Před lety jsem se o něco podobného pokoušel na jednom svém testovacím webu a některé položky TAB se mi nenačetly. Asi není TAB v Notepad++ a TAB v linuxovém VI. Dokonce ve VI tabulátory se pak NP++ chovaly, jako by byly jen mezery.
Vim umí automaticky konvertovat mezi skupinami mezer a tabulátory. Možná jsi ho měl jinak nakonfigurovaný. Kvůli tomu je dobré, aby editor ty tabulátory zobrazoval jinak než jako skupinu mezer.
-
Taky to vidim na konfiguraci editoru. TAB je proste TAB - na rozdil treba od noveho radku...
-
Taky to vidim na konfiguraci editoru. TAB je proste TAB - na rozdil treba od noveho radku...
Ještě existuje vertikální tabulátor, ale snad nikoho nenapadne ho používat.