if/else mit Arrays vermeiden

  • Hallo @all [Blockierte Grafik: https://www.php.de/core/images/smilies/smile.png]pasted-from-clipboard.gif,


    ich habe aus einer anderen Website Quelltext in einer Variable gespeichert. Ich möchte aus diesem Quelltext eine bestimmte Zeile entfernen. Diese Zeile gibt Ländercodes an und sieht so aus: <span class="table-cell-item language">LÄNDERCODE</span>. Jetzt gibt es natürlich für jedes Land der Welt einen Ländercode und da kommen wir natürlich auf eine gewisse Zahl. Es kann sein, dass in dem Quellcode nur ein Ländercode vorkommt, es kann aber auch sein, dass ca. 50 Codes darin vorkommen.

    Da ist jetzt mein Problem. Wie überprüfe ich das, ohne tausende if/else Bedingungen zu schreiben? Wahrscheinlich gibt es dafür eine sehr einfache Lösung, die mir einfach nicht einfällt. Mein Code ist folgender.



    Das Problem ist natürlich jetzt, dass mit implode() alle Arrays auf einmal ausgegeben werden. Habt Ihr eine Lösung?

    LG

    Mauric

  • Ich würde preg_replace() verwenden, insbesondere, wenn <span class="table-cell-item language">...</span> im vorliegenden Fall nur einen/mehrere Ländercodes kapselt, also wirklich alles rückstandsfrei entfernt werden kann und darin keine weiteren <span>s mehr vorkommen können:

    PHP
    <?php
    $zeichenkette = '<span class="other">Hello.   <span class="table-cell-item language">LÄNDERCODE</span>  <em>Bye.</em></span>';
    $suchmuster = '/<span class="table-cell-item language">.*?<\/span>/';
    $ersetzung = '';
    echo preg_replace($suchmuster, $ersetzung, $zeichenkette);
    ?>

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE/edit?usp=sharing

  • Darum geht es gar nicht. ;)


    Das Problem ist, dass Du mehrere Foren damit beschäftigst, ohne dass die Helfenden davon wissen. Während in Forum A vielleicht schon eine Lösung gepostet wurde, zerbrechen sich die User in Forum B noch immer den Kopf. Das ist einfach nicht in Ordnung, weil es die Zeit von Freiwilligen vergeudet.


    Wenn Du es unbedingt in mehreren Foren gleichzeitig posten willst, wäre ein Hinweis mit Links zu den anderen Themen mehr als fair. Alles andere ist einfach fehlender Respekt ggü. potentiellen Unterstützern und wird im Internet nicht gerne gesehen.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Verstehe was du meinst, aber du solltest deine Informationen wenigstens überprüfen. :)


    Habe am Freitag 16.04 um 19:53, also knapp 4 Stunden vor deinem Post im von dir verlinkten Forum geschrieben:

    "Ok kann tatsächlich geschlossen werden. Wurde mit preg_replace gelöst. War wirklich dumm xD".


    Somit habe ich darauf hingewiesen, dass ich A) keine Hilfe benötige und B) habe ich auch geschrieben wie es gelöst wurde.


    So viel zu Respekt. Lies bitte den ganzen Post bevor du irgendwelche Anschuldigungen von dir lässt.

  • Keine Sorge, ich habe mir damals beide Threads durchgelesen. ;)


    Du hast um 19:19 und 19:33 Threads eröffnet. Nachdem Du hier eine Lösung erhalten hast, hast Du im anderen Forum um 19:53 geschrieben, dass es gelöst wurde. (Und so getan, als ob Du selbst drauf gekommen bist.)


    D.h. Du hast für mindestens 20 Minuten zwei Foren damit beschäftigt. Wäre nicht schnell eine passende Antwort gekommen, wäre dieses Spielchen vielleicht einige Tage weiter gegangen. Nur weil noch nichts gepostet wurde, heißt das ja nicht, dass sich Helfende nicht schon damit beschäftigen.


    Dass ich erst einige Stunden später darauf hingewiesen habe, hat damit gar nichts zu tun. Ich wollte Dich damit nur auf Dein Fehlverhalten hinweisen, damit Du es in Zukunft eventuell vermeiden kannst. Die kleine neckische Zusatzbemerkung bezüglich dem Smiley war - zugegebenermaßen - unnötig von mir, dennoch konnte ich sie mir nicht verkneifen. Ich bin nämlich kein aktiver User des anderen Forums und habe den Thread nur deshalb gefunden.


    Ich würde vorschlagen: Lassen wir das Thema an dieser Stelle ruhen. Du kannst über das Thema Crossposting nochmals in Ruhe nachdenken und Dir überlegen, ob Du es in Zukunft weiterhin so machst. Ich persönlich weiß allerdings, dass ich keine Zeit zur Lösungsfindung in Crosspostings investieren werde.


    LG & stay healthy

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)