str_replace

Programovacie jazyky, rady, poradňa...
9mike
Amateur
Amateur
Príspevky: 18
Registrovaný: 06 feb 2007, 15:17

str_replace

Príspevok od používateľa 9mike »

Potreboval by som vybrat z tabulky vsetky $code ktore by potom v texte nahradilo za $way. Ked to spravim takto:

Kód: Vybrať všetko

$link=mysql_connect ($DBserver,$DBuser,$DBpass) or die ("Error.");
$db = mysql_select_db($DBname, $link) or die ("db error");

$query="SELECT * FROM smiles ORDER BY id ";
$result=mysql_query($query, $link) or die ("link error");

while ($row=mysql_fetch_array($result)) {

$code=$row["code"];
$way=$row["way"];

$sprava = str_replace($code, $way, $post);

}
funguje len na posledne ID v tabulke, potreboval by som aby v jednom texte nahradilo vsetky $code za $way ktore su v DB tabulke.
(nahrada kodu za link na smajla)

Treba to nejak upravit alebo mam ist na to inym sposobom?
Diky
xH4wK

Príspevok od používateľa xH4wK »

No ja osobne pouzivam str_replace na zamenu znakov ktore normalne prehliadac prenesie v nespravnom tvare a mam to takto(na http://bf2stats.h4wk.sk/ ):

Kód: Vybrať všetko

	function convertNick($nick) {  
      	$nick = str_replace("_","%5F",$nick);
      	$nick = str_replace("<","%3C",$nick);
      	$nick = str_replace(">","%3E",$nick);
      	$nick = urlencode($nick);
      	return $nick;
     }

Kód: Vybrať všetko

				if($nick!="" && $pid=="") {    
					$leaderboardURL = $this->URLdomain."/ASP/getleaderboard.aspx?type=score&id=overall&nick="
						.$this->convertNick($nick)."&nocache=".rand(500, 32768) * rand(500, 32768).$this->arbWorldId;

Kód: Vybrať všetko

	function searchQuery($nick) {
		$url = $this->URLdomain."/ASP/searchforplayers.aspx?nick=".$this->convertNick($nick)."&where=a&sort=a";
Neviem ci ti to pomoze :P
neppo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 774
Registrovaný: 09 jún 2005, 15:33

Príspevok od používateľa neppo »

no ak som spravne rozumel chces zamenit : ) za :)... tak skus toto

Kód: Vybrať všetko

$znaky_smajlo = array(":)", ":(", ":P") //to si pridas
$obrazok_smajlo = array("<img src=\"smile.gif\">", "<img src=\"sad.gif\">", "<img src=\"lick.gif\">");

$code = str_replace($znaky_smajlo, $obrazok_smajlo, $row['code']);
echo $code;
9mike
Amateur
Amateur
Príspevky: 18
Registrovaný: 06 feb 2007, 15:17

Príspevok od používateľa 9mike »

no, len potrebujem to tak aby original aj nahradu vybralo z DB nie takto rucne zapisovat kazdeho smajla
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Príspevok od používateľa juho »

Kód: Vybrať všetko

while ($row=mysql_fetch_array($result)) {

$code=$row["code"];
$way=$row["way"];
podla teba je to dobre? si na 100% isty ze si to napisal dobre?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Pozri si súbor bbcode.php (v phpBB2) a tam hľadaj funkciu smilies_pass.
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

samozrejme ze to funguje len pre posledny zaznam v tabulke
pouzi toto.

$post=str_replace($code,$way,$post);
Napísať odpoveď