用php操作字符

时间:2019-03-04 22:59:57

标签: php regex

我需要处理一个带有特殊caratectere(em dash)的字符串,我将该字符串包含在变量alta. — The ambient temperature is quite high中,并且绝对不能使用其中的explode,无论是使用explode ('-', $ str)还是使用chr('-'),我只需要以此为逻辑来应用我的逻辑,但是我不能

这是它在html中的显示方式 ""

它在DOM中的显示方式:

enter image description here

我在这里循环显示一行中的每个字母,然后显示带有ord($str)的unicode

enter image description here

这是我用来在每行上显示字母并得到我完全不知道的黑色字符的代码

for($i = 0; $i<= strlen($str); $i++) {
    echo"<br>";
            echo ord($str[$i]);
            echo"<br>";
            echo $str[$i];
}

我想获取字符串中该字符的索引,或者只是从该字符中使用explode方法

1 个答案:

答案 0 :(得分:2)

这就是我要处理的“东西”

$search = array(
        "\xe2\x80\x98", // "'"
        "\xe2\x80\x99", // "'"
        "\xe2\x80\x9c", // '"'
        "\xe2\x80\x9d", // '"'
        "\xe2\x80\x93", // '-'
        "\xe2\x80\x94", // '-'
        "\xe2\x80\xa6", // '...'
        chr(145),
        chr(146),
        chr(147),
        chr(148),
        chr(150),
        chr(151),
        chr(133)    
    );

    $replace = array(
        "'",
        "'",
        '"',
        '"',
        '-',
        '-',
        '...',
        "'",
        "'",
        '"',
        '"',
        '-',
        '-',
        '...'
    );

    $text = str_replace($search, $replace, $text);

无非是头疼。可能是从MSWord等粘贴的。

测试:

 $text = 'alta. —  The ambient temperature is quite high';

 echo $text."\n";

 //... the above code ...

 echo $text."\n";

输出

alta. —  The ambient temperature is quite high
alta. -  The ambient temperature is quite high

Sandbox

通常,我只是在某个地方创建一个函数,然后将其放入其中并进行清理。然后,它是一个普通的-连字符,一切正常。

我像7或8年前一样制作了这个,至今仍在使用。就像MSWIN1252字符集之类。