Avatar
hutla.vojtech:

Ahoj, mám třídu, které napíšu adresu souboru a ona ho rozloží, nahradí moje tagy pomocí HTML tagů, vloží do šablony a nechá vypsat.

Funguje to tak, že předám pomocí GET nějakou stránku (třeba "http://example­.com/?page=cs/Ma­in_page"). V tomhle případě aplikace vezme soubor ./pages/cs/Ma­in_page.page, rozkouskuje obsah v jednotlivých tazích, nahradí je HTML tagy, nahází do šablony a dojde k vykreslení.

Problém je, že potřebuji rozložit obsah GET a odstranit poslední frázi (takže z "cs/Main_page" udělat "cs".

Moje otázka zní - jak toho dosáhnout?

Děkuji všem a přeji hezký den :)

 
Odpovědět 18.1.2015 14:34
Avatar
Pavel Mareš
Redaktor
Avatar
Pavel Mareš:

Dejme tomu, že tohle je to snad nejjednodušší řešení:

$get = $_GET['url'];

... nějaký zpracování a v nějaké proměnné (například $page) máš to "cs/Main_page"
$page = explode('/', $page);

tudíž $page je pole a vypadá to takto:

Array (
    [0] => 'cs'
    [1] => 'Main_Page'
)
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 18.1.2015 15:00
Nechci být workoholik. Bohužel někdy musíme být tím, čím nechceme.
Avatar
Odpovídá na Pavel Mareš
hutla.vojtech:

Tohle jsem zkoušel, ale nedostal jsem se tak daleko, abych byl schopen odstranit poslední část pole a zase ho složit pomocí implode()

 
Nahoru Odpovědět 18.1.2015 15:25
Avatar
Pavel Mareš
Redaktor
Avatar
Odpovídá na hutla.vojtech
Pavel Mareš:

Pokud nedáš příklad jak a co děláš, nevím kde máš chybu. Mohu ti napsat kompletní kód, ale asi se nebude shodovat s tím tvým. Buď zde uveď příklad (resp kód) nebo ti s tvou chybou nikdo moc nepomůže.

Nahoru Odpovědět 18.1.2015 15:36
Nechci být workoholik. Bohužel někdy musíme být tím, čím nechceme.
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na hutla.vojtech
Marek Z.:

Pochopil jsem dobře, že z http://example.com/?… chceš http://example.com/?…?

Toho docílíš například pomocí regulárního výrazu:

<?php
    $url = 'http://example.com/?page=cs/Main_page';
    $upravenaUrl = preg_replace('~/\w+$~', null, $url);
    echo $upravenaUrl; //Vypíše http://example.com/?page=cs
?>
Editováno 18.1.2015 16:01
Nahoru Odpovědět 18.1.2015 16:01
Chybami se člověk učí, běžte se učit jinam!
Avatar
Odpovídá na Marek Z.
hutla.vojtech:

Pavel Mareš: bohužel, tu funkci jsem smazal

Mara 'SIFLER' Z.: ne, té funkci předávám jen obsah GET, takže z "cs/Main_page" na "cs". Ale tvůj kód by na to použít šel, pokud změním výstup, řekl bych

 
Nahoru Odpovědět 18.1.2015 16:21
Avatar
Odpovídá na hutla.vojtech
hutla.vojtech:

Tak jsem zkusil upravit ten kód výš a funguje to. Díky moc :)

 
Nahoru Odpovědět  +1 18.1.2015 16:27
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.