Portál AbcLinuxu, 24. dubna 2024 18:55


Dotaz: Jak nadefinovat ID k jednotlivím částem url

30.5.2016 20:13 Pája
Jak nadefinovat ID k jednotlivím částem url
Přečteno: 960×
Odpovědět | Admin
Ahoj, poradíte mi prosím, jak nadefinovat něco takového bez mysql ?

mám adresy :
http://domain.com/aaa/bbb/ccc

a v php potřebujii získat
aaa == 1
bbb == 2
ccc == 3
http://domain.com/ccc/bbb/aaa

a v php potřebujii získat
ccc == 4
bbb == 5
aaa == 6
http://domain.com/bbb/ccc/aaa

a v php potřebujii získat
bbb == 7
ccc == 8
aaa == 9
Schválně udávám tři stejné názvy v url, jelikož to tak potřebuji, jiné pořadí se stejným názvem má zobrazit něco zcela odlišného. Děkuji za nápovědu.

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.5.2016 20:24 NN
Rozbalit Rozbalit vše Re: Jak nadefinovat ID k jednotlivím částem url
Odpovědět | | Sbalit | Link | Blokovat | Admin
parse_url()?
30.5.2016 20:35 Pája
Rozbalit Rozbalit vše Re: Jak nadefinovat ID k jednotlivím částem url
Děkuji.. ale nevím zda si rozumíme, já nevím jak ty jednotlivé části url mám nadefinovat, přiřadit jim ty unikátní id.
30.5.2016 21:29 NN
Rozbalit Rozbalit vše Re: Jak nadefinovat ID k jednotlivím částem url
Neco jako:
$paths = explode('/', parse_url($url, PHP_URL_PATH));
a potom si s tim muzes delat co chces(dodavam, ze normalne v PHP nepisu..). Nebo nechapu..
30.5.2016 21:32 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: Jak nadefinovat ID k jednotlivím částem url
No teda, ja som PHP videl len z rýchlika, ale
$url = 'http://domain.com/xxx/yyy/zzz';

$path=parse_url($url, PHP_URL_PATH);

list($trash, $part1, $part2, $part3) = explode('/',$path);
priradí do $path string "/xxx/yyy/zzz" a potom do $part1 priraadí 'xxx', do $part2 dá 'yyy' atď.

No a tieto stringy potom môžeš použiť do mapy mapujúcej string z $part1 na nejaké číselné ID. $part2 budeš používať, ako kľúč v nejakej inej mape atď.
$id=0;
$map1=array();
$map2=array();
$map3=array();

$map1[$part1]=$id++;
$map2[$part2]=$id++;
$map3[$part3]=$id++;
Nie?
31.5.2016 10:47 Pája
Rozbalit Rozbalit vše Re: Jak nadefinovat ID k jednotlivím částem url
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ten dotaz je vážně k nepochopení ?
31.5.2016 13:03 1john2 | skóre: 35 | blog: jo12hn | zlín, brno
Rozbalit Rozbalit vše Re: Jak nadefinovat ID k jednotlivím částem url
Mozna by bylo fajn rict, ceho chces dosahnout. Takhle mi to prijde jako narovnavak na vohejbak.

Proc tri casti?

Proc stejna sekvence na ruzne pozici ma ruzne id?

Kolik tech kombinaci bude, ze se branis pouziti DB?

Musi ty ID vznikat dynamicky, tj baviem se o automatizaci?

Nebo nevis jakou vhodnou datovou strukturu pouzit misto DB pri manualni inicializaci?

Neni jednodussi vzit to cele a udelat z toho nejaky hash?
wamba avatar 31.5.2016 13:23 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Jak nadefinovat ID k jednotlivím částem url
Ano, těžko se chápe čeho chcete dosáhnout. Jak já jsem to pochopil, tak můžete použít třeba hash. Psáno pro Perl 6 a pravděpodobně snadno půjde napodobit v PHP.
use v6;

for <aaa bbb ccc>, <ccc bbb aaa>, <bbb ccc aaa> -> @path {
    my %get-id = (
        aaa => [ 1,
                 { bbb => [ 2,
                            { ccc => [3, {}] }
                          ]
                 }
               ],
        ccc => [ 4,
                 { bbb => [ 5,
                            { aaa => [ 6, {} ] }
                          ]
                 }
               ],
        bbb => [ 7,
                 { ccc => [ 8,
                            { aaa => [ 9, {} ] }
                          ]
                 }
               ],
    );
    
    my %id;
    for @path -> $x {
        %id{$x} = %get-id{$x}.[0];
        %get-id := %get-id{$x}.[1];
    };
    say %id;
}
Vytiskne:
{aaa => 1, bbb => 2, ccc => 3}
{aaa => 6, bbb => 5, ccc => 4}
{aaa => 9, bbb => 7, ccc => 8}
This would have been so hard to fix when you don't know that there is in fact an easy fix.
31.5.2016 21:30 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak nadefinovat ID k jednotlivím částem url
Ano, dotaz je k nepochopení. Jediné, co se z něj dá pochopit, je to, že nechcete použít databázi. Co se těmi idečky chcete dělat? Pokud to chcete převést na libovolné číslo, můžete ty části cesty zahashovat a pak hashe vynásobit velikostí hashe krát pozice části v URL. Nebo nejprve spojit část cesty s jejím pořadím v adrese a z toho udělat hash. Odpovídá to vašemu popisu zadání, ale pochybuju, že se vám to bude líbit.

Obvykle je lepší popsat problém, který řešíte, než si vymyslet nějaké řešení, a pak se ptát, jak to řešení implementovat.

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.