str_ireplace () accutally 'iğneler' kaldırarak değil

2 Cevap php

Ben bir dizi dizeleri örneklerini kaldırmak için () str_ireplace kullanıyorum, ve ben sayılır olaylarda sayısını iade ediyorum, ama aslında yerine performans değil.

//replace occurances of insert, update, delete, select
$dmlArray = array('select', 'update', 'delete', 'insert');

str_ireplace($dmlArray,'-- replaced DML -- ',$clean['comment'],$Incount);

$ Temiz ['yorum'] $ _POST dizi nerede olacağını.

Örneğin, $clean['comment'] = "SELECT, insert, UPDATE, DEleTe";

Son dize olmalı "- DML yerini -, - DML yerini -, -, - - DML yerine - DML yerine";

Oysa öyle değil.

2 Cevap

Fonksiyon str_ireplace argümanlarını değişmez. Bu sonuç döndürür. İşte kodunuz için düzeltme:

$clean['comment'] = str_ireplace($dmlArray, '-- replaced -- ', $clean['comment'], $Incount);

Ben kodu çalıştırmak ettik ve beklendiği gibi çalışır.

echo str_ireplace(
    array('select', 'update', 'delete', 'insert'),
    '-- replaced DML -- ',
    'SELECT, insert, UPDATE, DEleTe',
    $Incount);

Yukarıdaki irade çıktı

-- replaced DML -- , -- replaced DML -- , -- replaced DML -- , -- replaced DML --

Sadece giriş dizesi başvuru tarafından geçirilen olmadığını akılda tutmak, bu yüzden yerine değerlerle dize almak için dönüş değeri kullanmak zorunda.