Jak vytvořit seznam v PHP

Matěj

Jak vytvořit seznam v PHP
« kdy: 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.


BoneFlute

  • *****
  • 2 155
Re:Jak vytvořit seznam v PHP
« Odpověď #1 kdy: 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?

jdusizasvym

Re:Jak vytvořit seznam v PHP
« Odpověď #2 kdy: 03. 04. 2018, 16:41:46 »
jo, zkus to přes džejson

Kit

Re:Jak vytvořit seznam v PHP
« Odpověď #3 kdy: 03. 04. 2018, 17:22:58 »
Také se může hodit XML, protože ho šablony umí načítat přímo.

Nox

Re:Jak vytvořit seznam v PHP
« Odpověď #4 kdy: 03. 04. 2018, 19:49:02 »
Pouzi rekurziu!


RDa

  • *****
  • 3 343
Re:Jak vytvořit seznam v PHP
« Odpověď #5 kdy: 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 ,)

D.J.Bobo

Re:Jak vytvořit seznam v PHP
« Odpověď #6 kdy: 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.

Trupik

Re:Jak vytvořit seznam v PHP
« Odpověď #7 kdy: 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ý.

Re:Jak vytvořit seznam v PHP
« Odpověď #8 kdy: 04. 04. 2018, 10:50:34 »
Tvuj nazor respektuji, ale takovej YAML je naprosto v pohode.
Děkuji za možnost editace příspěvku.

Re:Jak vytvořit seznam v PHP
« Odpověď #9 kdy: 04. 04. 2018, 10:53:40 »
Citace od: D.J.Bobo kdy 03. 04. 2018, 22:14:37
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.
Děkuji za možnost editace příspěvku.

Som z vesnice

Re:Jak vytvořit seznam v PHP
« Odpověď #10 kdy: 04. 04. 2018, 12:16:47 »
To snad ide urobit na jeden priechod nie?

Kit

Re:Jak vytvořit seznam v PHP
« Odpověď #11 kdy: 04. 04. 2018, 13:23:42 »
Citace od: to_je_jedno kdy 04. 04. 2018, 10:50:34
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ů.

BoneFlute

  • *****
  • 2 155
Re:Jak vytvořit seznam v PHP
« Odpověď #12 kdy: 04. 04. 2018, 14:32:45 »
Citace od: Trupik kdy 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ý.
Naopak. Většina inteligentnějších jazyků (haskell, python) toho využívá. Cena komplikace pro parser je vyvážená čitelností pro uživatele.

CB

Re:Jak vytvořit seznam v PHP
« Odpověď #13 kdy: 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
(
   
  • => menu-1
        [1] => menu-2
        [2] => menu-3
        [3] => menu-4
        [4] => menu-5
        [5] => menu-6
    )


BoneFlute

  • *****
  • 2 155
Re:Jak vytvořit seznam v PHP
« Odpověď #14 kdy: 04. 04. 2018, 17:15:03 »
Citace od: CB kdy 04. 04. 2018, 16:50:56
Nieco taketo ?
...
Tobě to funguje?