用php将所有字母数字字符替换为X或X(区分大小写)


replace with php all alphanummeric chars with X or x (case sensitive)

我有以下变量:

$var1 = "23 Jan 2014";
$var2 = "Some Text Here - More Text is written here";

我如何替换文本,使输出看起来像这样:

$var1 = "XX Xxx XXXX";
$var2 = "Xxxx Xxxx Xxxx - Xxxx Xxxx xx xxxxxx xxxx";

编辑:变量可以更改。我只想用X(大写字母)、X(小写字母)和X(数字)替换任何变量中的所有A-Za-z0-9。

使用双正则表达式-一个用于大写+数字,一个用于小写。像这样的东西。

$var = preg_replace('/[A-Z0-9]/', 'X', $var);
$var = preg_replace('/[a-z]/', 'x', $var);

对Hinz的增强响应:)
一次拍摄:

$res = preg_replace(array('#[A-Z0-9]#', '#[a-z]#'), array('X', 'x'), $src);

这里有一个非reg exp方法。不过,就我个人而言,我更愿意使用reg-exp方法。

<?php
$var1 = "23 Jan 2014";
echo convertStringToXX($var1);
$var2 = "Some Text Here - More Text is written here";
echo convertStringToXX($var2);
function convertStringToXX($input)
{
    $output = '';
    for($key = 0; $key < strlen($input); $key++)
    {
        $char = $input[$key];
        $ord = ord($char);
        if($ord >= 97 && $ord <= 122)
        {
            $output .= 'x';
        }
        elseif(($ord >= 65 && $ord <= 90) || ($ord >= 48 && $ord <= 57))
        {
            $output .= 'X';
        }
        else
        {
            $output .= $char;
        }
    }
    return $output;
}