Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Matěj 03. 04. 2018, 16:11:38

Název: Jak vytvořit seznam v PHP
Přispěvatel: 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

Kód: [Vybrat]
menu-1
   menu-2
   menu-3
     menu-4
   menu-5
menu-6

vytvořit pole, ze kterého by šel vypsat celý seznam?

Kód: [Vybrat]
<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.
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: BoneFlute 03. 04. 2018, 16:21:57
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?
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: jdusizasvym 03. 04. 2018, 16:41:46
jo, zkus to přes džejson
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: Kit 03. 04. 2018, 17:22:58
Také se může hodit XML, protože ho šablony umí načítat přímo.
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: Nox 03. 04. 2018, 19:49:02
Pouzi rekurziu!
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: RDa 03. 04. 2018, 21:45:49
Tabulator o sirce 2.5 znaku jsem jeste nevidel! (jeden se ti zaokrouhlil na tri mezery, dva pak na pet ,)
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: D.J.Bobo 03. 04. 2018, 22:14:37
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.
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: Trupik 04. 04. 2018, 10:32:18
Každý formát alebo jazyk, v ktorom whitespace znaky nesú sémantický význam, by mal byť na mieste popravený.
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: to_je_jedno 04. 04. 2018, 10:50:34
Tvuj nazor respektuji, ale takovej YAML je naprosto v pohode.
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: to_je_jedno 04. 04. 2018, 10:53:40
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.
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: Som z vesnice 04. 04. 2018, 12:16:47
To snad ide urobit na jeden priechod nie?
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: Kit 04. 04. 2018, 13:23:42
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ů.
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: BoneFlute 04. 04. 2018, 14:32:45
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.
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: CB 04. 04. 2018, 16:50:56
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
(
   
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: BoneFlute 04. 04. 2018, 17:15:03
Nieco taketo ?
...
Tobě to funguje?
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: D.J.Bobo 05. 04. 2018, 07:33:55
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 ...
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: Kit 05. 04. 2018, 11:58:41
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.
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: to_je_jedno 05. 04. 2018, 17:06:49
Taky to vidim na konfiguraci editoru. TAB je proste TAB - na rozdil treba od noveho radku...
Název: Re:Jak vytvořit seznam v PHP
Přispěvatel: Kit 05. 04. 2018, 17:23:58
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.