Avatar billede spm Nybegynder
07. december 2006 - 15:53 Der er 3 kommentarer og
1 løsning

hjælp til "mønster" til preg_grep

hej.
Jeg er ved at lave et lille script som se ud på følgende måde:
<?php
exec('sudo sensors', $vis);
$linjer = count($vis);
$j = "0";
while ($j <= $linjer) {
echo "$vis[$j]<br>";
$j++;
}

?>
Dette producere et antal linjer som ser således ud:
+3.3V: +3.33 V (min = +3.14 V, max = +3.47 V)
+5V: +4.92 V (min = +4.76 V, max = +5.24 V)
Der er selvfølgelig flere..  ( se det hele her: www.michaelsenonline.dk/strom.php

Det jeg skal have gjort er at jeg skal have pillet den aktuelle værdi ud. f.eks for +3.3V er værdien 3.33V og for 5V er den 4.92.
Udmidbart ville jeg gøre det med explode(" ",$vis) Men det virker ikke da antallet af "mellemrum" er forskelligt.
Jeg har bølvet lidt med kommandoen: preg_grep  men jeg kan simpelt hen ikke få det mønster som skal pille værdien ud til at virke.:( (heller ej efter at have læst på php.net)
jeg har prøvet mig lidt med dette:
preg_greb("[/d]",$vis);  ->uden sucess

nogen som vil være behjælpelige?
Avatar billede coderdk Praktikant
07. december 2006 - 18:54 #1
Prøv:

exec( 'sudo sensors', $vis );
$text = implode( "\n", $vis );
if ( preg_match_all( "/(\w+):\s+([^(\n]+) \(/m", $text, $m ) )
{
    $arr = array_combine( $m[1], $m[2] );
    foreach ( $arr as $key => $val )
    {
        echo "<b>$key</b>: $val<br>";
    }
}
else
{
    echo "Fandt intet";
}
Avatar billede spm Nybegynder
07. december 2006 - 19:30 #2
AHH hva!
Det er jo super!!
DU kunne vel ikke tænke dig at forklar din " preg_match_all( "/(\w+):\s+([^(\n]+) \(/m", $text, $m ) ) " linje?
specielt det inden for paranteserne
Avatar billede coderdk Praktikant
07. december 2006 - 19:36 #3
\w+ er en eller flere "word"-chars. \s+ er en eller flere mellemrum (whitespaces) og [^(\n]+ er et eller flere bogstaver, bare ikke ( og linjeskift :)
Avatar billede spm Nybegynder
07. december 2006 - 19:59 #4
Okay.Super. MAnge tak skal du have!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester