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