|
| Regulære udtryk - hjælp. Fra : Kasper Lund |
Dato : 12-07-07 15:19 |
|
Hej.
Jeg har før fået hjælp herinde, men har nu et nyt problem.
Jeg har en variabel med følgende indhold:
"Memory usage: total:4457,54 Mb - used: 1231,69 Mb (28%) - free: 3225,85
Mb (72%)"
Hvordan får jeg fat i tallet i den første parantes, altså her 28?
Håber i kan hjælpe - også gerne med noget forklaring til jeres løsning.
/Kasper
| |
Bertel Lund Hansen (12-07-2007)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 12-07-07 15:26 |
|
Kasper Lund skrev:
> Jeg har en variabel med følgende indhold:
> "Memory usage: total:4457,54 Mb - used: 1231,69 Mb (28%) - free: 3225,85
> Mb (72%)"
> Hvordan får jeg fat i tallet i den første parantes, altså her 28?
$pos=strpos($variable,'(')+1;
$len=strpos($variable,'%')-$pos;
$pct=substr($variable,$pos,$len);
--
Bertel
http://bertel.lundhansen.dk/ http://fiduso.dk/
| |
Simon Juncker (13-07-2007)
| Kommentar Fra : Simon Juncker |
Dato : 13-07-07 20:00 |
|
"Bertel Lund Hansen" <unospamo@lundhansen.dk> wrote in message
news:hfhyp9zzmpd0$.p1k54hc8xnwx$.dlg@40tude.net...
> Kasper Lund skrev:
>
>> Jeg har en variabel med følgende indhold:
>> "Memory usage: total:4457,54 Mb - used: 1231,69 Mb (28%) - free: 3225,85
>> Mb (72%)"
>
>> Hvordan får jeg fat i tallet i den første parantes, altså her 28?
>
> $pos=strpos($variable,'(')+1;
> $len=strpos($variable,'%')-$pos;
> $pct=substr($variable,$pos,$len);
Er strpos og substr regular expressions?
| |
Jonas Delfs (12-07-2007)
| Kommentar Fra : Jonas Delfs |
Dato : 12-07-07 15:59 |
|
Kasper Lund skrev:
> Jeg har en variabel med følgende indhold:
> "Memory usage: total:4457,54 Mb - used: 1231,69 Mb (28%) - free: 3225,85
> Mb (72%)"
>
> Hvordan får jeg fat i tallet i den første parantes, altså her 28?
Følgende skulle gerne finde alle tilfælde af parentes-begynd og så et
tal: (utestet!)
preg_match('/\(([0-9]+)/', $string, $matches);
// kig nu på $matches, fx print_r($matches)
Forklaring: [0-9]+ matcher et hvilket som helst helt tal. Der er så
parenteser om for at få resultatet i $matches array'et. Og foran er der
en parentes-begynd som escapes med en backslash fordi det er et specielt
tegn.
Mvh. Jonas
| |
Kasper Lund (13-07-2007)
| Kommentar Fra : Kasper Lund |
Dato : 13-07-07 08:23 |
|
On Thu, 12 Jul 2007 16:58:40 +0200, Jonas Delfs wrote:
>
> preg_match('/\(([0-9]+)/', $string, $matches);
> // kig nu på $matches, fx print_r($matches)
Virker umiddelbart fint, bortset fra at outputtet i begge parantser er
det samme og den napper parantes start og slut med - se her:
Array ( [0] => (27 [1] => 27 )
| |
Peter Brodersen (13-07-2007)
| Kommentar Fra : Peter Brodersen |
Dato : 13-07-07 09:09 |
|
On 13 Jul 2007 07:23:28 GMT, Kasper Lund <fake@usenet.dk> wrote:
>> preg_match('/\(([0-9]+)/', $string, $matches);
>> // kig nu på $matches, fx print_r($matches)
>
>Virker umiddelbart fint, bortset fra at outputtet i begge parantser er
>det samme og den napper parantes start og slut med - se her:
>
>Array ( [0] => (27 [1] => 27 )
$matches[0] indeholder alt det matchede. Den er ikke relevant her.
Brug blot $matches[1]
--
- Peter Brodersen
Kendt fra Internet
| |
Kasper Lund (13-07-2007)
| Kommentar Fra : Kasper Lund |
Dato : 13-07-07 15:22 |
|
On Fri, 13 Jul 2007 10:09:28 +0200, Peter Brodersen wrote:
>
> $matches[0] indeholder alt det matchede. Den er ikke relevant her.
> Brug blot $matches[1]
>
Arh - det virker perfekt. Tak til jer alle.
| |
|
|