2013-11-03 122 views
1

我將從一個示例開始,更好地解釋我的意思。我有以下字符串:php從字符串中刪除字符 - 在上次刪除的相同位置

$str = "x' OR firstname LIKE '%Carla%"; 
$returned_str = chunk_split($str,1,"."); 
echo $returned_str; 

這個字符串被返回是這樣的:

x.'. .O.R. .f.i.r.s.t.n.a.m.e. .L.I.K.E. .'.%.C.a.r.l.a.%. 

所以,現在我所要做的是扭轉我做什麼用chunk_split()。 我想刪除這些點,但只刪除一個字符的先例,併成功完成此操作,解決方案不應去除字符串的原始點。

所以這個字符串:

我的名字是法比奧。我喜歡PHP。我是葡萄牙人。

在到底應不應該這樣結束:

我的名字是法比奧·我喜歡PHP我是葡萄牙

+0

有什麼用例呢?你想達到什麼目的? – cen

+0

以我自己的方式停止sql注入槽。 –

+0

http://www.unixwiz.net/techtips/sql-injection.html –

回答

2

您可以使用str_split將字符串轉換爲數組。 然後,你重新連接兩個字符(例如模2)重新創建你的字符串。

編輯:或者只是:

$reverse = ''; 
for ($i=0; $i < strlen($returned_str); $i += 2) 
    $reverse .= $returned_str[$i]; 
+0

你能舉個例子嗎? –

+0

你甚至可以使用strlen ...:$ reverse =''; ($ i = 0; $ i

+0

這可能工作,我現在會嘗試,只需一秒... –

-2

可以使用爆炸功能 $ X =爆炸( '。','your string here'); //它返回一個數組

+0

但$ x =爆炸('。','你的字符串在這裏');將刪除字符串的原始點 –

+0

我不知道這是否會工作,但如果你可以在(\。)之前放置一個轉義字符或使用addslashes,然後應用chunk_split它可能工作 –

+0

我想使用最小字符(只有點)是有效的。解決這個問題的方法不應該結合以前的字符,因爲用戶可以輸入類似+的內容。如果我嘗試匹配,那麼這些字符不會在打印文本 –