Variable aus einem String bekommen

  • Guten Abend Com,


    ich habe ein kleines Problem, bei dem ich einfach die Funktion nicht verstehe (trotz "Wiki") ^^
    Ich habe einen String "volume: X%".
    Hinter dem Volume steht eine Zahl in Prozent. Diese möchte ich haben (ohne das %-Zeichen ;) ). Ich verstehe jedoch nicht ganz wie ich an diese ran komme.


    Wäre nett wenn mir jemand helfen könnte.


    Gruß,
    HB :thumbup:

    Einmal editiert, zuletzt von H4rd_B4se ()

  • Dann lösch es doch:


    PHP
    var_dump(preg_match('/[^a-z\s-\.]/i',volume: X%));


    Verstehe deine Frage auch nicht so ganz...


    Negativ, denn der String enthält noch andere Texte und Variablen.


    Also ich hab den Text: "xxxx volume: 90% xxxx" (90 ist hierbei variabel, xxxx sind weitere Texte)
    Und ich möchte die 90 aus dem Text (in eine Variable) bekommen.

  • Wenn du hier nach nem Regulären Ausdruck fragst müsstest du schon den genauen String, oder Zumindest einen der dem Originalen sehr ähnelt, angeben. Mit xxx kann man da nicht wirklich arbeiten^^


    volume:100% repeat: off random: off single: off consume: off


    Eventuell steht vor volume noch der Name eines Radiosenders


    @BrotZeit: das gibt mir bei 100 nur die 1 aus ;)

  • Bitte beachte, dass reguläre Ausdrücke möglicherweise nicht die beste Variante (Performance, Sinnigkeit etc.) für dein Vorhaben sind.


    Hier trotzdem mal eine Möglichkeit:

    PHP
    <?php
    $regex = "/(volume:\s+)([0-9]+)(%)/";
    $text = "volume: 90%";
    
    
    preg_match($regex, $text, $matches);
    
    
    echo $matches[2];

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • H4rd_B4se: Man könnte sich z.B. eine Funktion basteln, die explode oder substrings nutzt. Hier mal ein Beispiel mit explode.



    Edit: @NicoWiss: ich denke dieser String kommt von einer externen Website o.Ä.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Wenn dir die externe Website gehört kannst du auch was JSONmässiges raus batseln:


    $array = array('volume'=>wert);
    echo json_encode($arr);


    und dann auf der Hauptseite wieder mit json_decode zu einer Array dekodieren


    Nein, das kommt vom System (Raspberry Pi) ;)

    PHP
    system("mpc");


    Klemmlampe: danke probier ich mal



    /edit:
    Danke Klemmlampe:
    so hats geklappt:

    PHP
    $volumeLeer = string_between($string, 'volume:', '%');
    $volume = str_replace(' ','',$volumeLeer);

    Einmal editiert, zuletzt von H4rd_B4se ()

  • Wenn du, wie Klemmlampe es schrieb

    PHP
    string_between('volume: ', '%');


    benutzt (also mit Leerzeichen nach dem Doppelpunkt) benötigst du dein str_replace nicht mehr.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Dann nutze doch aber auch bitte trim/ltrim dafür.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.