preg_replace_callback
执行一个正则表达式搜索并且使用一个回调进行替换
计算句子中所有单词的字母数:
<span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token keyword">function</span> <span class="token function-definition function">countLetters</span><span class="token punctuation">(</span><span class="token variable">$matches</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token variable">$matches</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'('</span> <span class="token operator">.</span> <span class="token function">strlen</span><span class="token punctuation">(</span><span class="token variable">$matches</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token operator">.</span> <span class="token string single-quoted-string">')'</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token variable">$input</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Welcome to W3School.com.cn!"</span><span class="token punctuation">;</span> <span class="token variable">$pattern</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'/[a-z0-9\.]+/i'</span><span class="token punctuation">;</span> <span class="token variable">$result</span> <span class="token operator">=</span> <span class="token function">preg_replace_callback</span><span class="token punctuation">(</span><span class="token variable">$pattern</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'countLetters'</span><span class="token punctuation">,</span> <span class="token variable">$input</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">echo</span> <span class="token variable">$result</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span>