Autor Zpráva
Veronika22
Profil *
Ahojte,

přes httaccess získám z tvaru URL název měsíce, tj. $seo_nazev a já bych potřebovala na základě toho získat ... o jaký měsíc se bude jednat i z výpisu $seo_mesic ... kde je již diakritika, kterou chci použít do title a nadpisu stránky.

Nevíte prosím jak na to?

$seo_mesic = array(1 => 'leden', 'unor', 'brezen', 'duben', 'kveten', 'cerven', 'cervenec', 'srpen', 'zari', 'rijen', 'listopad', 'prosinec');
$seo_nazev = array(1 => 'leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec');
Majkl578
Profil
Pomocí array_search lze v poli najít hodnotu - její klíč - a ten následně použít v druhém poli.
ShiraNai7
Profil
Nějak takto:

<?php

$test = 'kveten';

$pozice = array_search($test, $seo_mesic, true);
if(false !== $pozice) {

   echo "Nalezeno na pozici {$pozice}\n";
   echo "Název je: ".$seo_nazev[$pozice]."\n";


} else {

    // nenalezeno

}

Výsledkem bude:

Nalezeno na pozici 5
Název je: květen
Tori
Profil
Anebo na překlad použít asoc.pole, kde klíče budou názvy bez diakritiky a hodnoty názvy s diakritikou:
$mesic_z_url = 'cerven'; // tohle dostanete z URL
$seo_nazev = array('cerven' => 'červen', 'zari' => 'září', /* atd. */);
if (isset($seo_nazev[$mesic_z_url]))
    echo $seo_nazev[$mesic_z_url];
else
    // nenalezeno
peta
Profil
Tez se da pouzit http://php.net/manual/en/function.str-replace.php
$search  = array('cerven', 'zari', 'C', 'D', 'E');
$replace = array('červen', 'září', 'D', 'E', 'F');
$subject = 'cerven'; // tohle dostanete z URL
echo str_replace($search, $replace, $subject);
Veronika22
Profil *
peta ... příklad hezký, ale pokud bude existovat neexistující $subject, který dostanu z URL, tak str_replace to stále vyhodí alespoň něco a v tomto případě bych třeba nemohla uplatnit 404 na neexistující URL - neexistující měsíc.


Omlouvám se, měla jsem si dříve přečíst manuál na str-replace. Stačí ještě přidat $count a bude mu to počítat počet nalezených položek, kdy při 0 = mohu aplikovat 404.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0