Php geçirilen zaman newlines komut satırı üzerinden yorumlanır olmamak

1 Cevap php

Ben kabuk oluşturulan bir mesaj ile otomatik bir e-posta gönderir başka bir kabuk komut yürütmesini ediyorum bir PHP komut dosyası var. Tüm satır karakterleri mesajın içine yazdırılır mesaj göndermek zaman sorundur. Onları nasıl yorumlanmalıdır alabilirim?

sendmail.sh:

/path/to/phpscript/sendmail.php "Some Message With Newlines\nHello World.\n"

sendmail.php:

$message = $argv[1] . "\nNewline";
$smtp->send($to, $from, $message);

Tek şey $ argv değişken yorumlanır sonra \ n ve aslında yeni bir hat üzerinde Newline yazdırır, ancak $ argv değişkene newlines, şimdiye kadar, diğer şeyler arasında, çift tırnak içinde değişken kaydırma denedim ama var yok boşuna.

1 Cevap

Ne real satırsonu ile komut arama hakkında:

$ php temp.php "Some Message With Newlines
> Hello World.
> "

temp.php Bu içeren:

var_dump($argv[1]);

Bana aşağıdaki çıktıyı alır:

string(40) "Some Message With Newlines
Hello World.
"



Edit : başka bir çözüm PHP komut aramak için böyle bir şey kullanmak olabilir:

$ echo -e "Some Message With Newlines\nHello World.\n" | php temp.php

Ve, bu okuma böylece PHP script değiştirmek stdin, instead of $argv:

var_dump(file_get_contents('php://stdin'));