2014-02-25 98 views
0

我正在使用方法一来替换值的字符串,并正常工作。我现在已经得到了自定义函数的手,所以我想将其更改为方法2中更简单的自定义函数方法,但它不起作用。任何帮助不胜感激。使用自定义函数str_replace内容

$plarge = $_POST['plarge']; 
$phmaxl = $_POST['phmaxl']; 
$fhandle = fopen($fname,"r"); 
$content = fread($fhandle,filesize($fname)); 

#### METHOD ONE ###### 
$content = str_replace($large,$plarge,$content); 
$content = str_replace($hmaxl,$phmaxl,$content); 
###################### 

#### METHOD TWO ###### 
function setreplace($set){ 
$content = str_replace($set,p.$set,$content); 
} 
setreplace($phmaxl); 
setreplace($plarge); 
####################### 


####### WRITES NEW VAULUES TO SETTINGS FILE ############ 
$fhandle = fopen($fname,"w"); 
fwrite($fhandle,$content); 
####### CLOSES SETTINGS FILE ############ 
fclose($fhandle); 

回答

1

函数不访问外部作用域,也不能连接这样的变量名。

考虑做这样的事情,而不是:

$replacements = array(); 
$replacements[$large] = $plarge; 
$replacements[$hmaxl] = $phmaxl; 
$content = strtr($content,$replacements); 

strtr()