Jump to content
php.lv forumi

Noteiktu textu aizvieto ar smaidinju


millers

Recommended Posts

Sveiki.Lieta tāda kad man ir nepieciešams kods kurš aizvieto textu ar bildi. Piemeram uzraksta :P aizvieto ar smaids1.png man itkā ir kods dabūju no viena tuta ,bet viņš man īsti nestrādā

 

		function smailji($teksts)
{
	$ko_aizvietot = array();
	$ar_ko_aizvietot = array();

	$smailju_array = array(
	array('tongue.png',':P'),
	array('xmas.png','(xmas)'),
	);

	foreach($smailju_array as $smailis)
	{
		$ko_aizvietot[] = ' '.$smailis[1].' ';
		$ar_ko_aizvietot[] = " <img src='smailji/{$smailis[0]}' alt='{$smailis[1]}'/> ";
	}

	return str_replace($ko_aizvietot,$ar_ko_aizvietot,$teksts);
}

Vainu viņā ir kļūda vainu es nemāku pareizi izvilkt ārā ...

 

Varbūt varat pateikt kā izvilkt ārā to smaidu ...

Link to comment
Share on other sites

Sviests.

Kādu tur vajag gatavu kodu lai tekstu aizstātu ar img?

str_replace() ir pats normālākais risinājums.

Ja vajag tos visus smailijus sagrūst arajā, var to darīt, bet tad tā arī jādara.

Viens array kur no kā mainīt un otrs uz kuru mainīt.

es gan kādreiz mainiju ar ereg_replace tā.

Bet ja smailiju ir kādi 20, neredzu jēgu, jo ar str_replace pa tiešo tas darbojas tik pat ātri manuprāt un bez problēmām.

Izlasi ko tā str_replace funkcija dara vismaz:)

Link to comment
Share on other sites

nu vari darīt tā:

 

$replace_array = array(':)' => '<img src="/images/smile.gif" alt=":)" />', ':(' => '<img src="/images/unhappy.gif" alt=":(" />' );

$text = str_ireplace(array_keys($replace_array), $replace_array, $text);

 

un visa bēda atrisināta.

Link to comment
Share on other sites

$replace_array = array(':)' => '<img src="/images/smile.gif" alt=":)" />', ':(' => '<img src="/images/unhappy.gif" alt=":(" />' );

$text = "TAVS TEKSTS KURĀ BŪS SMAIDIŅI :) :) :) :)";

$text = str_ireplace(array_keys($replace_array), $replace_array, $text);

echo $text;

Link to comment
Share on other sites

Pašu funkciju, protams, tu nevari parādīt..

function smailji($str){
 $replace=array(":)"=>'<img src="/emo/smile.gif" alt=":)" />',":("=>'<img src="/emo/sad.gif" alt=":(" />');
 $str=strtr($str,$replace);
 return $str;
}
$komentaars = quote_smart(htmlspecialchars(smailji($_POST['komentaars'])));

Link to comment
Share on other sites

Funkciju jau parādiju pašā sākumā

 

 function smailji($teksts)
{
	$ko_aizvietot = array();
	$ar_ko_aizvietot = array();

	$smailju_array = array(
	array('tongue.png',':P'),
	array('xmas.png','(xmas)'),
	);

	foreach($smailju_array as $smailis)
	{
		$ko_aizvietot[] = ' '.$smailis[1].' ';
		$ar_ko_aizvietot[] = " <img src='smailji/{$smailis[0]}' alt='{$smailis[1]}'/> ";
	}

	return str_replace($ko_aizvietot,$ar_ko_aizvietot,$teksts);
}

 

,bet viņja man nestrāda ..

pameiģināsu tavu ..

 

Edited ..

 

Tavu Code izpilda bet viņš uzrada šādi

 

<img src="/smailji/tongue.png" alt=":)" />

 

 

edited:

datubāzē inserto viņš

 

<img src='smailji/tongue.png' alt=':)' />

 

un caur view sourc arī šādi izskatās

Edited by millers
Link to comment
Share on other sites

neesi iedomājies, ka tas ir tādēļ, ka htmlspecialchars() tiek izpildīts pēc tam, kad notikusi ikonu ievietošana?

function smailji($str){
 $replace=array(":)"=>'<img src="/emo/smile.gif" alt=":)" />',":("=>'<img src="/emo/sad.gif" alt=":(" />');
 $str=strtr($str,$replace);
 return $str;
}
$komentaars = quote_smart(smailji(htmlspecialchars($_POST['komentaars'])));

Link to comment
Share on other sites

×
×
  • Create New...