PHP en Linux

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kennie

Kennie

27/08/2004 21:28:00
Quote Anchor link
Hallo

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!
 
PHP hulp

PHP hulp

20/11/2024 05:27:38
 
Eris -

Eris -

27/08/2004 21:35:00
Quote Anchor link
system('bestand.extensie')
 
Joris van Rooij

Joris van Rooij

27/08/2004 23:00:00
Quote Anchor link
nou, probeer dit

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
$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
 
Dutchcamel

dutchcamel

27/08/2004 23:02:00
Quote Anchor link
Variabelen buiten quotes...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
echo $braaksel;
?>


En als $braaksel een array is moet je dus print_r() gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
print_r($braaksel);
?>


Met een foreach kun je dan de hele array doorlopen als je de gegevens wil gebruiken.
 
Joris van Rooij

Joris van Rooij

27/08/2004 23:03:00
Quote Anchor link
whoops, sorry. Ja, ik ben moe vandaag

klopt. officieel is het zelfs
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?echo($braaksel)?>
 
Dutchcamel

dutchcamel

27/08/2004 23:09:00
Quote Anchor link
Nop, hoeft niet. Echo en print zijn language constructors geen functies :)
 
Joris van Rooij

Joris van Rooij

27/08/2004 23:16:00
Quote Anchor link
Quote:
Nop, hoeft niet. Echo en print zijn language constructors geen functies :)


komt door de "forgiveness" van php, zeggen ze.
 
Dutchcamel

dutchcamel

27/08/2004 23:26:00
Quote Anchor link
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)


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)


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
 
Joris van Rooij

Joris van Rooij

27/08/2004 23:32:00
Quote Anchor link
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
 
Marien xD

Marien xD

27/08/2004 23:36:00
Quote Anchor link
Oke niet meer over verder dan gaan he ;)
 
Mitch X

Mitch X

27/08/2004 23:40:00
Quote Anchor link
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

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()?
 
Dutchcamel

dutchcamel

27/08/2004 23:44:00
Quote Anchor link
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? :)
 
Rick

Rick

28/08/2004 02:04:00
Quote Anchor link
je kan echo gewoon op meerdere manieren gebruiken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
;
?>


Hopelijk is het zo duidelijk genoeg :)
enne er is nog een manier om iets te executen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
$shellbestand
= "/var/shell/hello.sh";
$braaksel = shell_exec("sh $shellbestand");
echo "$braaksel";
?>

dat kan je vervangen door dit
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=`sh /var/shell/hello.sh`?>
 
Joris van Rooij

Joris van Rooij

28/08/2004 09:22:00
Quote Anchor link
@rick: en dat heb je foutloos weten te typen midden in de nacht? god onder je naam is verdiend...
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
 
Kennie

Kennie

28/08/2004 13:18:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?  
$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 ;))
 
Joris van Rooij

Joris van Rooij

28/08/2004 14:19:00
Quote Anchor link
oh, dat is iets heel anders! wanneer het geen shell-script is, moet je natuurlijk ook geen sh gebruiken voor je $shellbestand. het zou er dan zo uit zien:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?  
$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
 
Kennie

Kennie

28/08/2004 17:45:00
Quote Anchor link
ja alleen ik ben een n00b met java ^^
 
Kennie

Kennie

28/08/2004 17:46:00
Quote Anchor link
maar ik heb nu een script op linux met echo erin, kan ik dat dan ook daar displayen of gaat dan vanzelfs?
 
Joris van Rooij

Joris van Rooij

28/08/2004 20:05:00
Quote Anchor link
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.
Gewijzigd op 28/08/2004 20:52:00 door Joris van Rooij
 
Kennie

Kennie

29/08/2004 10:48:00
Quote Anchor link
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.


ja alleen shell login heb ik liever niet omdat dan hebben ze teveel toegang op de server dan ik wil ;)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.