为什么我的 substr 调用不适用于→字符


Why won't my substr call work with the → character?

我目前正在为使用WordPress的客户构建一个WooCommerce网站,我已经编写了一段代码,可以动态生成包含产品和产品属性的表格。当我调用 get_title() 方法时,它首先给我一个标题,其中包含产品的父产品,即"→"符号,然后是产品的实际标题。我编写此代码是为了删除"→"符号及其之前的所有内容。

$name_raw   = $product->get_title();
$name       = substr($name_raw, ($pos = strpos($name_raw, '→')) !== false ? $pos + 1 : 0);

它曾经完美地工作,但现在不行了。这段代码也可以完美地与我为测试它而输入的所有其他字符一起使用,但不适用于那个愚蠢的小箭头。似乎最近对我正在使用的东西的更新必须删除此方法处理非常规字符的能力。任何人都可以推荐任何可能的解决方案吗?

由于它是 WP 环境标题,因此右箭头字符可能是使用 WP 表单输入的帖子。我认为这个字符将被转换为它的 HTML 代码,其中之一:

→ 
→ 
→ 
→ 
→
→
→

所以我会做这样的事情:

function no_right_arrow_name($name_raw) {
    if (empty($name_raw))
        return $name_raw;
    $right_arrows = array(
        '→',
        '→',
        '→',
        '→',
        '→',
        '→',
        '→'
    );
    $name_new = $name_raw;
    // removes all possible combinations of right arrows
    foreach ($right_arrows as $right_arrow)
              $name_new = str_replace($right_arrow, '', $name_new);
    return $name_new;
}
$name_raw   = $product->get_title();
$name       = no_right_arrow_name($name_raw);