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

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.


BoneFlute

  • *****
  • 1 981
    • Zobrazit profil
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

  • *****
  • 2 476
    • Zobrazit profil
    • E-mail
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 »
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 »
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

  • *****
  • 1 981
    • Zobrazit profil
Re:Jak vytvořit seznam v PHP
« Odpověď #12 kdy: 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.

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

  • *****
  • 1 981
    • Zobrazit profil
Re:Jak vytvořit seznam v PHP
« Odpověď #14 kdy: 04. 04. 2018, 17:15:03 »
Nieco taketo ?
...
Tobě to funguje?