PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php – 如何在Bash中正确转义和插入变量?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试编写一个单行代码来转换某些文件中存在的html实体(所有html都使用UTF-8编码)

我试过了
重新编码HTML_4.0 file.htm
但这也转换非ASCII字符(它打破了UTF-8字符)

在StackOverflow中,我找到了适合一个文件的东西:

PHP -r '$f=@fopen("file.htm","r");echo html_entity_decode(fread($f,20000));fclose($f);'

但是当我尝试用多个文件制作它时

for fi in *.htm; do PHP -r '$f=@fopen("$fi",20000));fclose($f);';done

我知道这里的问题是如何“转义”$fi(bash变量),因此PHP不会将其作为PHP变量读取.
任何建议?

你差不多就在那里.

当它发生时,问题不在于如何做到这一点,它实际上是关于如何让bash解释变量并传递它们.

你有:

for fi in *.htm; do PHP -r '$f=@fopen("$fi",20000));fclose($f);';done

其中有单引号,里面有双引号.

单引号不是由bash在内部插入的,但是双引号是..所以如果你把它改为:

for fi in *.htm; do PHP -r "\$f=@fopen(\"$fi\",'r');echo html_entity_decode(fread(\$f,20000));fclose(\$f);"; done

因为我们现在使用双引号,我们也必须逃避$符号,否则bash认为它们是可插入的变量,并将它们替换掉.

大佬总结

以上是大佬教程为你收集整理的php – 如何在Bash中正确转义和插入变量?全部内容,希望文章能够帮你解决php – 如何在Bash中正确转义和插入变量?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。