我在下面有一个用户定义的函数:
function char_replace($line1){
$line1= str_ireplace("Snippet:", "", $line1);
// First, replace UTF-8 characters.
$line1= str_replace(
array("\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\xa6"),
array("'", "'", '"', '"', '-', '--', '...'),
$line1);
// Next, replace their Windows-1252 equivalents.
$line1= str_replace(
array(chr(145), chr(146), chr(147), chr(148), chr(150), chr(151), chr(133)),
array("'", "'", '"', '"', '-', '--', '...'),
$line1);
}
我正在替换我爆炸的多行中的字符,除了我想将动态参数应用于char_replace函数,其中$line
很可能是$line2
或{{1}所以我会这样转换字符:
$line3
我想让函数参数和str_replace / str_ireplace参数成为一个动态变量,我可以像这样转换另一行:
$line1 = char_replace($line1)
这可能吗?
答案 0 :(得分:3)
如果我正在读这个,只需添加一个返回函数。所以:
function char_replace($string){
$string= str_ireplace("Snippet:", "", $string);
// First, replace UTF-8 characters.
$string= str_replace(
array("\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\xa6"),
array("'", "'", '"', '"', '-', '--', '...'),
$string);
// Next, replace their Windows-1252 equivalents.
$string= str_replace(
array(chr(145), chr(146), chr(147), chr(148), chr(150), chr(151), chr(133)),
array("'", "'", '"', '"', '-', '--', '...'),
$string);
return $string;
}
这将允许您将任何字符串传递给函数并返回修改后的字符串。
答案 1 :(得分:1)
假设您使用return $line1;
结束了您的功能,可以这样称呼它:
$line1 = char_replace($line1);
$line2 = char_replace($line2);
$line3 = char_replace($line3);
如何调用函数定义中的参数无关紧要,它们是该函数的本地参数,并且可以在其外部使用不同的名称。
答案 2 :(得分:1)
您是否只想将return语句添加到您的函数中:
function char_replace($line1){
$line1= str_ireplace("Snippet:", "", $line1);
// First, replace UTF-8 characters.
$line1= str_replace(
array("\xe2\x80\x98", "\xe2\x80\x99", "\xe2\x80\x9c", "\xe2\x80\x9d", "\xe2\x80\x93", "\xe2\x80\x94", "\xe2\x80\xa6"),
array("'", "'", '"', '"', '-', '--', '...'),
$line1);
// Next, replace their Windows-1252 equivalents.
$line1= str_replace(
array(chr(145), chr(146), chr(147), chr(148), chr(150), chr(151), chr(133)),
array("'", "'", '"', '"', '-', '--', '...'),
$line1);
return $line1;
}