PHP en Linux
Dit is misschien een domme vraag en "denk" ik niet mogelijk maar is er een script voor een shell script onder linux laten uitvoeren?
Alvast Bedankt!
system('bestand.extensie')
Code (php)
1
2
3
4
5
2
3
4
5
<?
$shellbestand = "/var/shell/hello.sh";
$braaksel = shell_exec("sh $shellbestand");
echo "$braaksel";
?>
$shellbestand = "/var/shell/hello.sh";
$braaksel = shell_exec("sh $shellbestand");
echo "$braaksel";
?>
($braaksel is een array met daarin elke regel van de uitkomst als een string, ik heb er echo neer gezet, maar je kan ook foreach gebruiken natuurlijk, of while)
Zou moeten werken
Gewijzigd op 27/08/2004 23:02:00 door Joris van Rooij
En als $braaksel een array is moet je dus print_r() gebruiken:
Met een foreach kun je dan de hele array doorlopen als je de gegevens wil gebruiken.
Nop, hoeft niet. Echo en print zijn language constructors geen functies :)
Quote:
Nop, hoeft niet. Echo en print zijn language constructors geen functies :)
komt door de "forgiveness" van php, zeggen ze.
Quote:
echo() is eigenlijk geen functie (het is een language construct), dus je hoeft geen haakjes te gebruiken. Sterker nog, als je meer dan één parameter gebruikt mag je geen haakjes gebruiken. Het is niet mogelijk echo() te gebruiken als een variabele functie.
(Bron: http://nl2.php.net/echo)
(Bron: http://nl2.php.net/echo)
Quote:
print() is eigenlijk geen functie (het is een language construct) dus het is niet noodzakelijk om haakjes te gebruiken.
(Bron: http://nl2.php.net/print)
(Bron: http://nl2.php.net/print)
De haakjes zijn dus eigenlijk niet nodig, maar voor het gemak kunnen ze toch gebruikt worden zoals bij functies :)
Gewijzigd op 27/08/2004 23:27:00 door dutchcamel
Oke niet meer over verder dan gaan he ;)
Quote:
Weer wat geleerd, had de thread van mitch niet meer bijgehouden. (niet dat ik echo ooit als functie heb gebruikt). Eigenlijk is dit een beetje off-topic aan het gaan. voor deze discussie hier een link:
http://www.phphulp.nl/php/tutorials/10/151
http://www.phphulp.nl/php/tutorials/10/151
Tsja ik dacht echt dat het een functie was, een ervaren PHP'er had me dat verteld ...
Mja het maak eigenlijk toch niet uit, wanneer gebruik je nu meer dan 1 argument met echo()?
Ehm...nja nu we toch offtopic bezig zijn zal ik er maar op in gaan hier. Ik zou het niet weten :D Het staat zo op php.net dus het zal wel mogelijk zijn... Toch benieuwd hoe dat er dan uitziet eigenlijk.. Iemand die dat kan uitleggen? :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// de standaard manier
echo 'foo';
// Funtie stijl
echo('foo');
// Multiline echo
echo 'foo
bar';
// Prettige manier om grote stukken tekst te echo'en
echo <<<stopwoordje
Hier kan je gewoon alles tussen plaatsen, inclusief single en double quotes " '
alle soorten brackets ( ) [ ] { }
en zelfs php tags <? ?> <?php ?>
stopwoordje;
?>
// de standaard manier
echo 'foo';
// Funtie stijl
echo('foo');
// Multiline echo
echo 'foo
bar';
// Prettige manier om grote stukken tekst te echo'en
echo <<<stopwoordje
Hier kan je gewoon alles tussen plaatsen, inclusief single en double quotes " '
alle soorten brackets ( ) [ ] { }
en zelfs php tags <? ?> <?php ?>
stopwoordje;
?>
Hopelijk is het zo duidelijk genoeg :)
enne er is nog een manier om iets te executen
Code (php)
1
2
3
4
5
2
3
4
5
<?
$shellbestand = "/var/shell/hello.sh";
$braaksel = shell_exec("sh $shellbestand");
echo "$braaksel";
?>
$shellbestand = "/var/shell/hello.sh";
$braaksel = shell_exec("sh $shellbestand");
echo "$braaksel";
?>
dat kan je vervangen door dit
Ik heb je laatste regel uit geprobeerd, maar daar mag je dus geen foutjes in maken. apache crashte toen ik daar een h vergat achter de s van de extentie. De "forgiveness" is hier dus niet echt door gedrongen.
Edit:
@kennie: Is er nu eigenlijk wel een goed atwoord op je vraag?
Gewijzigd op 28/08/2004 09:25:00 door Joris van Rooij
Code (php)
1
2
3
4
5
2
3
4
5
<?
$shellbestand = "/var/shell/hello.sh";
$braaksel = shell_exec("sh $shellbestand");
echo "$braaksel";
?>
$shellbestand = "/var/shell/hello.sh";
$braaksel = shell_exec("sh $shellbestand");
echo "$braaksel";
?>
moet het denk ik zijn want ik moet een bestand kunnen uitvoeren voor gameservers dus bijv, /home/gameserver/start (geen .sh maar dat maakt denk ik geen verschil ;))
Code (php)
1
2
3
4
5
2
3
4
5
<?
$commandant = "/home/gameserver/start";
$braaksel = shell_exec($commandant);
echo "$braaksel";
?>
$commandant = "/home/gameserver/start";
$braaksel = shell_exec($commandant);
echo "$braaksel";
?>
edit: nou ja, bij een gameserver zou ik toch meer naar de richting van een java ssh client to gaan. Is wat gemakkelijker. Kun je ook gelijk kijken hoe het met je server is.
Gewijzigd op 28/08/2004 14:24:00 door Joris van Rooij
ja alleen ik ben een n00b met java ^^
maar ik heb nu een script op linux met echo erin, kan ik dat dan ook daar displayen of gaat dan vanzelfs?
Java ssh client is eigenlijk niet zo lastig, je kunt hem gewoon downloaden en zorgen dat je een runtime hebt. (ook wel bekend als jre)
Mindterm is een goeie, en er zit ook nog es goeie info bij.
http://www.appgate.com/products/80_MindTerm/110_MindTerm_Download/index.php
Je moet me niet vragen hoe je hem moet installeren/gebruiken. ik weet alleen dat het werkt. ik heb er geen ervaring mee.
Edit: volgens mij had ik je vraag niet goed begrepen. De echo in shellscrips komt niet in conflict met de echo in php, het zijn namelijk twee verschillende processen.
Gewijzigd op 28/08/2004 20:52:00 door Joris van Rooij
Quote:
wanneer je de output van een gameserver wilt displayen heb je toch echt java nodig. Maar wanneer de einige output die je wilt zien is of hij gestart is of niet, kun je print_r() gebruiken. $braaksel is namelijk een array.
Java ssh client is eigenlijk niet zo lastig, je kunt hem gewoon downloaden en zorgen dat je een runtime hebt. (ook wel bekend als jre)
Mindterm is een goeie, en er zit ook nog es goeie info bij.
http://www.appgate.com/products/80_MindTerm/110_MindTerm_Download/index.php
Je moet me niet vragen hoe je hem moet installeren/gebruiken. ik weet alleen dat het werkt. ik heb er geen ervaring mee.
Edit: volgens mij had ik je vraag niet goed begrepen. De echo in shellscrips komt niet in conflict met de echo in php, het zijn namelijk twee verschillende processen.
Java ssh client is eigenlijk niet zo lastig, je kunt hem gewoon downloaden en zorgen dat je een runtime hebt. (ook wel bekend als jre)
Mindterm is een goeie, en er zit ook nog es goeie info bij.
http://www.appgate.com/products/80_MindTerm/110_MindTerm_Download/index.php
Je moet me niet vragen hoe je hem moet installeren/gebruiken. ik weet alleen dat het werkt. ik heb er geen ervaring mee.
Edit: volgens mij had ik je vraag niet goed begrepen. De echo in shellscrips komt niet in conflict met de echo in php, het zijn namelijk twee verschillende processen.
ja alleen shell login heb ik liever niet omdat dan hebben ze teveel toegang op de server dan ik wil ;)