php exec() linjeskift i kommandoen

*klonk*
Antal: 266
Tilmeldt:
31-01-2004
User is offline
php exec() linjeskift i kommandoen

Hejsa

Som udgangspunkt, har jeg meget, meget lidt erfaring med php / programmering generelt, så det skal lige huskes :)

Jeg vil gerne bruge php's exec() til at køre en kommando på systemet.

Det virker også, men kommandoen vil ende med at blive temmelig lang og uoverskuelig, hvis ikke den formateres lidt.

Det kan jeg bare ikke finde ud af inden i en 'exec()' !

I et bash script, som jeg egentlig troede var det format 'exex' sender, bryder man jo linjer med en '\'

#!bin/bash
langkommando der skal \
brydes op

Kommandoen jeg gerne vil bryde op, er følgende:

exec("rrdtool graph /var/www/html/testgraf.png -h 400 -w 1000 -D --slope-mode --start -720 --end now --color BACK#ecf0f1 --color MGRID#80808000 --color GRID#80808000 DEF:net3=$rrd:value:AVERAGE LINE1:net3#3498db ");

..men sætter jeg et '\' ind, så ser exec det som to kommandoer.

Svaret er garanteret helt indlysende, men jeg mangler erfaring :)

På forhånd tak.


marlar
Antal: 3392
Tilmeldt:
05-12-2009
User is offline
Der er mange måder. Her er

Der er mange måder. Her er en:

exec("rrdtool graph /var/www/html/testgraf.png -h 400 -w 1000 -D --slope-mode " .
     "--start -720 --end now --color BACK#ecf0f1 --color MGRID#80808000 ".
     "--color GRID#80808000 DEF:net3=$rrd:value:AVERAGE LINE1:net3#3498db");

*klonk*
Antal: 266
Tilmeldt:
31-01-2004
User is offline
Super, tak :) Hvilke

#1:

Super, tak :) Hvilke andre metoder findes der?

Hold da op, jeg er glad for jeg ikke programmerer til daglig. Jagten på korrekt formattering var da lige ved, at drive mig til vanvid :)


frogmaster
frogmaster's picture
Antal: 4831
Tilmeldt:
20-05-2010
User is offline
#2 Jeg synes det er fedt du

#2

Jeg synes det er fedt du prøver uden først at spørge andre. Det er lidt forudsætning for at lære nyt. Det er også ualmindelig svært at være autodidakt og derfor altid nødvendigt at opsøge dokumentation.

Måske vil det hjælpe at kikke i PhP manualer?
https://www.google.dk/search?q=php+manual&oq=php+m...


*klonk*
Antal: 266
Tilmeldt:
31-01-2004
User is offline
#3 Det er jo den eneste

#3 Det er jo den eneste måde jeg får systemet op at køre, for der er ikke andre til at ordne det :)
Problemet med at springe i, i den mellemdybe ende er, at jeg ikke hver gang kan starte med at læse en guide for begyndere for hvert sprog osv. der bruges.
At bash, python, html, php, JS og hvad der ellers indgår i denne pærevælling, så har hver sin måde (som alligevel næsten er ens) at terminere linjer, delklarere variabler osv., gør bare at jeg fra tid til anden er ved at springe i luften :)


marlar
Antal: 3392
Tilmeldt:
05-12-2009
User is offline
Hvilke andre metoder

#2: Hvilke andre metoder findes der?

En god løsning er heredoc. Med det kan man angive en stor tekstmængde som spænder over flere linjer og som også evaluerer variabler som $rrd i dit tilfælde.

$cmd = <<<eod
rrdtool graph /var/www/html/testgraf.png -h 400 -w 1000 -D --slope-mode \
--start -720 --end now --color BACK#ecf0f1 --color MGRID#80808000 \
--color GRID#80808000 DEF:net3=$rrd:value:AVERAGE LINE1:net3#3498db \
eod;

exec($cmd);


*klonk*
Antal: 266
Tilmeldt:
31-01-2004
User is offline
#5 Hov, jeg glemte helt at

#5

Hov, jeg glemte helt at sige tak for svaret :)

Mvh