Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Sonderzeichen bei preg_match_all

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Sonderzeichen bei preg_match_all

    Hallo,

    meine Funktion:

    function zahl_finden($dummy) { # gibt eine Zahl zurück
    preg_match_all('/[0-9]+,[0-9]+|[0-9]+/',$dummy,$Zahl);
    if ($Zahl[0][1]=='') {
    return $Zahl[0][0];
    }
    else {
    return '';
    }
    }

    soll mir aus einem String die einzig vorkommende Zahl liefern. Das funktioniert solange, wie kein Sonderzeichen im String vorkommt wie z.B. hier (γ ist alpha):

    $test="Der Winkel γ beträgt 45°.";
    $Zahl=zahl_finden($test);

    Das hier funktioniert und liefert 45:

    $test="Der Winkel Alpha beträgt 45°.";
    $Zahl=zahl_finden($test);

    Wie kann ich vorher z.B. alle diese Zeichen beginnend mit &# und endend mit ; entfernen?

    Danke!

  • #2
    Willkommen im Forum!

    Damit Du hier nicht mit dem falschen Fuß einsteigst beherzige bitte diesen Thread.
    Wichtige Punkte:
    • Wir helfen gern, wenn Du Initiative zeigst. Macht mal ist nicht.
    • Bitte benutze die Code-Box-Buttons und poste relevanten Code.
    • Bitte stelle verständliche Fragen in ordentlicher Sprache. Sei prägnant!
    • Bitte verwende für spätere Leser einen Threadtitel, der das Problem kurz beschreibt
    • Bitte drängle nicht.
    • Bitte markiere abgeschlossene Themen über den "Erledigt"-Link oben links.

    Kommentar


    • #3
      http://www.php.net/manual/de/functio...ars-decode.php
      Vielleicht damit?

      Übrigens ist das Gamma, und nicht Alpha

      Sorry, falsche Funktion: http://www.php.net/manual/de/functio...ity-decode.php

      Kommentar


      • #4
        Zitat von alxy Beitrag anzeigen
        Übrigens ist das Gamma, und nicht Alpha

        Danke, das nutzt mir nichts:
        Beim Durchsuchen des Strings "Der Winkel γ beträgt 50°" steht für Gamma der Code & # 947; . Und damit findet meine Funktion eben zwei Zahlen, nämlich 947 und 50, und das nutzt mir nichts. Ich bräuchte also sowas wie "Entferne alle, was zwischen &# und ; steht" oder ignoriere beim Suchen alles, was zwischen &# und ; steht.

        Nachtrag: ich helfe mir jetzt erstmal mit $dummy=preg_replace('#\&\#.*?\;#', '', $dummy);

        Stephan

        Kommentar


        • #5
          Warum benutzt Du denn Entities im Originalstring? Die brauchst Du doch erst bei der Ausgabe. Und nicht mal da, wenn Du konsequent mit Unicode arbeitest.

          Kommentar

          Lädt...
          X