替换数组输出的单词

时间:2016-06-03 17:52:57

标签: php arrays string replace

我有这个数组:

$array = array('name'=>'test','server'=>'zangarmarsh','fields'=>'items,stats');
$type = 'character';
$r = $client->fetch($type,$array);
echo '<pre>';
print_r($r);
echo '</pre>';

输出:

[result] => Array
        (

            [thumbnail] => hellscream/74/113337162-avatar.jpg
 }

现在我回应一下图片:

echo "<img src='http://render-api-us.worldofwarcraft.com/static-render/us/" . $r['result']['thumbnail'] . "' alt='error'>";

现在我想用“profilemain”这个词改变“avatar”这个词(来自数组的输出)。我知道你可以用echo str_replace做到这一点,但我无法让它工作。

2 个答案:

答案 0 :(得分:0)

这应该可以解决问题:

$image = str_replace("avatar" , "profilemain" , $r['result']['thumbnail'];

答案 1 :(得分:0)

您可以使用strpos($yourString, $substring)获取“头像”的起始索引,然后使用“头像”的长度&#39;获得最终索引。将字符串的第一部分和最后部分剪切成两个单独的字符串变量,然后将它们组合在字符串&#39; profilemain&#39;。

$thumb = 'hellscream/74/113337162-avatar.jpg';

// This gets you everything up to 'avatar' in $thumb
$thumbPre = substr($thumb, 0, strpos($thumb, 'avatar'));
// This gets you everything after 'avatar' in $thumb   
$thumbPost = substr($thumb, strpos($thumb, 'avatar') + strlen('avatar'));

// Sandwich 'profilemain' in between the two
$newString = $thumbPre.'profilemain'.$thumbPost;

希望这有帮助!