Problem mit Sonderzeichen beim Bild einbinden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit Sonderzeichen beim Bild einbinden

    Hallo,

    ich habe eine Galerie programmiert. Dort können User Bilder hochladen. Ich habe ein Problem mit anzeigen von Bilder, die blöde Dateinamen haben wie z. B Xlöder °^=[] %^filena,e s.we `´´#.jpg

    Das Bild wird zwar hochlgeladen, der Bildname wird in der Datenbank gespeichert, doch beim einbinden mit

    PHP-Code:
    print "<img src='".htmlentities($bildname)."'>"
    wird das Bild nicht angezeigt. Ich habe es auch schon mit htmlspecialchars versucht, klappt auch nicht.

    Hat jemand eine Idee? Oder soll ich solche Dateinamen mit einem regulären Ausdruck schon vor dem Speichern in einen besseren umwandeln?
    Powered by Apple Computer und Mac OS X 10.2

  • #2
    Re: Problem mit Sonderzeichen beim Bild einbinden

    Original geschrieben von de_Hannes
    Hat jemand eine Idee? Oder soll ich solche Dateinamen mit einem regulären Ausdruck schon vor dem Speichern in einen besseren umwandeln?
    guter ansatz ...

    - mach dir 2 arrays ($suche / $ersetze)
    - lass ein str_replace über den dateinamen laufen
    - fertig
    Kissolino.com

    Kommentar


    • #3
      ok danke, hab das jetzt schon vor dem speichern abgefangen und alle Sonderzeichen ersetzt, so sind die Dateinamen auch mehr HTML tauglich. Die defekten Bildern werd ich einfach löschen, da mache ich nicht lange rum.

      Komischerweise lieferte htmlentities fast das gleiche Ergebnis wie wenn ich das Bild in ein HTML Edititor eingebunden habe, aber nur fast eben.
      Powered by Apple Computer und Mac OS X 10.2

      Kommentar


      • #4
        Probiers doch mal mit urlencode und urldecode.
        Vielleicht geht es ja damit, weil es ja schließlich ein URL ist und die Sonderzeichen da ja entsprechend umgewandelt werden.

        Kommentar


        • #5
          hm
          hast du das bild im selben verzeichniss??
          also ich würd beim hochladen schon überprüfen ob solche zeiche drin sind..
          und halt was gegen tun.

          hier ein check:

          PHP-Code:
          // erlaubte zeichen:
          $zeichen '012345679abcdefghijklmnopqrstuvwxyz-_';

          for(
          $i=0;$i<strlen($bildname);$i++) {
          if(!
          in_array($zeichen,$bildname[$i])) die 'NICHT ERLAUBT';

          ungetestet
          mfg

          Kommentar


          • #6
            Meinst Du nicht eine Regex à la:

            /^[0-9a-z-_]+$/i

            wäre übersichtlicher und kürzer ... ??

            PS.: Auch nicht getestet ... !
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              Original geschrieben von goth
              Meinst Du nicht eine Regex à la:

              /^[0-9a-z-_]+$/i

              wäre übersichtlicher und kürzer ... ??

              PS.: Auch nicht getestet ... !
              bestimmt

              kann ich nur nich *gg*

              Kommentar


              • #8
                @ DSB: Nene, mit ulencode geht das nicht. Ich will nur die Sonderzeichen aber keine Slashes etc. konvertieren, damit der Browser auch die Bilder mit den krummen Namen lädt. Das speichern is ja kein Thema.

                Bei mir schaut der reguläre Ausdruck so aus:
                #[^a-z0-9_\-.]#i

                Dann hab ich davor noch einen, der mit so Sachen wie ä in ae umwandelt, dann kommt der obige, der den Rest macht.
                Powered by Apple Computer und Mac OS X 10.2

                Kommentar

                Lädt...
                X