Ankündigung

Einklappen
Keine Ankündigung bisher.

String trennen

Einklappen

Neue Werbung 2019

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

  • String trennen

    Hallo

    eine kleine Frage.

    Ich habe diesen Code

    PHP-Code:
                foreach ($message->messages as $key => $value) {

                        if(
    $value->from === "XXXX"){
                                    if( 
    substr($value->body08) == "GroupAdd"){

                                                
    $Group explode("#"$value->body);
                                                
    $Member explode("@"$value->body);

                                            return 
    $Group;
                                        }
                        }

                } 

    Es kommt ein String der so aufgebaut sein muss

    PHP-Code:
    GroupAdd #Vorstand @ABCDEFGH 
    WIe kann ich bei $Group den Teil ab dem @ wegbekommen?

    Gibt es probleme bei dieser Variante?

  • #2
    Das wird hier doch täglich gesagt: Poste bitte nachvollziehbaren Code welcher sich auf das Problem beschränkt und nicht irgendwelche Codestücke aus deiner Anwendung. Was kann alles in $value->body stehen? Liefere bitte einige Beispiele dafür und dazu wie dein gewünschtes Ergebnis $Group + $Member konkret aussehen soll. Besunders das letztere ist mir nicht klar. Vermute du möchtest "Vorstand" und "ACDEFGH" in getrennten Variablen? Aber hier geht das Rumgerate schon wieder los, was ich persönlich gar nicht mag.

    Kommentar


    • #3
      Im Prinzip fehlt da nix.

      Das steht im JSON drin

      PHP-Code:
      "id""XXXX",
            
      "from""YYYY",
            
      "type""text",
            
      "body""GroupAdd\n#Vorstand\n@2344ACVH",
            
      "createdAt""2021-03-04T10:40:07+0000" 
      ist im Json Tag messages:

      Kommentar


      • #4
        Zitat von jspit Beitrag anzeigen
        Das wird hier doch täglich gesagt: Poste bitte nachvollziehbaren Code welcher sich auf das Problem beschränkt und nicht irgendwelche Codestücke aus deiner Anwendung. Was kann alles in $value->body stehen? Liefere bitte einige Beispiele dafür und dazu wie dein gewünschtes Ergebnis $Group + $Member konkret aussehen soll. Besunders das letztere ist mir nicht klar. Vermute du möchtest "Vorstand" und "ACDEFGH" in getrennten Variablen? Aber hier geht das Rumgerate schon wieder los, was ich persönlich gar nicht mag.
        ja genau, ich benötigte die beiden Teile in seperaten Variablen

        Kommentar


        • #5
          Ich sehe als Trenner das Zeilenendezeichen als Möglichkeit.

          Kommentar


          • #6
            Zitat von protestix Beitrag anzeigen
            Ich sehe als Trenner das Zeilenendezeichen als Möglichkeit.
            Das wäre eine Möglichkeit, da es sich hier aber um einen Freitext handelt und die Keywörter "GroupAdd" und der Teil nach dem # und der anderen @ sind, könnte der User dass auch ohne \n schreiben. Dann wäre es eine Zeile. Also müsste ich den COde auf ist GroupAdd am Anfang und kommt ein # vor und ist ein @ drin, jeweils mit Werten hinten dran.

            Kommentar


            • #7
              PHP-Code:
              $value "GroupAdd\n#Vorstand\n@2344ACVH";

              $pattern '/^GroupAdd\s*#(?<group>.+)\s*@(?<member>.+)\s*$/';

              if (
              preg_match($pattern$value$matches)) {
                  echo 
              'Group: ' $matches['group'] . PHP_EOL;
                  echo 
              'Member: ' $matches['member'] . PHP_EOL;

              Code:
              Group: Vorstand
              Member: 2344ACVH

              Kommentar


              • #8
                Zitat von hellbringer Beitrag anzeigen
                PHP-Code:
                $value "GroupAdd\n#Vorstand\n@2344ACVH";

                $pattern '/^GroupAdd\s*#(?<group>.+)\s*@(?<member>.+)\s*$/';

                if (
                preg_match($pattern$value$matches)) {
                echo 
                'Group: ' $matches['group'] . PHP_EOL;
                echo 
                'Member: ' $matches['member'] . PHP_EOL;

                Code:
                Group: Vorstand
                Member: 2344ACVH
                Das sieht toll aus. Hast du die Zeit mir das kurz zu erklären?

                Kommentar


                • #9
                  Zitat von Matze1708 Beitrag anzeigen
                  Das sieht toll aus. Hast du die Zeit mir das kurz zu erklären?
                  Erklärung zu preg_match():

                  https://www.php.net/manual/de/function.preg-match.php

                  Erklärung zu Regex:

                  https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck

                  Kommentar

                  Lädt...
                  X