php - 在 PHP 中重新格式化字符串以添加双引号和反斜杠
问题描述
我希望有人能帮助我。我在 PHP 中有一个变量,我需要在 bash 脚本中使用它。变量中的字符串需要转换为特定格式,以将字符串中的每个单词用双引号和反斜杠括起来。
具体如下:
$raw = "amazon,facebook,reddit";
所需函数的输出需要如下所示:
\"amazon\",\"facebook\",\"reddit\"
显然 $raw 变量可以容纳或多或少的以逗号分隔的单词。
我可以使用 str_replace 做的最好的事情是:
$trfm = '"' . str_replace(",", "\",\"", $raw) . '"';
echo $trfm;
"amazon","facebook","reddit"
所以我需要弄清楚如何添加反斜杠。
谢谢
解决方案
你可以用array_walk()
这个。
// Input
$raw = "amazon,facebook,reddit";
// Turn items into an array, separated by commas
$items = explode(",", $raw); // ['amazon', 'facebook', 'reddit']
// Walk over each item in the array, and transform it
array_walk($items, function (&$value) {
$value = '\"' . $value . '\"';
});
// Output: \"amazon\",\"facebook\",\"reddit\"
echo implode(",", $items);
为了完整起见,如果您不想将其拆分为一个数组,并且想采用将逗号与反斜杠交换的方法,则可以执行以下操作。请注意使用双引号使用的双斜杠,以避免必须转义这些,您可以使用单引号代替。
// Input
$raw = "amazon,facebook,reddit";
// Notice the double backslash below: \\
echo "\\\"" . str_replace(",", "\\\",\"", $raw) . "\\\"";
// Notice the single quotes and the lack of escaping with double backslash:
echo '\"' . str_replace(",", '\",\"', $raw) . '\"';
推荐阅读
- c++ - C++:观察者模式
- c - 返回 c 中 3 维向量大小的函数
- r - 在 R 中旋转多个配对列
- python - 如何在 cpanel 上部署 django 应用程序并使用 python selenium webdriver 自动化它
- javascript - 如何从 Firebase 获取 Flatlist 中每个元素的数据?
- cypress - 如何在 cypress.io 中使用多个登录名、URL 和正文元素运行相同的测试
- python - 程序旨在用向量绘制图形,但输出返回:“TypeError: 'int' object is not subscriptable” for last plt.arrow()
- java - 在 macOS 中设置 JAVA_HOME
- pyramid - 金字塔网络框架中可能存在的奇怪错误
- binary - 绘制这些 3 行 1 和 0 列的 NFA 和 DFA