如何使用str_replace替换PHP中的多个字符串?

时间:2015-02-21 06:31:15

标签: php

大家好我的代码有错误。 我试图使用str_replace()函数删除我不需要的字符串。但我没有得到我预期的结果。这是我的代码:

这是我的示例数据:

clip_sample_data.mp4
clip_sample_data.ogg
clip_sample_data.webm

这是我的功能:

$video_data = array(
            'mp4_title'     =>  isset($columns['mp4_title']) ? str_replace(".mp4", "", pathFileNameExploder($columns['mp4_title'])) : '',
            'ogg_title'     =>  isset($columns['ogg_title']) ? str_replace(".ogg", "", pathFileNameExploder($columns['ogg_title'])) : '',
            'webM_title'    =>  isset($columns['webM_title']) ? str_replace(".webm", "", pathFileNameExploder($columns['webM_title'])) : '',
            'clip_mp4'      =>  isset($columns['clip_mp4_title']) ? str_replace(array(".mp4", ""), array("clip_", ""), pathFileNameExploder($columns['clip_mp4_title'])) : '',
            'clip_ogg'      =>  isset($columns['clip_ogg_title']) ? str_replace(array(".ogg", ""), array("clip_", ""), pathFileNameExploder($columns['clip_ogg_title'])) : '',
            'clip_webm'     =>  isset($columns['clip_webm_title']) ? str_replace(array(".mp4", ""), array("clip_", ""), pathFileNameExploder($columns['clip_webm_title'])) : '',
        );

在替换.mp4,.ogg,.webm时,我没有问题。 但是在用.mp4等替换clip_时,结果不正确。

clip_sample_data_2clip_

1 个答案:

答案 0 :(得分:3)

您似乎误解了如何使用str_replace替换多个字符串。第一个参数是要替换的字符串数组,第二个参数是另一个匹配字符串数组,以替换它们。

你可能打算做这样的事情。

str_replace(array(".mp4", "clip_"), array("", ""), "clip_sample_data.mp4")

将返回以下字符串。

"sample_data"

由于您只想用空字符串替换所有内容,因此可以将此代码简化为此。

str_replace(array(".mp4", "clip_"), "", "clip_sample_data.mp4")