Autor | Zpráva | ||
---|---|---|---|
svet121 Profil * |
#1 · Zasláno: 3. 11. 2011, 12:10:17
Ahoj, chtěl bych se zeptat, jak lze získat poslední číslo v odkazu.
Napřílad www.neco.cz/neco-11 - získat číslo 11 zároveň při jiné variantě: www.neco.cz/neco-111 - získat číslo 111 moc dík, jsem amatér :-) |
||
svet121 Profil * |
#2 · Zasláno: 3. 11. 2011, 12:24:29
diskuse stará 10 minut, taky se vám na google zobrazuje jako první?
http://www.google.cz/#sclient=psy-ab&hl=cs&site=&source=hp&q=z%C3%ADskat+%C4%8D%C3%ADslo+z+url&pbx=1&oq=z%C3%ADskat+%C4%8D%C3%ADslo+z+url&aq=f&aqi=&aql=1&gs_sm=e&gs_upl=463l3189l0l3622l18l13l0l0l0l0l959l6678l3-4.3.2.3l12l0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=44e0a8e70b9ad81c&biw=1366&bih=586 |
||
Dav Profil |
#3 · Zasláno: 3. 11. 2011, 12:28:28
pokud by ti stačilo neco.cz/?neco=11
tak ti $_GET['neco'] |
||
svet121 Profil * |
#4 · Zasláno: 3. 11. 2011, 12:31:02
chtěl bych www.neco.cz/neco-1 bez otazníků a rovná se.
|
||
__construct Profil |
#5 · Zasláno: 3. 11. 2011, 12:32:10 · Upravil/a: __construct
svet121:
Do .htaccess u si daj:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L,QSA] Zobraz si dáta v poľa $_SERVER . Vyber si z nejakú položku — napr. QUERY_STRING a pomocou regulárneho výrazu si vytiahni to číslo.
„diskuse stará 10 minut, taky se vám na google zobrazuje jako první?“ Áno — a prečo porušuješ pravidlá ? ↓Prečítaj si ten odkaz. |
||
svet121 Profil * |
#6 · Zasláno: 3. 11. 2011, 12:32:58
Jak to porušuju pravidla?
|
||
svet121 Profil * |
#7 · Zasláno: 3. 11. 2011, 12:37:02
_connstruct: tak pravidla jsem porušit nechtěl, jen si myslím, že být první v googlu za 10 minut je zajímavé
|
||
svet121 Profil * |
#8 · Zasláno: 3. 11. 2011, 12:41:44
Našel jsem toto:
$_SERVER['REQUEST_URI'] |
||
Joker Profil |
#9 · Zasláno: 3. 11. 2011, 12:44:02
__construct:
Možná opravdu nechtěl porušit pravidla, jen mu přišlo zvláštní, že ta diskuse je po 10 minutách první v Google. Holt Google to tu má rád ;-) svet121: Přesto, není slušné posílat více příspěvků za sebou. Tohle je diskuse a ne chat, takže nejdřív si rozmyslet o čem příspěvek bude a potom psát. Jestli to potřebuje ta samotná stránka na serveru, tak předpokládám že ta adresa vede na nějaký přepis (mod_rewrite), který to uloží do GET proměnné, kterou si pak stačí přečíst. Jestli to je jen adresa třeba nějakého odkazu (nebo obecně prostě nějaký text), bude to chtít trochu rozvést, jak se vlastně pozná to číslo. Číslo za poslední pomlčkou by šlo získat poměrně jednoduše přes strpos + substr |
||
Str4wberry Profil |
#10 · Zasláno: 3. 11. 2011, 12:45:39 · Upravil/a: Str4wberry
|
||
svet121 Profil * |
#11 · Zasláno: 3. 11. 2011, 12:48:22
Substr nemůžu, protože číslo může být 2 místné nebo 8 místné.
|
||
svet121 Profil * |
#12 · Zasláno: 3. 11. 2011, 12:50:41
A pokud použiju toto: $_SERVER['QUERY_STRING'];, pak je výsledek id=333.php
|
||
svet121 Profil * |
#13 · Zasláno: 3. 11. 2011, 12:58:20
Vyřešil jsem to takto:
$cislo = $_SERVER['REQUEST_URI']; echo $cislo['9'] . $cislo['10'] . $cislo['11'] . $cislo['12']; $cislo má vždy stejnou cestu. Pak jsem vytvořil pole. Když je pole neexistující, tak nevrátí nic. Kontrola $p = $cislo['9'] . $cislo['10'] . $cislo['11'] . $cislo['12']; if ($p == 371) { echo 'ano'; } |
||
__construct Profil |
#14 · Zasláno: 3. 11. 2011, 13:09:12
svet121:
Stačí použiť ten .htaccess [#5] a v index.php toto:
preg_match("/\d+/",$_SERVER["QUERY_STRING"],$zhody); var_export($zhody); |
||
svet121 Profil * |
#15 · Zasláno: 3. 11. 2011, 13:15:37
vrací se mi toto: array ( 0 => '372', )Array
|
||
svet121 Profil * |
#16 · Zasláno: 3. 11. 2011, 13:29:04
Už to je: takže:
.htaccess RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?/$1 [L,QSA] index.php preg_match("/\d+/",$_SERVER["QUERY_STRING"],$zhody); echo $zhody['0']; tak nějak... |
||
Str4wberry Profil |
#17 · Zasláno: 3. 11. 2011, 19:07:10
svet121: „Substr nemůžu, protože číslo může být 2 místné nebo 8 místné.“
Není pravda. Řešení, které jsi uvedl, zřejmě nebude fungovat, až někoho napadne umístit číslo do adresy i někam jinam než za poslední spojovník. Proto bych volil již zmíněné: $adresa = 'www.neco.cz/neco-se-spojovniky-a-cislem2-1141511'; echo substr($adresa, strrpos($adresa, '-') + 1); // 1141511 |
||
svet121 Profil * |
#18 · Zasláno: 3. 11. 2011, 22:04:14
Str4wberry: moc dík za úplnou odpověď k ménu požadavku. Použiju i tvou volbu. Každopádně je teď web tvořený, aby v url bylo jen jedno číslo a pokud tam někdo něco vloži, tak je to samé jako by místo www.neco.cz nepsal www.necco.cz... to už je jeho chyba. Do adresy se nic nevpisuje. Stejně jako toto fórum http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=131793, rozhodně nepřepíšu 131793 za číslo jiné.
|
||
svet121 Profil * |
#19 · Zasláno: 3. 11. 2011, 22:05:29
Jinak nevím jak získat celou adresu i s www, zatím jen /bez domény a nebo kontrétní url k danému listu.
|
||
Petr__ Profil * |
#20 · Zasláno: 3. 11. 2011, 23:06:52
svet121:
„Jinak nevím jak získat celou adresu i s www, zatím jen /bez domény a nebo kontrétní url k danému listu.“ Tak se podívek co obsahují jednotlivé prvky pole $_SERVER: print_r($_SERVER); Minimálně 2 z nich si už dříve použil. Poskládat z nich celou URL by neměl být problém. |
||
dalsivec Profil * |
#21 · Zasláno: 3. 11. 2011, 23:27:50
print_r($_SERVER); - to je hustý, to vypíše vše co se dá. Jsem dneska nějak zmoudřel :-), dík Petr___
|
||
Davex Profil |
#22 · Zasláno: 3. 11. 2011, 23:30:03
dalsivec:
Nepoužívej prosím víc přezdívek. Ostatní neví, že jsi zároveň svet121. |
||
dalsivec Profil * |
#23 · Zasláno: 3. 11. 2011, 23:35:46
Dobře, dnes jsem se taky naučil pravidla a slušné chování na diskuse.jakpsatweb.cz. Myslel jsem, že nick je nepodstatný. Má nová přezdívka tedy bude "nietzsche".
|
||
Str4wberry Profil |
#24 · Zasláno: 4. 11. 2011, 01:45:36
Myslel jsem to jinak, jde mi o to, že může dost reálně nastat situace, kdy bude příhodné mít číslici i ve slugu, potom je tedy správné řešení brát v úvahu číslo za posledním spojovníkem a ne obecně první číslo.
Co se týče tvé interakce s touto diskusí, doporučil bych ještě registraci (pro možnost upravovat své příspěvky), nebo se před odesláním zamyslet, zda jsi napsal všechno, abys nám sem neposílal dvojnásobné či dokonce trojnásobné příspěvky. |
||
Ugo Profil |
#25 · Zasláno: 4. 11. 2011, 07:52:43
jenom bych doplnil, že řešení se substr je mnohem rychlejší, co sem testoval tak mi vychází jednoduchý pravidlo, když můžeš vyhni se reguláru a dělej se stringem :-)
|
||
Časová prodleva: 12 let
|
0