Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
PHP a skriptování v shellu

Martin Povolný
Martin Povolný (neregistrovaný)
7. 10. 2002 10:28 Nový

nesmysl

celé vlákno

Cituji: "Méně známá je skutečnost, že PHP lze úspěšně použít pro psaní shellových skriptů."

Co je na tech skriptech sheloveho? Copak php je shell?

Mel jste snad na mysli, ze jde php pouzit nejen
k psani CGI skriptu ale i samostatne spoustenych?

Myslim, ze ctenarum delate v terminologii pekny gulas.

Martin Povolný
Martin Povolný (neregistrovaný)
7. 10. 2002 10:34 Nový

uz nemuzu

celé vlákno

Cast "Volání příkazů shellu"

Cituji:
"Jazyk PHP obsahuje několik příkazů pro přímé volání externích programů: exec(), passthru(), ..."

Takze treba /bin/date je prikaz shelu, nebo co?


Cituji: "Všechny můžeme využít i v PHP skriptech pro shell."

Tohle prosim vysvetlit. Ja si myslim, ze je to uplna kravina.

pj
pj (neregistrovaný)
10. 10. 2002 13:20 Nový

Re: uz nemuzu

celé vlákno

trosku menej arogancie by vam iba prospelo.

"shellove skripty" autor ZJAVNE myslel ako skripty, spustitelne v shelly a kooperujuce s ostatnymi standardnymi programami tohto druhu.

karel
karel (neregistrovaný)
7. 10. 2002 10:48 Nový

neco chybi

celé vlákno

a ja si zase myslim, ze chybi nejdulezitejsi konstrukce

$x=`/bin/ls`;

Nepto
Nepto (neregistrovaný)
11. 10. 2002 14:13 Nový

Re: neco chybi

celé vlákno

Co takto si opa:tovne precitat kapitolu "Volání příkazů shellu" uvedeneho clanku? :-)

gilhad
gilhad (neregistrovaný)
7. 10. 2002 11:00 Nový

Prima napad

celé vlákno

Ted zrovna dost programuju v PHP a tak me potesilo ze je mozno ho pouzit i takto. Nektere veci, ktere v PHP jdou snadno, se v shellscriptech prece jen delaji dost slozite. (A samozrejme i naopak.)
Co se terminologie tyce, mozna neni pouzita zcela spravne, ale rozhodne nemate.

RWS
RWS (neregistrovaný)
7. 10. 2002 11:32 Nový

Moc se mi to nelibi

celé vlákno

Taky delam casto shellovy newebovy skripty (konkretne BASH) a zkusil jsem ted udelat jeden skriptik v PHP. Jak jsem byl ale nemile prekvapen, kdyz jsem chtel pomoci system() spoustet, ktery byl v aktualnim adresari,ale skript jsem spoustel z nadadresare (../skript.php). PHP kricelo, ze nemuze program najit. Pekne dlouho jsem stravil hledanim, nez jsem zjistil, ze funkce system() se prepne do adresare, odkud je PHP skript vyvolany. Normalni BASH skript samozrejme zustane v adresari, odkud spustim skript. Sorry, ale tohle je uchylarna. Cim vic s PHPckem delam, tim vic vidim, ze jeste neni dost zraly.

Miloslav Ponkrác
Miloslav Ponkrác (neregistrovaný)
7. 10. 2002 13:27 Nový

Re: Moc se mi to nelibi

celé vlákno

Sdílím podobný názor. PHP má některé vlastnosti, které při použití jako shell vadí. Dle mého není jeho návrh promyšlený.

Zato při použití krátkých skriptů, které dělají něco s databází je velmi dobrý.

pj
pj (neregistrovaný)
10. 10. 2002 13:23 Nový

Re: Moc se mi to nelibi

celé vlákno

aahahaha, teraz ste si solidne nakadil :)
vid nizsie uvedeny prispevok o prepinaci -C

J. Hysek
J. Hysek (neregistrovaný)
7. 10. 2002 13:52 Nový

Perl nestaci?

celé vlákno

Na tohle uz delsi dobu pouzivam Perl a za PHP bych nemenil ani nahodou. Ale kazdy podle vkusu, PHP na psani spustitelnych skriptu nikomu neberu...

Pavel
Pavel (neregistrovaný)
7. 10. 2002 13:53 Nový

Shelove skripty v Kylixu

celé vlákno

Omlouvam se (trochu) za tu ironii, ale nemohl jsem si pomoci...

Neni snad lepsi pouzivat na jednotlive ukoly nastroje pro to urcene?

Ja jsem treba leta programoval v Delphi a predstavte si, pro jednoduche veci v Linuxu nepisu programy v Kylixu, ale resim je perlovym nebo shelovym skriptem. Naucit se neco noveho snad jeste nikomu neublizilo.

Ale, no flame, at kazdy dela jak mu to vyhovuje.

Nepto
Nepto (neregistrovaný)
7. 10. 2002 15:24 Nový

Re: Shelove skripty v Kylixu

celé vlákno

Ano, naucit sa nieco nove este nikomu neublizilo. Ide ale o efektivitu. Ak je niekto dost dobry v istej technologii, resp. programovacom jazyku, je naozaj zbytocne aby sa ucil cosi nove, ked si vystaci s tym co vie.

PaD
PaD (neregistrovaný)
7. 10. 2002 20:21 Nový

Re: Shelove skripty v Kylixu

celé vlákno

Pokud jz je clovek natolik 'dobry' v PHP technologii, tak jiste uz prisel na volbu -q sam a z povahy teto volby (teda pokud to ma v hlave vporadku) vyvodi zaver, ze se v tom daji psat i jine veci nez jen stranky. Jinak na urcite veci je to jiste vhodna volba.

PaD

Nepto
Nepto (neregistrovaný)
8. 10. 2002 20:02 Nový

Re: Shelove skripty v Kylixu

celé vlákno

Velmi uzitocny je tiez prepinac -C (zrusenie premiestenia sa do adresaru skriptu pri jeho spusteni).

honzik
honzik (neregistrovaný)
7. 10. 2002 15:27 Nový

PHP coby skript se mi osvědčil - ve Windows

celé vlákno

ve Windows coby shellový skript má následující
výhody:

- neexistují v něm viry
- s Active directory se dobře obcuje přes LDAP
- vynikající podpora SQL serverů
- rychlý interní SMTP mailer
- podpora COM objektů

Příklad:

Po logonu uživatele potřebuji získat jeho celé jméno a toto nastavit coby Username vkládané do dokumentů ve WORDu: (v AD existuje uživatel "ldap" s právy Account operatora)

<?php

// Nastavi pro MS Office jmeno a inicialy uzivatele

$un=getenv("username");
// Pripojime se pres LDAP k Active Directory, zjistime dulezitosti

if( !$ds=ldap_connect("LDAP://w2kserver/") ) die();
if( !$r=ldap_bind($ds,"CN=ldap,OU=Special Users,DC=firma,DC=cz","heslo_ldap") ) die();
if( !$sr=ldap_search($ds,"DC=firma,DC=cz","samaccountname=$un") ) die();

@$info = ldap_get_entries($ds, $sr);

// Pokud nesmysly

if( empty($info) ) die();
if( $info["count"]==0 ) die();

@$displayname=$info[0]["displayname"][0];
@$initials=$info[0]["initials"][0];

if( empty($displayname) || empty($initials) ) die();

// Ty uz nepotrebujeme...

ldap_free_result($sr);
ldap_close($ds);

// Nastavime WORD

$word=new COM("WORD.Application");
$word->username = $displayname;
$word->userinitials = $initials;
$word->useraddress = "firma\r\nulice\r\nmesto";
$word->Quit(0);
$word->Release();
$word = null;
?>

dogmatix
dogmatix (neregistrovaný)
7. 10. 2002 23:15 Nový

Re: PHP coby skript se mi osvědčil - ve Windows

celé vlákno

Mnoo, ono ano, jestli pisete takto tak se nedivim, ze se Vam osvedcil... neberte to jako napadani, ale mozna by pomohlo trosicku se zamyslet nad tim, co pisete...

@$info = ldap_get_entries($ds, $sr);
if( empty($info) ) die();

martin
martin (neregistrovaný)
8. 10. 2002 0:06 Nový

Re: PHP coby skript se mi osvědčil - ve Windows

celé vlákno

ten kod je fakt masakr, neco takoveho by melo byt trestne zverejnovat :)

Miloslav Ponkrác
Miloslav Ponkrác (neregistrovaný)
8. 10. 2002 9:14 Nový

Re: PHP coby skript se mi osvědčil - ve Windows

celé vlákno

Naopak, velmi děkuji autorovi za zveřejnění, je to pro mě dobrý vzor. Ukázal, jak se dá snadno využít na speciální Windowsové věci.

Holt nepíše čistě, ale ukázal princip. A to je fajn. O nic více nejde.

SinisteR
SinisteR (neregistrovaný)
8. 10. 2002 0:20 Nový

PHP shell

celé vlákno

Je sice dobre, ze php ma tuto podporu, ale bohuzel mnoho serveru (napriklad globe.cz) vubec nemaji tuseni co muzou zpusobit chytrejsi chtive ruce s jejich neschopnosti nastavit urcite zabezpeceni PHP na serveru.

Je to sice pekne ale jako server o linuxu by se zde melo psat prave o chybach, ktere muze mit zanasledek kolaps serveru diky crackeru kteri znaji vyborne PHP ze strany programatora-systemaka..
Jentak aby nestala rec bych zde upozornil na safe_mode_exec_dir mnoho serveru toto uplne ignoruje nebo to vubec nezna a tim delaj velkou chybu..

B0biN
B0biN (neregistrovaný)
8. 10. 2002 9:47 Nový

Re: PHP shell

celé vlákno

Ukazte mi na netu vyznamneho poskytovatele web-hostingu, ktery NEPOUZIVA safe_mode u PHP, to by to po 10 min. provozu takoveho serveru mohl zabalit ..:o)) nebo ne?

martin
martin (neregistrovaný)
8. 10. 2002 11:14 Nový

Re: PHP shell

celé vlákno

pes.cz ale tam uz roota ma nekdo jiny ;)

anonym
anonym (neregistrovaný)
8. 10. 2002 11:27 Nový

Re: PHP shell

celé vlákno

Globe, Superhosting, Spynet ....

Wejn
Wejn (neregistrovaný)
12. 10. 2002 11:54 Nový

Re: PHP shell

celé vlákno

Mno, pokud ma clovek velmi dobre nakonfigurovany server (ne, nemam na mysli veci jako posledni updaty, atp. Spise koncept -- bezp. politiku), tak je safe mod sice dalsi drobnosti ke ztizeni pruniku, ale neni (diky bohu) jedinou ochranou . Jestli nejaky webhosting spoleha jen na safe mod, tak ho driv nebo pozdeji nekdo hackne take. (a dobre jim tak!)

aron
aron (neregistrovaný)
8. 10. 2002 12:21 Nový

pouzivat veci na to k comu su urcene

celé vlákno

asi tak ze s phpckom na skriptovanie je asi ako zo shellom na web :) aj jedno aj druhe sa da :) .... ale ak uz je potreba pisat skripty a la /usr/bin/php -q tak to radsej /usr/bin/perl. hmm a myslim ze este peknych par rokov to tak bude a nejake phpcko ho len tak hned nenahradi. (naviac sa v nom daju ovela vecie divociny napisat :-) )

kokot
kokot (neregistrovaný)
9. 10. 2002 16:15 Nový

Re: pouzivat veci na to k comu su urcene

celé vlákno

A kde je napsane co je k cemu urcene?

robo
robo (neregistrovaný)
10. 10. 2002 1:10 Nový

programovanie do PHP

celé vlákno

Zdravim.
Prosim Vas, neviete niekto programovat nove extensions do PHP? Pada mi to na segmentation fault a neviem pouzivat niektore makra. Dokumentaciu som (okrem zakladnych principov z php doc) nenasiel.
Dik Robo
Ozvite sa mi prosim na mail.

Martin
Martin (neregistrovaný)
13. 10. 2002 17:00 Nový

Otázka, volání skriptu s definováním proměné

celé vlákno

Jak spustit skript treba ./start a jako parametr nastavit nejakou promenou, treba $a="neco". Trochu umím vytvářet shallové skripty a v php taky neco zvládnu. Hlavně se mi líbí pro komunikaci s databází, ale docela my dost chybí to def. proměné!!! Neví někdo jak na to????

Sheedee
Sheedee (neregistrovaný)
1. 1. 2004 18:29 Nový

Re: Otázka, volání skriptu s definováním proměné

celé vlákno

Pokus se osudově nemýlím, tak v PHP proměnné, snad až na příkaz var u definice třídy, nedefinujete. Prostě je použijete a ony se nadefinují samy, ale možná že jste myslel něco jiného ;)

Harvie
Harvie (neregistrovaný)
27. 12. 2006 11:37 Nový

Nice

celé vlákno
Ahoj lidi,
zkuste si zvýraznění syntaxe:
php -s mujskript1.php > mujskript1.html
a stripnutí komentářů a bílých znaků:
php -w mujskript1.php > mujskript1_s.php
(To se ale užije spíš na webu, pokud jenom nechcete znepřehlednit kód pro zákazníky, nebo lidi, kterým ho - i když neradi - musíte poskytnout)
Tomáš Mudruňka aura:54
2. 1. 2007 19:49 Nový

PHP Moduly

celé vlákno
Dají se v PHP používat knihovny, které používáme například v Céčku? Moduly pro PHP jsou přece DLL knihovny.
Rathanuviel
Rathanuviel (neregistrovaný)
31. 1. 2008 13:45 Nový

PHP Cli pod Windows XP

celé vlákno
Ahoj,

predpokladam, ze asi opakuji problem, ktery se v ramci root.cz pravdepodobne jiz probiral, ale bohuzel se mi nepodarilo zadne pojednani o tomto problemu nikde najit. Asi jsem hledal spatne....

Nicmene, nainstaloval jsem si PHP 5.2.5, ze ktereho chci pouzit pouze CLI (PHP.EXE) pro skriptovani z prikazove radky.

PHP.exe ("C:\Program Files\PHP\") je v PATH, z prikazove radky mi funguje "PHP -v", "PHP -i" atd.
Problem je v tom, ze se mi nedari spustit zadny pripraveny skript ani tento jednoduchy testovaci (C:\temp\test.php):
#!C:\Program Files\PHP\php.exe -q
<?
echo "IT WORKS!";
?>
Kdyz spustim skript z prikazove radky (C:\Temp>php test.php),
je vystupem nasledujici:
<?
echo "IT WORKS!!!";
?>
To znamena, ze jedine, co php.exe provede, je ze obsah souboru test.php vypise na STDOUT. Vysledkem C:\Temp>php -f test.php a C:\Temp>php -f c:\temp\test.php je porad to same.

Nevite prosim nekdo, jak donutit php.exe a muj skript provedl a ne jenom zreprodukoval jeho obsah na STDOUT?

Predem dekuji za jakoukoliv reakci
Rathanuviel
Rathanuviel (neregistrovaný)
31. 1. 2008 13:52 Nový

PHP Cli pod Windows XP - oprava

celé vlákno
Ahoj,

predpokladam, ze asi opakuji problem, ktery se v ramci root.cz pravdepodobne jiz probiral, ale bohuzel se mi nepodarilo zadne pojednani o tomto problemu nikde najit. Asi jsem hledal spatne....

Nicmene, nainstaloval jsem si PHP 5.2.5, ze ktereho chci pouzit pouze CLI (PHP.EXE) pro skriptovani z prikazove radky.

PHP.exe ("C:\Program Files\PHP\") je v PATH, z prikazove radky mi funguje "PHP -v", "PHP -i" atd.
Problem je v tom, ze se mi nedari spustit zadny pripraveny skript ani tento jednoduchy testovaci (C:\temp\test.php):
#!C:\Program Files\PHP\php.exe -q
<?
echo "IT WORKS!";
?>
Kdyz spustim skript z prikazove radky (C:\Temp>php test.php),
je vystupem nasledujici:
<?
echo "IT WORKS!!!";
?>
To znamena, ze jedine, co php.exe provede, je ze obsah souboru test.php vypise na STDOUT. Vysledkem C:\Temp>php -f test.php a C:\Temp>php -f c:\temp\test.php je porad to same.

Nevite prosim nekdo, jak donutit php.exe a muj skript provedl a ne jenom zreprodukoval jeho obsah na STDOUT?

Predem dekuji za jakoukoliv reakci

P.S.: Omlouvam se za dublovany dotaz, ale chtel jsem jej zalozit jako registrovany, aby mi chodili e-mailem pripadne reakce. Diky za pochopeni.
Mirek
Mirek (neregistrovaný)
2. 6. 2008 11:45 Nový

Re: PHP Cli pod Windows XP - oprava

celé vlákno
Staci zmenit uvodni znacku '<?' na '<?php'
Zasílat nově přidané příspěvky e-mailem