IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: PHP odebrání textu za posledním lomítkem

Aktivity
Avatar
Geekský Kodér:18.1.2015 14:34

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š
Tvůrce
Avatar
Pavel Mareš:18.1.2015 15:00

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í
+2,50 Kč
Řešení problému
Nahoru Odpovědět
18.1.2015 15:00
Však ono půjde ...
Avatar
Odpovídá na Pavel Mareš
Geekský Kodér:18.1.2015 15:25

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š
Tvůrce
Avatar
Odpovídá na Geekský Kodér
Pavel Mareš:18.1.2015 15:36

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
Však ono půjde ...
Avatar
Odpovídá na Geekský Kodér
Uživatel sítě :18.1.2015 16:01

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 Uživatel sítě
Geekský Kodér:18.1.2015 16:21

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 Geekský Kodér
Geekský Kodér:18.1.2015 16:27

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

 
Nahoru Odpovědět
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.