我有以下問題;PHP的str_replace問題或錯誤?
這裏是我的字符串,我想從下面的字符串中刪除javascript:l("
:
javascript:l("Bayou-La-Batre");
我的代碼;
$q_string = str_replace('javascript:l(" ','',$row['1']);
但它失敗了。
這比正則表達式更快,速度更快。
任何想法?
我有以下問題;PHP的str_replace問題或錯誤?
這裏是我的字符串,我想從下面的字符串中刪除javascript:l("
:
javascript:l("Bayou-La-Batre");
我的代碼;
$q_string = str_replace('javascript:l(" ','',$row['1']);
但它失敗了。
這比正則表達式更快,速度更快。
任何想法?
您留下了空間
$q_string = str_replace('javascript:l("','',$row['1']);
變化
$q_string = str_replace('javascript:l(" ','',$row['1']);
到
$q_string = str_replace('javascript:l("','',$row['1']);
非常感謝您的幫助 – cocacola09 2009-11-21 20:39:26
每當我有這樣的問題,我嘗試格式化我的搜索/替換中調用一個等寬編輯器來查看是否有任何東西彈出
$q_string = str_replace('javascript:l(" ', '',
'javascript:l("Bayou-La-Batre")';
這樣形成的,很顯然,搜索字符串的第15個字符與正在搜索的字符串的第15個字符([]與[B])不匹配。
嘗試刪除該空白,你應該很高興。
非常感謝您的幫助 – cocacola09 2009-11-21 20:36:06
您可以使用
$q_string = substr($row['1'], 14);
得到一些速度增益相同的結果。我已經測試了三種功能的速度,因此您可以看到它們與速度的比較。
$string = 'javascript:l("Bayou-La-Batre")';
$str_replace = function($string) {
return str_replace('javascript:l("', '', $string);
};
print $str_replace($string) . "\n";
$substr = function($string) {
return substr($string, 14);
};
print $substr($string) . "\n";
$preg_replace = function($string) {
return preg_replace('/^[a-z:\(]+"/', '', $string);
};
print $preg_replace($string) . "\n";
function measure($function, $string) {
$start = microtime(true);
for($i = 0; $i < 1000000; $i++) {
$function($string);
}
return microtime(true) - $start;
}
print 'Substr: ' . measure($substr, $string) . "\n";
print 'Str replace:' . measure($str_replace, $string) . "\n";
print 'Preg replace:' . measure($preg_replace, $string);
這在我的機器
河口 - 拉 - Batre 「)
河口 - 拉 - Batre」)
河口 - 拉 - Batre「)
SUBSTR上的輸出:3.7492098808289
海峽替換:4.5258920192719
的Preg取代:5.8815109729767
非常感謝您的幫助 – cocacola09 2009-11-21 20:36:36