Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)

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

PHP PHP PHP odebrání textu za posledním lomítkem American English version English version

Aktivity (1)
Avatar
hutla.vojtech: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š
Redaktor
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í
+1 bodů
Řešení problému
Nahoru Odpovědět 18.1.2015 15:00
Grafik, Vývojář, Workoholik :)
Avatar
Odpovídá na Pavel Mareš
hutla.vojtech: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š
Redaktor
Avatar
Odpovídá na hutla.vojtech
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
Grafik, Vývojář, Workoholik :)
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na hutla.vojtech
Marek Z.: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 Marek Z.
hutla.vojtech: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 hutla.vojtech
hutla.vojtech:18.1.2015 16:27

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.