[ vidonk @ 21.01.2010. 18:22 ] @
Ovako uradio sam kao neke smajlije, i sad bih trebao da ogranicim br smajlija u poruci na 3 gledao sam po php.net ali nisam nasao nista korisno
Ovako to nekako izgleada ...
Code:




$smiles_array = array(
"'\.smile\.'",
"'\.oops\.'",
"'\.xexe\.'",
"'\.grief\.'",
"'\.cool\.'",
"'\.lol\.'",
"'\.be\.'",
);


$smile = array(
"<img src=\"smiles/001.gif\" alt=\"smile\"/>",
"<img src=\"smiles/002.gif\" alt=\"oops\"/>",
"<img src=\"smiles/003.gif\" alt=\"xexe\"/>",
"<img src=\"smiles/004.gif\" alt=\"grief\"/>",
"<img src=\"smiles/005.gif\" alt=\"cool\"/>",
"<img src=\"smiles/006.gif\" alt=\"lol\"/>",
"<img src=\"smiles/007.gif\" alt=\"be\"/>",
);

$msg = preg_replace($smiles_array, $smile, $msg, 2);




e sad bih ovu $msg trebao da nekako provucem kroz filter i da ako je njen sadrzaj .smile. .smile2. .smile3. .smile4. da ove prve tri rijeci normalno budu zamjenjene a da se ovoj trecoj i svakoj narednoj eijeci koja ima tacku pre i posle doda razmak kako je nebi prepoznalo i nebi zamjenilo sa smajlicem ...... nadam se da sam bio jasan
[ milos.z @ 21.01.2010. 20:37 ] @
Code:
<?php
$ne = array(".smile.", ".smile2.", ".smile3.", ".smile4.");

$string = "blaa blaaa .smile. .smile2. .smile3. .smile4. blaa blaaa";

echo filter($string);

function filter($str) {
   global $ne;
   $broj = 0;
   $rstr = "";
   $reci = explode(" ", $str);
   for($i=0;$i<count($reci);$i++) {
      if(in_array($reci[$i], $ne)) $broj++;
      if(in_array($reci[$i], $ne) && $broj >3) $reci[$i] = "";
      if($reci[$i]) $rstr .= $reci[$i]." ";
   }
   return $rstr;
}

?>


program ce ispisati: blaa blaaa .smile. .smile2. .smile3. blaa blaaa

ovo je samo primer kako bi mogao da odradis, ali za to sto ti trazis zahteva doradu.
funkcija prvo razlozi sve reci (razmak je delimiter), ako nadje cetvrto ponavljanje elementa iz niza $ne, zamenjuje ga sa "" (prazan string) i ponovo sklapa string.
mana funkcije je sto smajliji moraju da budu odvojeni razmakom znaci "neka rec.smile." nece biti izvaljeno.

moja funkcija je samo mali POC kako to mozes da uradis, pa malo doradi sad :)