LinuxでExiv2コマンドラインツールを使用して、次のように画像メタデータを編集します。
exiv2 -M"set Iptc.Application2.Caption String This is my caption....." modify IMG.jpg
ユーザーから提供されたキャプションを使用して、PHPからこれを実行したいと思います。これは、ユーザーが特殊文字を入力しない場合に機能します。
exec('/usr/local/bin/exiv2 -M"set Iptc.Application2.Caption String '.$caption.'" modify IMG.jpg');
一重引用符や二重引用符などの特殊文字をユーザーに許可する必要があります。悪意のあるデータを防ぐためにescapeshellcmd()を使用したいと思います。コマンドと引数を正しくエスケープして機能させるにはどうすればよいですか?私は多くのオプションを試しましたが、正しく理解できません。