结合使用 str_replace 和 ut8_decode
Using str_replace in combination with ut8_decode
首先,我还没有 php 经验,所以我有这段代码不是我自己写的。
.utf8_decode($var['ciudad']).
它return是一个城市的值,这是一个数字,66170或66001。
我需要的不是 return 号码而是城市名称。所以假设 return 是“66170”,它应该显示“伦敦”而不是数字“66170”。
现在我知道我应该使用 str_replace。但这就是我卡住的地方,这段代码中有 utf8_decode ,这与我的代码混淆了。 (或者只是让我感到困惑)我的想法或多或少是这样的:
$ciudad= .utf8_decode(str_replace('66170 ', 'London',($var['ciudad']).'))
你的想法是对的。您唯一错过的是您首先需要对其进行解码:
$ciudad = str_replace('66170', 'London', utf8_decode($var['ciudad']));
如果你有很多城市代码,最好使用strtr()
。我已经根据你最后的评论更新了我的建议:
$cities = Array(
'66170' => 'London',
'66001' => 'New York',
'66002' => 'Beijing',
);
$ciudad = strtr($var['ciudad'], $cities);
简答
你想做的是这个
$ciudad = utf8_decode(str_replace('66170', 'London',$var['ciudad'] ));
删除一个点,一个 space,一些括号和引号。
长答案
我推荐使用两个数组。第一个包含所有城市编号,第二个包含所有城市名称,然后将它们用作 str_replace
参数。例如:
$citiesCodes = Array(1, 2, 3, 4, ... , 66170);
$citiesNames = Array('New York', 'Santo Domingo', 'La Paz', 'Lima', ... , 'London');
$ciudad = utf8_decode(str_replace($citiesCodes, $citiesNames, $var['ciudad'] ));
首先,我还没有 php 经验,所以我有这段代码不是我自己写的。
.utf8_decode($var['ciudad']).
它return是一个城市的值,这是一个数字,66170或66001。
我需要的不是 return 号码而是城市名称。所以假设 return 是“66170”,它应该显示“伦敦”而不是数字“66170”。
现在我知道我应该使用 str_replace。但这就是我卡住的地方,这段代码中有 utf8_decode ,这与我的代码混淆了。 (或者只是让我感到困惑)我的想法或多或少是这样的:
$ciudad= .utf8_decode(str_replace('66170 ', 'London',($var['ciudad']).'))
你的想法是对的。您唯一错过的是您首先需要对其进行解码:
$ciudad = str_replace('66170', 'London', utf8_decode($var['ciudad']));
如果你有很多城市代码,最好使用strtr()
。我已经根据你最后的评论更新了我的建议:
$cities = Array(
'66170' => 'London',
'66001' => 'New York',
'66002' => 'Beijing',
);
$ciudad = strtr($var['ciudad'], $cities);
简答
你想做的是这个
$ciudad = utf8_decode(str_replace('66170', 'London',$var['ciudad'] ));
删除一个点,一个 space,一些括号和引号。
长答案
我推荐使用两个数组。第一个包含所有城市编号,第二个包含所有城市名称,然后将它们用作 str_replace
参数。例如:
$citiesCodes = Array(1, 2, 3, 4, ... , 66170);
$citiesNames = Array('New York', 'Santo Domingo', 'La Paz', 'Lima', ... , 'London');
$ciudad = utf8_decode(str_replace($citiesCodes, $citiesNames, $var['ciudad'] ));