PHP Console - Pomocník pro každého

Zdroj: SOOM.cz [ISSN 1804-7270]
Autor: Harvie
Datum: 2.3.2007
Hodnocení/Hlasovalo: 1.62/13

Pokud občas potřebujete komplexnější nástroj pro svojí práci, mít po ruce a pohotově všechny funkce přenosného hypertextového preprocesoru ( :) ), nebo třeba jenom kalkulačku schopnou počítat se složitějšími vzorci, nebo dělat MD5ky. PHP Console je právě pro vás.

Pokud občas potřebujete komplexnější nástroj pro svojí práci, mít po ruce a pohotově všechny funkce přenosného hypertextového preprocesoru ( :) ), nebo třeba jenom kalkulačku schopnou počítat se složitějšími vzorci, nebo dělat MD5ky.. PHP Console je právě pro vás.

Nezajímají mě detajly a chci si to jen stáhout zde:
- EXE: php_shell.exe
- PHP: PgDn...

Zajímají mě detajly:

Pokud si budete chtít skript nahrát na flašku a nosit jako jeden exáč, můžete ho do něj zaembedovat pomocí BamCompile, pokud zvolíte použití UPX, takový soubor bude mít asi 500-700 kB. Samozřejmě si do něj můžete vložit další skripty a php moduly, které chcete používat, k tomu musíte samozřejmě zaembedovat také php.ini (takové soubory už budou trochu větší).

BTW: Tuhle věc jsem vymylel, když jsem si chtěl napsat pokročilejší kalkulačku se spoustou funkcí, závorkami a jednoduchou syntaxí...

Kód této php kalkulačky je velice jednoduchý (najdelší část je funkce readline, kterou jsem si přetáhnul z jiného svého kódu), tady je:



Tipy:
- Všiměte si, že výzva konzole je obsažená v proměnné "$prompt", pokud na příkazový řádek tedy napíšete $prompt = "\nzadej prikaz: "; ,vyzva se změní.
- Podobně si do skriptíku můžete dopsat vlastní funkce a napsat si tak malý přenosný toolkit na hackování, počítání, funkci help(), která se spustí například při zadání příkazu "_help", nebo cokoli jiného.
- Také by se dalo přečíst z parametrů převzatých z příkazového řádku jméno skriptu, který se má po spuštění nainkludovat a mít tak přenosný a takřka plnohodnotný PHP CLI.

Opakování:
- Práci s konzolí ukončíme příkazem: "die();"
- Jiný php skript spustíme: "include("skript.php");"
- Jiný spustitelný soubor: "system("dir");"
- Soubor vytisknete: "readfile("moje.txt");"
- Prohlížení webu: "readfile("http://domain.com/moje.txt");"
- Zpětná lomítka v řetězci musíme zdvojit ("\\") a před uvozovky napsat zpětné lomítko (" já: \"Ahoj.\" Řekl jsem...").
- řetězec "\n" značí nový řádek

Kalkulačka:
- echo(1+(2*4-(1/2)));
- echo(sin(62));
- echo(md5("soom.cz"));

- ("AB" . "CD") = ("ABCD") - $prom = (3.14); echo("pi: " . $prom); - if ( $prom == 3.14 ) { echo ("je PI!"); } Bugy:
- Nevím, zda moje readline() bude fungovat v PHP 4 (toto je PHP 5).
- Tím vzniká další problém - BamCompile umí zatím embedovat runtime pouze pro PHP 4
- Myslím ale, že jsem na root.cz viděl redline, která fungovala ve 4ce ale ne zase v 5ce (proto jsem psal svojí...)
- Smyčky a podmínky lze psát zatím jen jednořádkové, ale to by šlo ošetřit, voláním readfile před provedením kódu tolikrát, než budou uzavřeny všechny závorky, nebo pomocí implementace řídícího příkazu (např: "_CODE"), který bude načítat řádky dokud nebude zadán jiný (např: "_CODEEND")

Já osobně to používám tak jak to je, php soubory mám sasociované s interpreterem, takže stačí kliknout a taky to šlape.

Tímto nahraďte funkci readline() pro PHP 4 a BamCompile:


Tak si to užijte ve zdraví a ať vám to slouží...
Th4+'5 4ll f0lks!!