1

私はこれを検索し、他の多くの人が置換コマンドについて話しますが、それを間違えたくありません。

私の場合は次のとおりです。Wordpressのブログとスクリプトが投稿にコンテンツを挿入しています。ここで、この新しいコンテンツを削除しますが、古いコンテンツは保持します。

「これは私に関する投稿のコンテンツです」のようなもので、古いコンテンツですが、スクリプトは別の行を挿入し、フィールドの値は次のようになります。"This is content of a post about me <div class="spnsor"><a [...]</div>".

この部分では、投稿ごとに異なるリンクがあります。しかし、同じdivとクラスの同じ構造です。

私は2000以上の投稿を持っているので、すべての投稿を編集するのは大変です。

Mysqlからこれを修正するにはどうすればよいですか?

このコマンドは大丈夫ですか? UPDATE wp_posts SET post_content = REPLACE ( post_content, '<div class="spnsor">*</div>', '' )

4

1 に答える 1

0

MySQLサーバーにアクセスできる場合は、ここを参照してください:MySQLで正規表現を置き換える方法は?

そうでない場合、最も簡単な方法は、phpスクリプトで置換を行うことです。

編集:

単純なphpスクリプト。私はそれをテストしていませんが、動作するはずです(ローカルバックアップで前に試してください)

<?php

    $co = mysql_connect("your server", "your login", "your password");
    mysql_set_charset('utf8');
    mysql_select_db("database name", $co);

    $selectQuery = "SELECT ID, post_content FROM wp_posts";

    $res = mysql_query($selectQuery, $co) or exit(mysql_error());

    while($row = mysql_fetch_assoc($res))
    {
        $updateQuery = "UPDATE wp_posts SET post_content = '" . addslashes(preg_replace("/<div class=\"sponsor\">(.*)<\/div>/", '', $row['post_content'])) . "' WHERE ID = " . $row['ID'];
        mysql_query($updateQuery) or exit(mysql_error());
    }

    mysql_close($co);

?>
于 2011-02-26T19:43:17.340 に答える