PHP Echo Problem

  • Hallo zusammen,

    villeleicht kann oder mag mir jemand bei einem wahrscheinlich ziemlich doofen Problem Helfen (nein, das Problem an sich ist nicht doof aber mit ziemlicher Sicherheit werde ich, wenn jemand eine Lösung hat, danach einen roten Handabdruck auf der Stirn haben).

    Bei dem von mir genutzten Theme (Hamasaki) wird, wenn man kein Bild in den Artikel eingebunden hat, ein "no-image.gif"-Bild angezeigt. So weit so gut, das klappt, aber ich möchte gerne ein zufälliges Bild aus einem Verzeichnis dort anzeigen.

    Für das zufällige Anzeigen eines Bildes hab ich folgenden Einzeiler, der auch prima funktioniert:

    PHP
    <img src="/wp-content/themes/Hamasaki/images/artikelpix/<?php srand ((double) microtime() * 1000000); $tarotpic = file("/wp-content/themes/Hamasaki/images/artikelpix/pix.lst"); $i = count($tarotpic)-1; echo $tarotpic[rand(0,$i)];?>"width="300" height="225" />

    und die Originalzeile aus dem Theme, die auch funktioniert:

    PHP
    <div class="tumbr" style="border: 1px solid #fff; width: 140px;height: 110px;background: url(<?php if($image_src != '') { echo $image_src; } else { ?><?php bloginfo('template_directory'); ?>/images/no-image.gif<?php } ?>) 0 0 no-repeat;"> </div>

    und dann hab ich mich auf das Abenteuer eingelassen, die beiden zu verheiraten (eine Zwangsheirat - kann ja nicht gutgehen):

    PHP
    <?php srand ((double) microtime() * 1000000); $tarotpic = file("http://mythropolis.eu/wp-content/uploads/artikelpix/pix.lst"); $i = count($tarotpic)-1; ?>
    <?php $zuf_pic="http://mythropolis.eu/wp-content/uploads/artikelpix/".$tarotpic[rand(0,$i)]; ?>
     
    <div class="tumbr" style="border: 1px solid #fff; width: 140px;height: 110px;background: url(<?php if($image_src != '') { echo $image_src; } else { ?> <?php echo $zuf_pic; ?> <?php } ?>) 0 0 no-repeat;"> </div>

    Tja,

    Code
    <? php echo $zufpic; ?>


    alleine in einer Zeile, zeigt korrekt einen Pfad zu einem Bild aus dem Ordner mit den Zufallsbildern an - bei jedem Seitenaufruf ein anderes. In der IF-Else Abfrage gehts leider nicht und im Quellcode des Browsers sieht man, daß die Schleife genau an dieser Stelle unterbrochen wird.

    Findest jemand meinen Denkfehler?

    Vielen Dank im Voraus und viele Grüße
    Werner (php Dilletant)

    Update:
    Vielleicht erbarmt sich ein lieber Admin und ändert die Überschrift in "Wenn kein Bild im Artikel, Zufallsbild anzeigen" ab. Danke ;)

    Einmal editiert, zuletzt von Erion (14. Juni 2010 um 10:04)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Wie lautet die Fehlermeldung ?

    Es gibt leider keine.
    Im Quelltext steht dann:

    Code
    <div style="border: 1px solid rgb(255, 255, 255); width: 140px; height: 110px;" class="tumbr"> </div>


    sieht so aus als wenn die Funktion die if-else Abfrage kaputtmacht.

    Denn wenn man das Wort "echo" oder die ganze Funktion weglässt, - meine die hier:

    PHP
    <?php echo $zuf_pic; ?>


    steht im Quelltext:

    Code
    <div style="border: 1px solid rgb(255, 255, 255); width: 140px; height: 110px; background: url(&quot;&quot;) no-repeat scroll 0pt 0pt transparent;" class="tumbr"> </div>


    Ist ja fast richtig, nur der Pfad zum Zufallsbild fehlt, den ja $zuf_pic liefern soll.

  • Das ist natürlich dumm, dann einschalten.

    Done.
    Notice: Undefined offset: 0 in der vorletzten Zeile:

    [code]
    <?php
    $id =$post->ID;
    $the_content =$wpdb->get_var("SELECT post_content FROM $wpdb->posts WHERE ID = $id");
    $pattern = '!<img.*?src="(.*?)"!';
    preg_match_all($pattern, $the_content, $matches);
    $image_src = $matches['1'][0]; <!-- IN DIESER ZEILE -->
    ?>

    Zitat

    Prüfe mal die Pfadangaben, da hängts doch schon!


    Im Original funktionieren sie, evtl. hab ich beim "anonymisieren" einen Fehler gemacht.
    Ausserhalb der if else Abfrage zusammen mit einem "img src=" werden Zufallsbilder zuverlässig angezeigt.

    Grummel, das scheint eine Hinterlassenschaft des Theme-Programmierers zu sein. Die Fehlermeldung erscheint immer dann, wenn kein Bild in den Artikel eingebunden ist.
    Und wenn statt einer <php echo funktion> nur ein Pfad (text) dort steht (so wie im Original) dann erscheint das Standart-no-image.gif (aber gleichzeitig immer noch die Fehlermeldung).

    Danke für deine bisherige Mühe !!

    Einmal editiert, zuletzt von Erion (14. Juni 2010 um 17:48)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!