str_ireplace 未按预期工作

str_ireplace doesn’t works as expected

$venue_city = 'PARIS';
$venue_name = 'Le Palais des Congrès de Paris';

我用省略词创建了一个数组

$omit_words = array('d\''.ltrim($venue_city),'de '.$venue_city);  

print $omit_words; 给出 Array ( [0] => d'PARIS [1] => de PARIS )

现在我想用任何东西替换 $venue_name 中的 de Paris

$venue_name_shorten = str_ireplace($omit_words,'',$venue_name);

str_ireplace 很重要,因为我需要不区分大小写。巴黎可以用一个或多个大写来写。

所以,什么都没发生。

但我知道它来自我的 $omit_words,因为如果我将 'de '.$venue_city 替换为 'de PARIS' 它工作正常。

$venue_city是字符串类型。

任何帮助将不胜感激。

编辑

$venue_city 没有像我的问题 $venue_city = 'PARIS'; 那样定义,而是来自 api 数据

编辑二

我找到了!!在 $venue_city

之前还剩一个 space

使用 trim() 从 API 数据中删除所有前导空格和尾随空格以及换行符。

$fromApi = " PARIS\n";  //example

$venue_city = trim($fromApi);

$venue_name = 'Le Palais des Congrès de Paris';
$omit_words = array('d\''.$venue_city,'de '.$venue_city);  
$venue_name_shorten = str_ireplace($omit_words,'',$venue_name);