微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP字符串空格格式化

如何解决PHP字符串空格格式化

| $ str = \“测试艺术家测试-测试标题测试\”; $ trackinfo = preg_split(\'/-/ \',$ str); exec(\'Metamp3 --title \'。$ trackinfo [1]。\'--artist \'。$ trackinfo [0]。\'track.mp3 \'); 这是我正在使用的代码的一部分,基本上,我显然做错了什么(我对PHP还是很新的,并不真正了解所使用的一些约定。当我运行此行时,从什么地方我可以看到它只会对标题和艺术家进行Test and Test(就像它只是从字符串中提取一个单词一样),但是如果我要做这样的事情 print_r $ trackinfo; 打印$ trackinfo [1]; 打印$ trackinfo [0]; 我可以清楚地看到分割字符串的格式正确,我想知道是否有人可以解释这里到底发生了什么以及如何解决它? 谢谢!     

解决方法

        那不是PHP问题。您正在将以下字符串传递给exec:
metamp3 --title Test Title Test --artist Test Artist Test track.mp3
但是metamp3程序的每个参数只需要第一个字。该命令应看起来像“ 1”(带引号的参数值)。 PHP中有函数可以解决此问题:
escapeshellarg
。您的代码如下所示:
exec(
    \'metamp3 --title \'.escapeshellarg($trackinfo[1]).
    \' --artist \'.escapeshellarg($trackinfo[0]).\' track.mp3\'
);
    ,        尝试添加引号:
exec(\'metamp3 --title \"\'.$trackinfo[1].\'\" --artist \"\'.$trackinfo[0].\'\" track.mp3\');
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。