Portál AbcLinuxu, 12. května 2025 05:57

Dotaz: Jak vybrat soubor podle url v PHP

6.11.2013 01:05 OO
Jak vybrat soubor podle url v PHP
Přečteno: 900×
Odpovědět | Admin
Ahoj, ještě nevím jednu věc jak se dělá. Když je v url třeba /novinky, jak mám načíst jiný název, myslím skutečný název souboru v tomto případě news.php předpokládám, že se to přes pole nedělá z důvodu dlouhých časů při prohledávání. Díky
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 6.11.2013 01:59 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Budeš se divit, ale často se to dělá ještě pomaleji – procházením seznamu regulárních výrazů a jejich matchováním. Pokud jich je jen málo, tak to nevadí, ale není to zrovna moc rychlé.

Lepší přístup je rozbít cestu podle lomítek a nakrmit tím konečný automat, který bude velmi podobný stromu.
Hello world ! Segmentation fault (core dumped)
6.11.2013 03:12 OO
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Hm, a co použítí define() ?
define('muj_ucet', 'my-account'); //skutečný soubor (my-account)

$get = 'muj-ucet'; //toto je v url

echo str_replace('-', '_', $a);
Jenže se dívám, že do define nelze psát pomlčky a při použití replace zase nedostanu nijak tu hodnotu:-( Jak ji můžu vypsat? Díky
6.11.2013 09:55 Karlos
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
můžeš použít array, jestli už jsi teda zjistil konkrétní požadavek v $get
$pages = array('muj-ucet' => 'my-account', 'dalsi' = > 'next');
$get = 'muj-ucet'; //toto je v url
$soubor=$pages[$get].'php';
Samozřejmě doplnit podmínky na existenci souboru.Další level je naházet stránky do databáze, dotazem jistíš soubor. Pak se dá krásně např. generovat menu, sitemapa, acl pravidla a další.
6.11.2013 15:17 Kozzi
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
no muzes pouzit funkci constant('nazev_konstanty')
6.11.2013 11:51 Michal Karas | skóre: 45 | blog: /dev/random
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Především se nedělá to, že začneš optimalizovat kód na základě nějaké své domněnky. Napiš to co nejčitelněji a nejjednodušeji. Optimalizace začni řešit až ve chvíli, kdy ti nějaký profiler ukáže, že projít pole s počtem položek nanejvýš v řádu desítek je tvůj nejvážnější problém. :-)
Josef Kufner avatar 6.11.2013 15:22 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Přesně tak.
Hello world ! Segmentation fault (core dumped)
6.11.2013 15:33 Kozzi
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
jj dobra, rada. Nejhorsi je ze me uz pri psani v hlave bezi automaticky profiler a vsude vidim zbytecne takty, kterym se da vyhnout :D
7.11.2013 00:41 Sten
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Pokud je skutečně snaha se vyhnout zbytečným taktům, pak doporučuji místo PHP použít nějaký kompilovaný jazyk přes SCGI nebo jako modul do webserveru :-D
7.11.2013 08:27 Kozzi
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
No tak tam kde hlavne potrebujeme setrit takt, tak uz pomalu prepisujeme kod do D, ale bohuzel jsem jsem prisel v dobe kdy uz byl cely system naprasen v Praseci Hromadce Pismenek
7.11.2013 09:45 Kit
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Rychlé aplikace se dají psát i v PHP...
7.11.2013 10:04 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
<rejp>Definuj rychlé</rejp> :-)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
7.11.2013 10:54 Kit
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Takové, že výkon aplikace vyhovuje účelu.
7.11.2013 11:11 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Tak to jo, to lze i v bash-i. :-)
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
7.11.2013 11:13 Kit
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Souhlas. Když se v Bashi vyhýbáš cyklům pro zpracování jednotlivých řádek dat, tak ta rychlost bývá také velmi slušná.
7.11.2013 11:27 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Radši konce, nebo budu chtít vědět co je „slušná rychlost“ ;).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Josef Kufner avatar 7.11.2013 20:36 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Ftip je v tom, že pak Bash jen poslepuje jiné programy a do samotného zpracování dat už nekecá. Takže jeho pomalost se tak nějak nedostane ke slovu.
Hello world ! Segmentation fault (core dumped)
7.11.2013 21:07 Kit
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Přesně tak jsem to myslel. Vždyť Bash je jen "Další skořápka". Funkce a metody v PHP mohou sloužit podobně jako programy volané v shellu.
Josef Kufner avatar 7.11.2013 21:55 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
No... můžou, ale nebývá to moc časté. PHP má ten typický use-case přecejen trošku jiný.
Hello world ! Segmentation fault (core dumped)
7.11.2013 22:43 Kit
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Myslel jsem to jinak. Některé funkce v PHP mohou dělat i poměrně komplexní činnosti a nemusí přitom volat žádný externí program. Vzhledem k tomu, že tyto funkce bývají napsány v C/C++, bývají i docela rychlé.
7.11.2013 16:02 Kozzi
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
JJ to daji, ale jsou pripady kdy proste vykon php nestaci :). Popravde co se rychlosti kodu v PHP tyce tak si dovolim tvrdit ze neni moc lidi co dokaze psat tak rychlej php kod jako mi v praci :). Jinak vzdycky je jeste moznost nasadit HipHop coz nas kod jeste vyrazne zrychli.
7.11.2013 12:28 Dát smazat | skóre: 6 | blog: druhá kolej
Rozbalit Rozbalit vše Re: Jak vybrat soubor podle url v PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mám pocit, že dneska už se obvykle nejde v URL po souborech.

Větišnou máš Router, ten vezme URL požadavku např ("novinky" nebo "clanek/2150-jak-vydelat-penize") Propere to řadou regulárních výrazů a podle toho který sedí zavolá třídu - její metodu a předá zbytek. Takže například přo příklad 2 by volal Article::showOne(2150). Ta část co volá se občas nazývá Controller (Presenter).

Třída Article se pak načte pomocí Autoloadingu, takže tebe jako developera pak takové detaily nemusí zajímat.

Jinak poslední regulár bývá chybová hláška: Třeba 404 nenalezeno.

Na co si musíš dát bacha, pokud načítáš soubory podle vstupu v požadavku je, aby někdo něpožádal třeba "config" a nebo prostě nějaký soubor, který nemá být vstupní. Nejsnáz asi výčtem povolených hodnot:
$routy = array( 'novinky' => 'novinky.php', 'admin' => 'admin-public.php' );

if(!is_set($routy($req))) { ukaz_404(); }

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.