PHP CLI içine dosya aktarmak nasıl?

3 Cevap php

Ben "scipt" ve "data.txt 'adlı bir Textfile adında bir PHP komut dosyası var. Şu anda çalıştırabiliriz, ama sonra "Data.txt" yazmanız gerekiyor. "Script" bu yüzden otomatik bir satırda bu şeyi çalıştırabilirsiniz için bir parametre olarak data.txt geçmek için herhangi bir yolu var mı?

Sağ şimdi yazarak kulüpler:

php script {enter} // script runs and waits for me to type filename
data.txt {enter}
... executes

İdeal gibi görünecektir:

php script data.txt {enter}
...executes

Ben tüm PHP komut satırından bu yapıyorum. Cheers :)

3 Cevap

Betiğinize argümanlar $argv mevcut olacak

Veya $_SERVER['argv'] (register_globals açıldıktan hangi gerektirmez) - Ancak, her iki çözüm de sahip gerektirir DO register_argc_argv döndü. Ayrıntılar için the documentation bakınız.

Aslında dosyayı gerekiyorsa, $argv değişkeni kullanarak dosya adı alabilirsiniz. İşte sizin gibi çalıştırmak için izin verecek

php script data.txt

Sonra "data.txt" $ argv [1] ($ argv [0] komut adı kendisidir) olacaktır.

Aslında dosyayı, ancak içeriğini ihtiyacınız yoksa. Sen normal akış okuma işlevlerinin herhangi bir (stream_get_contents(), fread() vs ..) kullanarak standart giriş (STDIN) işleyebilir. Bu yüzden gibi standart giriş yönlendirmenizi sağlar:

php script << data.txt

Bu * nix tarzı araçlar için ortak bir paradigma.