$str='Naruto: Fight I am English v1.12';
このデータ: 合計 3 つの段落に分かれています
最初の段落は中国語のタイトルですが、一部のタイトルにはコロンなどの記号が含まれます
2 番目の段落は英語で、タイトルの翻訳です
3 番目の段落はバージョン番号ですが、その前に v が付きます
各段落には、2 つのスペースが区切られています。例:
Fight I There are 2 つのスペースで区切られています 2 つのスペースで区切られることもあります
英語 v1.12
================================== == =========
3 つの変数を使用してこれら 3 つの値をそれぞれ取得したいと思います、
まず何をしたいかを推測します
$str='火影忍者:扑灭 I am English v1.12';print_r(explode(' ', $str));
$query = $db->query("SELECT * FROM {$pre }article");
while($rs = $db->fetch_array($query)){
$dataA=preg_replace("/(.*)( )(.*)( )(.*)/i ","$1",$rs[タイトル]);
$dataB=preg_replace("/(.*)( )(.*)( )(.*)/i","$3",$rs[タイトル] );
$dataC=preg_replace("/(.*)( )(.*)/i","$3",$rs[title]);
$db->query("UPDATE {$pre}記事 SET title='$dataA' WHERE helps='$rs[aid]' ");
$db->query("UPDATE {$pre}article_content_106 SET english='$dataB',edition='$dataC' WHERE aid='$rs[aid]' ");
}
まず、テーブル内のタイトル フィールドの内容をすべて取得します
次に、取得した値を特定のフィールドに割り当てるか、置き換えます
上記は、パラグラフを作成してしばらく実行した後、500 エラーが発生し、データ テーブルを見てみると、一部のタイトルでは置換が成功していることがわかりました。英語ですが
のようなタイトル: 私は Title v1.3 です
それでどうすればよいでしょうか?
処理する前に、まず前処理を実行します。
while($rs = $db->fetch_array($query)){
$rs[title] = str_replace(' ', ' ', $rs[title] ]);
// 次に、処理ロジックをフォローアップします