php str_replace替换反斜杠,使用str_replace解析反斜杠转义

我认为仅限于使用str_replace时的主要问题是您几乎无法控制哪些字符串被替换(因为所有事件都会被替换),并且在选择占位符时需要特别小心对于\@转义序列。两个插入的值组合可能会生成占位符字符串,因此在还原占位符替换时将其转换为@字符。

以下是一种蛮力的解决方案,试图解决这个问题。它一次检查一个占位符对照模板字符串,替换值和最终字符串,确保占位符不出现在任何这些字符串中,并且最初为\@引入的占位符数与该数字匹配占位符还原。您可能希望设置一个默认的占位符,而不是xyz(如零char或其他),最适合您,以避免不必要的处理。

可以使用两种替换模式(@和@)调用它,但目前它们不能混合使用。

这不是我写过的最漂亮的代码,但鉴于str_replace约束,它仍然是我的镜头,我希望它对你有所帮助。

function templateMap ($string, $array, $defaultPlaceholder = "xyz")

{

$newArray = array();

// Create an array of the subject string and replacement arrays

$knownStrings = array($string);

foreach ($array as $subArray) {

if (is_array($subArray)) {

$knownStrings = array_merge($knownStrings, array_values($subArray));

}

else {


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部