romegames 1
romegames
Krutzo 1
Krutzo
shrpnl 1
shrpnl
Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

PHP – Sistem Çağrıları

Carissa

Administrator
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye Turkmmo Discord Nitro Booster
Admin
VIP Üye
Katılım
2 Mar 2015
Konular
59,189
Mesajlar
88,439
Çözüm
109
Online süresi
4mo 16d
Reaksiyon Skoru
14,280
Altın Konu
2,398
TM Yaşı
11 Yıl 3 Ay 6 Gün
Başarım Puanı
1,051
MmoLira
695,092
DevLira
234
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

hq720.jpg

PHP'nin yerleşik fonksiyon kütüphanesi, PHP kodu içinden işletim sistemi yardımcı programlarını ve harici programları çağırmakla ilgilenen bir fonksiyon kategorisi içerir. Bu bölümde, sistem çağrılarını gerçekleştirmek için kullanılan PHP fonksiyonlarını ele alacağız.

system() Fonksiyonu

system() fonksiyonu, C'deki system() fonksiyonuna benzer; verilen komutu yürütür ve sonucu çıktı olarak verir.

system(string $command, int &$result_code = null): string|false

PHP bir sunucu modülü olarak çalışıyorsa system() çağrısı her çıktı satırından sonra web sunucusunun çıktı tamponunu otomatik olarak temizlemeye çalışır. Başarılı olduğunda komut çıktısının son satırını, başarısız olduğunda ise false değerini döndürür.

Örnek

Aşağıdaki PHP kod parçacığı Windows işletim sisteminin DIR komutunu çağırır ve geçerli dizindeki dosyaların listesini görüntüler.

PHP:
<?php
   echo '<pre>';

   // Outputs all the result of DOS command "dir", and returns
   // the last output line into $last_line. Stores the return value
   // of the shell command in $retval.
   $last_line = system('dir/w', $retval);

   // Printing additional info
   echo '
   </pre>
   <hr />Last line of the output: ' . $last_line . '
   <hr />Return value: ' . $retval;
?>

Aşağıdaki çıktıyı üretecektir:

Volume in drive C has no label.
Volume Serial Number is 7EE4-E492

Directory of C:\xampp\htdocs
[.] [..] applications.html bitnami.css
[dashboard] employee.csv favicon.ico hello.csv
hello.html hello.php homepage.php
index.php [Langi] menu.php myform.php
myname.php new.png new.txt test.php
test.zip [TPcodes] uploadfile.php [webalizer]
welcome.png [xampp]
18 File(s) 123,694 bytes
8 Dir(s) 168,514,232,320 bytes free

Last line of the output: 8 Dir(s) 168,514,232,320 bytes free
Return value: 0

[/QUOTE]

[HEADING=1][COLOR=rgb(251, 160, 38)]shell_exec() Fonksiyonu[/COLOR][/HEADING]
shell_exec() fonksiyonu PHP'nin backtick operatörüyle aynıdır. Verilen komutu kabuk aracılığıyla yürütür ve tam çıktıyı bir dize olarak döndürür.

[QUOTE]
shell_exec(string $command): string|false|null
[/QUOTE]

Fonksiyon, yürütülen komutun çıktısını içeren bir dize döndürür; boru oluşturulamazsa false, bir hata oluşursa veya komut hiçbir çıktı üretmezse null döndürür.

[HEADING=2][COLOR=rgb(251, 160, 38)]Örnek[/COLOR][/HEADING]
Aşağıdaki kodda, geçerli dizindeki uzantısı ".php" olan dosyaların listesini elde etmek için shell_exec() fonksiyonunu kullanıyoruz.

[CODE=php]<?php
$output = shell_exec('dir *.php');
echo "<pre>$output</pre>";
?>[/CODE]

[B]Aşağıdaki çıktıyı[/B] üretecektir:

[QUOTE]
Volume in drive C has no label.
Volume Serial Number is 7EE4-E492

Directory of C:\xampp\htdocs

10/26/2023 08:27 PM 73 hello.php
10/12/2023 10:40 AM 61 homepage.php
07/16/2015 09:02 PM 260 index.php
10/12/2023 10:39 AM 49 menu.php
09/25/2023 01:43 PM 338 myform.php
10/12/2023 10:49 AM 51 myname.php
10/26/2023 02:00 PM 369 test.php
09/25/2023 01:42 PM 555 uploadfile.php
8 File(s) 1,756 bytes
0 Dir(s) 168,517,771,264 bytes free
[/QUOTE]

[HEADING=1][COLOR=rgb(251, 160, 38)]exec() Fonksiyonu[/COLOR][/HEADING]
exec() fonksiyonu verilen komutu bir dize argümanı olarak yürütür.

[QUOTE]
exec(string $command, array &$output = null,
int &$result_code = null):string|false
[/QUOTE]

[B]$output[/B] parametresi , belirtilirse, komuttan gelen her satır çıktısıyla doldurulacak bir dizidir.

[HEADING=2][COLOR=rgb(251, 160, 38)]Örnek[/COLOR][/HEADING]
Bu durumda, programın içinden whoami komutunu çağırmak için exec() fonksiyonunu kullanırız. whoami komutu kullanıcı adını döndürür.

[CODE=php]<?php

// outputs the username that owns the running php/httpd process
// (on a system with the "whoami" executable in the path)
$output=null;
$retval=null;
exec('whoami', $output, $retval);
echo "Returned with status $retval and output:\n";
var_dump($output);

?>[/CODE]

[B]Aşağıdaki çıktıyı[/B] üretecektir:

[QUOTE]
Returned with status 0 and output: array(1)
{ [0]=> string(13) "gnvbgl3\mlath" }
[/QUOTE]


[HEADING=1][COLOR=rgb(251, 160, 38)]passthru() Fonksiyonu[/COLOR][/HEADING]
passthru() fonksiyonu harici bir programı çalıştırır ve ham çıktıyı görüntüler. passthru() fonksiyonu exec() veya system() fonksiyonuna benzemesine rağmen bir komutu çalıştırır, ancak işletim sistemi komutundan gelen çıktının tarayıcıya doğrudan geri geçirilmesi gereken ikili veri olması durumunda onların yerine kullanılmalıdır.

[HEADING=2][COLOR=rgb(251, 160, 38)]Örnek[/COLOR][/HEADING]
Sistem PATH ortam değişkeninin içeriğini görüntülemek için passthu() fonksiyonunu kullanan bir PHP programı:

[CODE=php]passthru(string $command, int &$result_code = null): ?false
<?php
passthru ('PATH');
?>[/CODE]

[B]Aşağıdaki çıktıyı[/B] üretecektir:

[QUOTE]
PATH=C:\Python311\Scripts\;C:\Python311\;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\WINDOWS\System32\OpenSSH\;C:\xampp\php;C:\Users\mlath\AppData\Local
\Microsoft\WindowsApps;C:\VSCode\Microsoft VS Code\bin
[/QUOTE]

[HEADING=1][COLOR=rgb(251, 160, 38)]Ters tırnak operatörü[/COLOR][/HEADING]
PHP bir yürütme operatörünü destekler: backtick'ler (``). (tek tırnak işareti değillerdir!) PHP backtick'lerin içeriklerini bir kabuk komutu olarak yürütmeyi dener; çıktı döndürülür. Backtick operatörünün kullanımı shell_exec() ile aynıdır.

[HEADING=2][COLOR=rgb(251, 160, 38)]Örnek[/COLOR][/HEADING]
Aşağıdaki örneğe bir göz atın:

[CODE=php]<?php
$output = `dir *.php`;
echo "<pre>$output</pre>";
?>[/CODE]

[B]Aşağıdaki çıktıyı[/B] üretecektir:

[QUOTE]
Volume in drive C has no label.
Volume Serial Number is 7EE4-E492

Directory of C:\xampp\htdocs

10/26/2023 08:42 PM 61 hello.php
10/12/2023 10:40 AM 61 homepage.php
07/16/2015 09:02 PM 260 index.php
10/12/2023 10:39 AM 49 menu.php
09/25/2023 01:43 PM 338 myform.php
10/12/2023 10:49 AM 51 myname.php
10/26/2023 02:00 PM 369 test.php
09/25/2023 01:42 PM 555 uploadfile.php
8 File(s) 1,744 bytes
0 Dir(s) 168,471,289,856 bytes free
[/QUOTE]

[B]shell_exec()[/B] devre dışı bırakıldığında backtick operatörü devre dışı kalır.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst