Ich möchte für eine Shoutbox einen Smilie Ordner auslesen ,damit der User sich (wenn er will ) immer mehr Smilies nachladen kann.
12 sind normal und mit einen Link "mehr Smilies" sollen mehr kommen.
Die sollen angezeigt werden und für das übliche Javascript verfahren anklickbar sein .Dafür wird ja meistens ein kürzel oder Wort genommen. Das kürzel ,bzw Wort hole ich aus den Dateinamen.
Das funktioniert auch alles.
Aber hier trotzdem mal der Code weil ihr habt bestimmt nee bessere Idee dafür
Wenn man die Smilies anklickt wird das kürzel in das Sendefeld eingetragen und nach den Senden wird das kürzel in der Shoutbox angezeigt.
Also muss man das Kürzel ja mit repleace mit den img austauschen.
Da ist jetzt mein problem.
Mit fummeln und co ,schaffe ich es nur das der letzte Smilie im Ordner ersetzt wird. Ich könnte ja jetzt für alle Smilies das repleace schreiben ,doch ich wollte es eigentlich über den Ordner auslesen machen.
Hier der Code der nur halb funktioniert
Was kann oder muss ich ändern damit jede Smilie geauscht wird und nicht nur der letzte im Ordner?
Oder wie kann mein vorhaben auch anders machen ?
Alle Chats und Shoutboxen die ich so gefunden habe hatten alle feste Smilies und wahren nicht wie ich es möchte einfach im Ordner tauschbar
12 sind normal und mit einen Link "mehr Smilies" sollen mehr kommen.
Die sollen angezeigt werden und für das übliche Javascript verfahren anklickbar sein .Dafür wird ja meistens ein kürzel oder Wort genommen. Das kürzel ,bzw Wort hole ich aus den Dateinamen.
Das funktioniert auch alles.
Aber hier trotzdem mal der Code weil ihr habt bestimmt nee bessere Idee dafür
PHP-Code:
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
$verzeichnis = "./emoticon/small/";
if ( is_dir ( $verzeichnis )){
if ( $handle = opendir($verzeichnis) ){
$dazu='';
$zahlen=0;
while (($file = readdir($handle)) !== false){
$ext = pathinfo($file, PATHINFO_EXTENSION);
$killen=array('index.php','test1.php','test2.php','test.php');
if (!in_array($file, $killen)) {
if($ext == 'png' or $ext == 'jpg' or $ext == 'gif'){
$zahlen++;
$remove2 = array('-', '+', '_','.png','.gif','gif');
$smiliebbckuerzel = str_replace($remove2, " ", $file);
$ar = str_word_count($smiliebbckuerzel, 1);
if(isset($_GET['mehrsmilies'])){
$mengesmilies=$_GET['mehrsmilies'];
}else{
$mengesmilies=12;
}
$more=$mengesmilies+24;
if($zahlen<=$mengesmilies){
$w=" '";
$dazu.='<a href="javascript:smilie_sb('.$w.$ar[0].$w.');"><img src="'.$verzeichnis.$file.'" alt="Smilie '.$ar[0].'" style="border: 0;" /></a>';
if($zahlen==$mengesmilies){
$dazu.='<a href="?mehrsmilies='.$more.'">24 Smilies mehr</a>';
}
}
}
}
}
echo $dazu;
closedir($handle);
}
}
?>
Also muss man das Kürzel ja mit repleace mit den img austauschen.
Da ist jetzt mein problem.
Mit fummeln und co ,schaffe ich es nur das der letzte Smilie im Ordner ersetzt wird. Ich könnte ja jetzt für alle Smilies das repleace schreiben ,doch ich wollte es eigentlich über den Ordner auslesen machen.
Hier der Code der nur halb funktioniert
PHP-Code:
<?php
function shout01_smilies($text){
$verzeichnis = "./emoticon/small/";
if ( is_dir ( $verzeichnis )){
if ( $handle = opendir($verzeichnis) ){
$dazu='';
$zahlen=0;
$text1='';
while (($file = readdir($handle)) !== false){
$ext = pathinfo($file, PATHINFO_EXTENSION);
$killen=array('index.php','test1.php','test2.php','test.php');
if (!in_array($file, $killen)) {
if($ext == 'png' or $ext == 'jpg' or $ext == 'gif'){
$zahlen++;
$remove2 = array('-', '+', '_','.png','.gif','gif');
$smiliebbckuerzel = str_replace($remove2, " ", $file);
$ar = str_word_count($smiliebbckuerzel, 1);
//------------- ab hier ist mein problem
$uu=$ar[0];
$li=$verzeichnis.$file;
// $text.=str_replace($uu, '<img src="'.$li.'">', $text);
$text=str_replace($uu, '<img src="'.$li.'">', $text);
return $text;
//---------------------------
}
}
}
closedir($handle);
}
}
}
echo shout01_smilies('prost');
?>
Oder wie kann mein vorhaben auch anders machen ?
Alle Chats und Shoutboxen die ich so gefunden habe hatten alle feste Smilies und wahren nicht wie ich es möchte einfach im Ordner tauschbar
Kommentar