1
我有文本字符串文本的功能替換文本「[您的名稱] < [你的電子郵件]>」,幷包含一個數組,看起來像這樣使用正則表達式在PHP
[posted_data] => Array
(
[_wpcf7] => 35
[_wpcf7_version] => 3.5.2
[_wpcf7_locale] => en_US
[_wpcf7_unit_tag] => wpcf7-f35-p29-o1
[_wpnonce] => 2c06b3f0f3
[your-name] => Andrew
[your-email] => [email protected]
[your-subject] => plasd
[your-message] => 11 11 11
[_wpcf7_is_ajax_call] => 1
)
對象
所以我想要做的是寫一個函數,用上述字符串中的值替換對象中的值。
到目前爲止,我有這個功能
function wpcf7ev_get_senders_email_address($wpcf7_form)
{
//gets the tags
$senderTags = $wpcf7_form->mail['sender'];
// replace <contents> with posted_data
$sendersEmailAddress = preg_replace_callback('/\[(.+?)\]/',
function ($matches)
{
return $wpcf7_form->posted_data[$matches[1]];
},
$senderTags
);
return $sendersEmailAddress;
}
我要對這個正確的方式?該回調函數失敗,因爲匿名函數無法訪問$ wpcf7_form參數。
我用火柴[1]爲正則表達式返回
Array
(
[0] => [your-name]
[1] => your-name
)
因此,也許,可能就太加以改進。
謝謝。
謝謝菲爾。這工作!漂亮而簡單優雅的解決方案 – magician11