foreach Illegal string offset

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • foreach Illegal string offset

    Moin,

    ich glaube ich habe mal wieder lediglich einen Flüchtigkeitsfehler, komme aber nicht weiter.
    Ich erhalte die Meldung
    : Illegal string offset 'smilie_code' 125


    PHP-Quellcode

    1. public function bbc2html($tmpText) {
    2. global $DB;
    3. /*
    4. * Smilies laden
    5. */
    6. $DB->set_sql('SELECT * FROM ' . PREFIX . 'chat_smilies');
    7. $DB->execute();
    8. $row = $DB->fetch_assoc();
    9. $DB->free();
    10. foreach ($row as $v) {
    11. $tmpText = str_replace($v['smilie_code'], '<img src="modules/fragz_chat/images/emotions/'.$v['smilie_pic'].'" />', $tmpText);
    12. }
    13. return $tmpText;
    14. }
    Alles anzeigen
  • Ich kann es leider nicht formatieren da es via Ajax aufgerufen wird

    Quellcode

    1. ​array(3) { ["smilie_id"]=> string(1) "1" ["smilie_pic"]=> string(9) "alien.png" ["smilie_code"]=> string(7) ":alien:" } array(3) { ["smilie_id"]=> string(1) "1" ["smilie_pic"]=> string(9) "alien.png" ["smilie_code"]=> string(7) ":alien:" } array(3) { ["smilie_id"]=> string(1) "1" ["smilie_pic"]=> string(9) "alien.png" ["smilie_code"]=> string(7) ":alien:" } array(3) { ["smilie_id"]=> string(1) "1" ["smilie_pic"]=> string(9) "alien.png" ["smilie_code"]=> string(7) ":alien:" } array(3) { ["smilie_id"]=> string(1) "1" ["smilie_pic"]=> string(9) "alien.png" ["smilie_code"]=> string(7) ":alien:" } array(3) { ["smilie_id"]=> string(1) "1" ["smilie_pic"]=> string(9) "alien.png" ["smilie_code"]=> string(7) ":alien:" } array(3) { ["smilie_id"]=> string(1) "1" ["smilie_pic"]=> string(9) "alien.png" ["smilie_code"]=> string(7) ":alien:" } array(3) { ["smilie_id"]=> string(1) "1" ["smilie_pic"]=> string(9) "alien.png" ["smilie_code"]=> string(7) ":alien:" } array(3) { ["smilie_id"]=> string(1) "1" ["smilie_pic"]=> string(9) "alien.png" ["smilie_code"]=> string(7) ":alien:" } array(3) { ["smilie_id"]=> string(1) "1" ["smilie_pic"]=> string(9) "alien.png" ["smilie_code"]=> string(7) ":alien:" } array(3) { ["smilie_id"]=> string(1) "1" ["smilie_pic"]=> string(9) "alien.png" ["smilie_code"]=> string(7) ":alien:" } array(3) { ["smilie_id"]=> string(1) "1" ["smilie_pic"]=> string(9) "alien.png" ["smilie_code"]=> string(7) ":alien:" } array(3) { ["smilie_id"]=> string(1) "1" ["smilie_pic"]=> string(9) "alien.png" ["smilie_code"]=> string(7) ":alien:" }(01:05) BrainAFK: hhh
  • Mhh, der Array sieht an sich in Ordnung aus. 8|

    Probier mal bitte folgendes aus:

    PHP-Quellcode

    1. <?php
    2. foreach ($row as $v) {
    3. if(!isset($v['smilie_code']) {
    4. var_dump($v);
    5. echo '<br>';
    6. continue;
    7. }
    8. $tmpText = str_replace($v['smilie_code'], '<img src="modules/fragz_chat/images/emotions/'.$v['smilie_pic'].'" />', $tmpText);
    9. }
    Alles anzeigen


    Btw: Schau dir mal die Beispiele der PHPDoc an: php.net/manual/de/function.str-replace.php. Erstell lieber zwei Arrays mit den Codes und Replacements. Dadurch sparst du dir einige Durchlaufen des Strings.
  • Ich schau mir das mal an. Hab es aber schon gelöst bekommen.

    PHP-Quellcode

    1. /*
    2. * Smilies laden
    3. */
    4. $DB->set_sql('SELECT * FROM ' . PREFIX . 'chat_smilies');
    5. $DB->execute();
    6. while ($row = $DB->fetch_assoc()) {
    7. $sm[] = $row;
    8. }
    9. $DB->free();
    10. foreach ($sm as $v) {
    11. $tmpText = str_replace($v['smilie_code'], '<img src="modules/chat/images/emotions/'.$v['smilie_pic'].'" />', $tmpText);
    12. }
    13. return $tmpText;
    Alles anzeigen



    Langsam frage ich mich ob ich immer zu früh nach Hilfe "rufe"

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Grommel ()