1

我在下面有一个用户定义的函数:

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或者$line3我会以这种方式转换字符: $line1 = char_replace($line1)

我想让函数参数和 str_replace/str_ireplace 参数成为一个动态变量,我可以像这样转换另一行: $random_line = char_replace($random_line) 这可能吗?

4

3 回答 3

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;
}

这将允许您将任何字符串传递给函数并取回修改后的字符串。

于 2012-05-07T18:57:38.503 回答
1

假设你结束你的函数,return $line1;你可以这样调用它:

$line1 = char_replace($line1);
$line2 = char_replace($line2);
$line3 = char_replace($line3);

在函数定义中如何调用参数并不重要,它们是该函数的本地函数,并且可以在函数之外具有不同的名称。

于 2012-05-07T18:56:23.870 回答
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;
}
于 2012-05-07T18:57:38.247 回答