Komut satırından, böyle ev dizini alabilirsiniz:
~/
Nasıl benim PHP CLI komut dosyası içinde ev dizini alabilirim?
#!/usr/bin/php
<?php
echo realpath(~/);
?>
Kullan $_SERVER['HOME']
Edit:
Eksiksiz yapmak için, print_r($_SERVER)
komut satırından çalıştırıldığında, bana ne verdi bakın:
Array
(
[TERM_PROGRAM] => Apple_Terminal
[TERM] => xterm-color
[SHELL] => /bin/bash
[TMPDIR] => /var/folders/Lb/LbowO2ALEX4JTK2MXxLGd++++TI/-Tmp-/
[TERM_PROGRAM_VERSION] => 272
[USER] => felix
[COMMAND_MODE] => unix2003
[__CF_USER_TEXT_ENCODING] => 0x1F5:0:0
[PATH] =>/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/usr/X11/bin
[PWD] => /Users/felix/Desktop
[LANG] => de_DE.UTF-8
[SHLVL] => 1
[HOME] => /Users/felix
[LOGNAME] => felix
[DISPLAY] => /tmp/launch-XIM6c8/:0
[_] => ./test_php2
[OLDPWD] => /Users/felix
[PHP_SELF] => ./test_php2
[SCRIPT_NAME] => ./test_php2
[SCRIPT_FILENAME] => ./test_php2
[PATH_TRANSLATED] => ./test_php2
[DOCUMENT_ROOT] =>
[REQUEST_TIME] => 1260658268
[argv] => Array
(
[0] => ./test_php2
)
[argc] => 1
)
Ben ilgili güvenlik bilgilerini maruz kalmayız ;)
O $_SERVER['HOME']
Windows kullanılamaz etmeyin. Bunun yerine, değişken $_SERVER['HOMEDRIVE']
ayrılır ve $_SERVER['HOMEPATH']
.
Yapmanız çalıştığınız ne ve nerede bağlıdır.
$_SERVER
olmayan bir sunucu komut dosyası için tamamen güvenilmez, ANCAK $_ENV['HOME']
, standart bir kabuk için daha iyi olabilir. Her zaman print_r( $GLOBALS )
ve çevre ile oynamak size verir ne görebilirsiniz. CLI komut dosyası çağrıldığında phpinfo()
da plaintxt dışarı tükürür, ve sadece iyi ole php -i
bir kabuk yürütülen aynısını yapacağız.
Kullan $_SERVER['DOCUMENT_ROOT'].