ホームページ > バックエンド開発 > PHPチュートリアル > 正規表現をお探しですか? ?

正規表現をお探しですか? ?

WBOY
リリース: 2016-06-23 14:21:25
オリジナル
919 人が閲覧しました

$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));
ログイン後にコピー
Array
(
] [ 0] => ナルト: 戦います
[1] => 私は英語です
[2] => v1.12
)

$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] ]);
// 次に、処理ロジックをフォローアップします

echo htmlspecialchars_decode(' ');
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート