$str='火影忍者:撲滅 I am English v1.12';
這個資料中:總共分為三段
第一段是中文的標題但有的標題會有冒號之類的符號
第二段是是英文,是標題的翻譯
第三段是版本號碼,但前面都會有個v
每一段中,有二個空格隔開的 , 比如:
撲滅 I 之間有二個空格隔開
English v1.12 之間也有二個空格隔開
===========================================
我想用,三個變數分別取得到這三個值,
回複討論(解決方案)
先猜一下你要的是什麼
$str='火影忍者:撲滅 I am English v1.12';print_r(explode(' ', $str));Array
(
[0] => 火影忍者:撲滅
[1] => I am English
[2] => v1.12
)
$query = $db->query("SELECT * FROM {$pre}article");
while($rs = $db->fetch_array($query)){
$dataA=preg_replace("/(.*)( )(.*)( )(.*)/i","$1",$rs[title]);
$dataB=preg_replace("/(.*)( )(.*)( )(.*)/i","$3",$rs[title]);
$dataC=preg_replace("/(.*)( )(.*)/i","$3",$rs[title]);
$db->query("UPDATE {$pre}article SET title='$dataA' WHERE aid='$rs[aid]' ");
$db->query("UPDATE {$pre}article_content_106 SET english='$dataB',edition='$dataC' WHERE aid='$rs[aid]' ");
}
我是先取一個表裡的所有 title這個欄位的內容
再分別把取的值賦某個欄位或替換,
以上是我剛剛寫的一段,我測試了一下,運行一段時間後出現500錯誤,去看資料表,有些替換成功了,但發現有的標題中,沒有英文而是一個
標題如: 我是標題 v1.3
那應該怎麼弄?
處理之前首先做下預先處理:
while($rs = $db->fetch_array($query)){
$rs[title] = str_replace(' ', ' ', $rs[title]);
// 之後接著你的處理邏輯
echo htmlspecialchars_decode(' ');