---
title: "\"Klippa bort\" text från variabel?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/39831-klippa-bort-text-från-variabel"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "muskot"
published: "2002-03-17T17:41:01.000Z"
updated: "2002-03-20T23:03:17.000Z"
replies: 10
views: 410
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/39831-klippa-bort-text-från-variabel"
---

# "Klippa bort" text från variabel?

## #1 — muskot, 2002-03-17T17:41Z

Hej!

Har lite problem...

Med denna kod:

```php
<?php
$uptime = passthru("uptime.exe");
echo "$uptime";
?>
```

 

får jag denna output:

> \\\\SAFARI has been up for: 8 day(s), 2 hour(s), 2 minute(s), 24 second(s) Estimate based on last boot record in the event log. See UPTIME /help for more detail.

 

Går det att klippa bort onödig text så att jag endast får själva upptiden? Alltså "8 day(s), 2 hour(s), 2 minute(s), 24 second(s)" i det här fallet.

Jag har testat med en massa olika grejer men eftersom jag har inte lyckats överhuvudtaget känns det mest som jag hopplöst famlar i blindo för tillfället.

Tack på förhand!

Permalänk: https://www.webforum.nu/p/39831

## #2 — spango, 2002-03-17T17:57Z

Det här borde funka.

```php
$pattern = '/^.*(\\d+ day\\(s\\), \\d+ hour\\(s\\), \\d+ minute+\(s\\), \\d+ second\\(s\\)).*$/';
$uptime = `uptime.exe`;
$result = preg_replace( $pattern, '$1', $uptime );
echo $result;
```

Permalänk: https://www.webforum.nu/p/625166

## #3 — muskot, 2002-03-17T18:24Z

Tack för svaret... 

Dock fick jag följande felmeddelande när jag försökte köra koden:

Warning: Compilation failed: missing ) at offset 69 in d:\\wwwroot\\uptime.php on line 9

Ersatte då plustecknet efter "minute" med en backslash, men då fick jag precis samma typ av output som tidigare, dvs:

> \\\\SAFARI has been up for: 8 day(s), 2 hour(s), 49 minute(s), 39 second(s) Estimate based on last boot record in the event log. See UPTIME /help for more detail.

 

Jag blir galen på detta.

Permalänk: https://www.webforum.nu/p/625173

## #4 — spango, 2002-03-18T12:45Z

Så här...

\[fel\]

Permalänk: https://www.webforum.nu/p/625387

## #5 — muskot, 2002-03-18T16:46Z

Är jag dum nu, eller?

Permalänk: https://www.webforum.nu/p/625465

## #6 — SPiN, 2002-03-18T16:52Z

```
$pattern = '/^.*(\d+ day\(s\), \d+ hour\(s\), \d+ minute+\(s\), \d+ second\(s\)).*$/';
```

Permalänk: https://www.webforum.nu/p/625468

## #7 — muskot, 2002-03-18T17:51Z

Hmmzz.. fortfarande ingen skillnad. Kanske inte går?

> \\\\SAFARI has been up for: 9 day(s), 2 hour(s), 16 minute(s), 34 second(s) Estimate based on last boot record in the event log. See UPTIME /help for more detail.

Permalänk: https://www.webforum.nu/p/625495

## #8 — spango, 2002-03-18T18:00Z

[Det här](http://atlas.dsv.su.se/~gustaf-c/slask/uptime_styled.phps) funkar ([resultat](http://atlas.dsv.su.se/~gustaf-c/slask/uptime_styled.php)).

Permalänk: https://www.webforum.nu/p/625497

## #9 — muskot, 2002-03-18T18:13Z

Tack... nu fungerar själva koden, men jag har fortfarande problem. Följande kod:

```php
<?php

header( 'Content-Type: text/plain' );

$uptime = system("uptime.exe");
$pattern = '/^.*(\d+ day\(s\), \d+ hour\(s\), \d+ minute\(s\), \d+ second\(s\)).*$/';
$result = preg_replace( $pattern, '$1', $uptime );

echo "Ursprunglig text:\n$uptime\n\nMönster:\n$pattern\n\nResultat:\n$result";

?>
```

 

Ger denna output:

> \\\\SAFARI has been up for: 9 day(s), 2 hour(s), 36 minute(s), 26 second(s)
> 
> Estimate based on last boot record in the event log. 
> See UPTIME /help for more detail.
> Ursprunglig text:
> See UPTIME /help for more detail.
> 
> Mönster:
> /^.\*(\\d+ day\\(s\\), \\d+ hour\\(s\\), \\d+ minute\\(s\\), \\d+ second\\(s\\)).\*$/
> 
> Resultat:
> See UPTIME /help for more detail.

 

Det verkar som om uptime.exe skriver ut informationen på fyra rader. Hur löser man det?

Permalänk: https://www.webforum.nu/p/625501

## #10 — spango, 2002-03-20T22:38Z

OK, problemet löst. Mönstret måste ha två modifierare, *s* och *D* för att mitt mönster ska funka med flera rader. Exemplet på adressen ovan funkar nu... om du vill veta vad modifierarna gör, läs [det här](http://se.php.net/manual/en/pcre.pattern.modifiers.php).
Dessutom: Funktionen system hivar iväg resultatet av kommandot direkt till  browsern såväl som det returnerar det. Använd [exec](http://se.php.net/manual/en/function.exec.php) eller  [backticks](http://se.php.net/manual/en/language.operators.execution.php) i stället.

Permalänk: https://www.webforum.nu/p/629316

## #11 — muskot, 2002-03-20T23:03Z

Oj oj oj.. nu fungerar det!

```php
<?php

header( 'Content-Type: text/plain' );

$uptime = `uptime`;
$pattern = '/^.*( \d+ day\(s\), \d+ hour\(s\), \d+ minute\(s\), \d+ second\(s\)).*$/isD';

$result = preg_replace( $pattern, '$1', $uptime );

echo "Ursprunglig text:\n$uptime\nMönster:\n$pattern\n\nResultat:\n$result\n";

?>
```

 

Tusen tack för all hjälp, spango. Jättesnällt!

Permalänk: https://www.webforum.nu/p/629331

---

Tråden på webben: https://www.webforum.nu/amne/php/39831-klippa-bort-text-från-variabel
