Autor Zpráva
Jan Vonka
Profil
Zdravím,

Potřebuji stvořit takovou funkci která by nahradila {$neco} za obsah proměnné $neco. pro jednoduší pochopení:

$obrazek = "TAK TOTO JE OBRÁZEK";
$text = "blá blá blá blá {$obrazek} blá blá a zase blá";

a potřebuji když to proženu přes nějakou tu funkci aby z toho vzniklo:

$text = "blá blá blá blá TAK TOTO JE OBRÁZEK blá blá a zase blá";

vím že se to už asi dost řešilo (našel jsem Nahrazení části textu a Nahrazení textu proměnnou ale nic mi nefungovalo...)

Děkuji za každou reakci ;)
Kcko
Profil
echo preg_replace("~\{.+?\}~se", "$1", $text);
Someone
Profil
Kcko:
Podle měl Jan Vonka na mysli něco takového:

  <?php
    $text = "Obrázek {obrazek} byl namalován v roce 1987";
    echo preg_replace_callback("/\{(.+?)\}/",function($promenna) {
      $obrazek = "Obloha.jpg";
      return ${$promenna[1]};
    },$text); // vyechne: Obrázek Obloha.jpg byl namalován v roce 1987
  ?>

Ta proměnná se musí vytvářet přímo v té funkci, jinak by pro ni nebyla viditelná. Další možnost jsou SUPERGLOBÁLNÍ pole. Tam už pak záleží na kontextu.
Kcko
Profil
Someone:
Zkoušel jsi to?
Jan Vonka
Profil
á výborně :D to 1 mi nějak nefungovalo ale to 2. po drobných úpravách (připsal jsem si extract($GLOBALS);) a už to šlapě tak jak jsem si představoval, děkuji mockrát ;)
Someone
Profil
[#4] Kcko
Ano, zkoušel.
-vosa-
Profil *
Proč né takhle?
$obrazek = "TAK TOTO JE OBRÁZEK";
$text = "blá blá blá blá ".$obrazek." blá blá a zase blá";
Ugo
Profil
opravím to po Kcko :)
echo preg_replace("~\{(.+)?\}~se", "$1", $text);

-vosa-:
přesně takhle to v testu má ... {$obrázek} se v uvozovkách přeloží na to co píšeš , ale tady jde o to udělat další nachlup standartizované "šablony"
-vosa-
Profil *
Ugo:
ok, díky za vysvětlení.. o šablonách toho ještě moc nevím, ale vypadají zajímavě...

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: