相关疑难解决方法(0)

用PHP替换多个占位符?

我有一个发送网站电子邮件的功能(使用phpmailer),我想要做的基本上是用php替换email.tpl文件中的所有placheholders,其中包含我提供的内容.对我来说问题是我不想重复代码因此我创建了一个函数(下面).

没有php函数,我会在脚本中执行以下操作

// email template file
$email_template = "email.tpl";

// Get contact form template from file
$message = file_get_contents($email_template);

// Replace place holders in email template
$message = str_replace("[{USERNAME}]", $username, $message);
$message = str_replace("[{EMAIL}]", $email, $message);
Run Code Online (Sandbox Code Playgroud)

现在我知道如何做其余的但是我被困在str_replace()上面,如上所示,我有多个str_replace()函数来替换电子邮件模板中的占位符.我想要的是添加str_replace()到我的函数(下面)并让它找到[\]我给它的电子邮件模板中的所有实例,并将其替换为我将给它的占位符值,如下所示:str_replace("[\]", 'replace_with', $email_body)

问题是我不知道如何将多个占位符及其替换值传递给我的函数,并让我str_replace("[{\}]", 'replace_with', $email_body)处理我给它的所有占位符并替换相应的值.

因为我想在多个地方使用该函数并避免重复代码,在某些脚本上我可能会传递函数5占位符和值,而另一个脚本可能需要传递10个占位符和值,以便在电子邮件模板中使用该函数.

我不确定是否需要在将使用该函数的脚本上使用一个数组,并且函数中的for循环可能使我的php函数从脚本中获取xx占位符和xx值并且循环占位符并用值替换它们.

这是我上面提到的功能.我对脚本进行了评论,这可能更容易解释.

// WILL NEED TO PASS PERHAPS AN ARRAY OF MY PLACEHOLDERS AND THERE VALUES FROM x SCRIPT
// INTO THE FUNCTION ? …
Run Code Online (Sandbox Code Playgroud)

php function placeholder str-replace

3
推荐指数
1
解决办法
9969
查看次数

PHP str_replace是否有超过13个字符的限制?

直到第13个字符被击中为止.一旦str_ireplace在cyper数组中命中"a",str_ireplace就会停止工作.

数组的大小是否有限制?请记住,如果键入"abgf",我会得到"nots",但如果我输入"abgrf",当我得到"注释"时,我会得到"notrs".我的大脑无法弄明白.

$_cypher = array("n","o","p","q","r","s","t","u","v","w","x","y","z","a","b","c","d","e","f","g","h","i","j","k","l","m");

$_needle = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");


$_decryptedText = str_ireplace($_cypher, $_needle, $_text);
echo $_decryptedText;
Run Code Online (Sandbox Code Playgroud)

救命?

php compiler-errors str-replace

2
推荐指数
1
解决办法
1079
查看次数

preg_replace将电子邮件模板[[USER_FIRST_NAME]]添加到"John"

说我有这个HTML:

        <html>
            <head>
                <title>Hello [[USER_FIRST_NAME]]</title>
            </head>
            <body>
                <p>Hi, [[USER_FIRST_NAME]] [[USER_LAST_NAME]]!</p>
                <p><a href="mailto:[[USER_EMAIL]]">[[USER_EMAIL]]</a></p>
            </body>
        </html>
Run Code Online (Sandbox Code Playgroud)

我需要preg_replace所有[[FOOBAR]]带有价值观的代币.

最终结果:

        <html>
            <head>
                <title>Hello John</title>
            </head>
            <body>
                <p>Hi, John Smith!</p>
                <p><a href="mailto:john@smith.com">john@smith.com</a></p>
            </body>
        </html>
Run Code Online (Sandbox Code Playgroud)

php regex preg-replace

1
推荐指数
1
解决办法
2575
查看次数