Autor Zpráva
qwertzy
Profil
Napadla mě funkce, jen nevím jestli je možné něco takového udělat.

1. Zavolám funkci mojefunkce() s níže uvedenými parametry, mojefunkce() by měla mít podobnou funkci jako vsprintf, jen s mými vlastními modifikátory, které budou dále upravovat text:
$pole = array("jmeno" => "Pavel", "vek" => 35);


příklad A:
mojefunkce(Údaje: %jmenoavek, $pole);
//vsprintf(Údaje: Jméné: %s Věk: %s, $pole["jmeno"], $pole["vek"]);


příklad B:
mojefunkce(Údaje: %informace, $pole);
//vsprintf(Údaje: Uživateli %s je %s let, $pole["jmeno"], $pole["vek"]);


2. Jde mi o tom, že bych mohl pouhou záměnou modifikátoru upravovat výstup funkce:

příklad A vrátí:
Údaje: Jméno: Pavel, Věk: 35

příklad B vrátí:
Údaje: Uživateli Pavel je 35 let

Když to shrnu: jde mi o to vytvořit funkci podobnou vsprintf, jen budu moci použít vlastní modifikátory, které podle zadaného modifikátoru upravý vstup do předem určeného výstupu.

Předem se omlouvám popis, lépe už to napsat nedokážu.
Kcko
Profil
Inspirace
qwertzy
Profil
Děkuji, ale koukám že to je asi opravdu nad mé síly. Navíc když jsem si uvědomil, že by se hodilo i použití normálních modifikátorů (%s, %i). Pokud se někdo na internetu setkal s něčím podobným, nebo co by mi mohlo pomoci, tak prosím, jestli by zde nezanechal odkaz.
okolojdouci
Profil *
Možná mi uniká podstata, ale proč ne takto jednoduše?

if ($varianta=="brod") {
  $sablona="Údaje: Uživateli %jm je %vek let";
}
..
if ($varianta=="jina") {
  $sablona="Jméno: %jm, Věk: %vek let";
}


$out = $sablona;
$out = str_replace("%jm", $pole[0], $out);
$out = str_replace("%vek", $pole[1], $out);
..
return $out;

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