使用str_replace删除php中的部分字符串

时间:2013-11-27 19:50:57

标签: php

我在使用php删除字符串的一部分时遇到了一些问题。 让我告诉你一点问题,我有可变的“column1text”,其中的文本字符串被嵌入到< textarea&gt ;,但这没关系。我想删除此字符串中的所有HTML标记,因为它们有时会出现问题。例如:当此字符串包含< / body>或者< / table>它会做很多不必要的混乱。所以我想把这些标签拿走。

我正在使用$column1text = str_replace("TEXT TO REMOVE", "", $column1text);并且它有效,但我想为它制作功能(如果你知道更简单的方法,那么请告诉我,我会很高兴。)

我正在使用此功能: function remove($removetext) { $column1text = str_replace($removetext, "", $column1text); }

我正在使用它: remove("TEXT TO REMOVE");

我做错了什么? (我确信这是非常愚蠢的,但我找不到它!)

P.S。我对我的英语感到非常抱歉,这听起来确实很愚蠢,但除了问你之外别无他法。

3 个答案:

答案 0 :(得分:4)

您可以传递$column1text作为参考,也可以让您的函数返回修改后的文本(我更喜欢)

 function remove($column1text, $removetext) {
   return str_replace($removetext, "", $column1text);
 }

$column1text = remove($column1text, '<span>');

答案 1 :(得分:0)

当您确实需要通过引用传递时,您正在通过值传递。如果你不知道区别是什么,我建议你阅读一下。

Link

编辑:

简而言之,无论何时向函数传递一个参数,该函数都会复制传递的内容,因此当在函数中操作该参数时,它会操纵副本而不是传递的对象本身。

当一个函数有一个通过引用传递的参数时,它实际上可以访问自己传递的对象。这意味着你操作该对象所做的任何事情也会影响函数之外的对象(因为它不仅仅是你正在使用它的副本)。

答案 2 :(得分:0)

您需要告诉解释器您要使用全局变量,因为现在它将它视为局部变量(在您的函数中)。要做到这一点,您只需要使用全局关键字:

function remove($removetext) { 
    global $column1text;
    $column1text = str_replace($removetext, "", $column1text); 
}

您可以在此处阅读更多相关信息http://php.net/manual/en/language.variables.scope.php