Как очистить базу данных WordPress в C#

В этом примере показано, как можно использовать методы обработки файлов для очистки базы данных WordPress. К сожалению, экспортируемые мной данные содержат огромное количество спама. В одном посте было более 500 страниц комментариев от спама! Продвижение через мусор, чтобы найти фактические должности, не сложно, но это требует много времени. Этот пример позволяет мне легко удалять комментарии и комментарии к спаму. Он также позволяет мне удалять разделы EXTENDED BODY, EXCERPT и KEYWORDS, которые не содержат никаких данных из-за того, как программное обеспечение Quick Blogcast экспортировало свои данные.

Следующий код показывает, как программа удаляет нужные разделы данных.

// Удалить комментарии.
private void btnRemoveSections_Click(object sender, EventArgs e)
{
    lblResults.Text = "";
    Cursor = Cursors.WaitCursor;
    Refresh();

    // Посмотрим, какие разделы мы хотим удалить.
    string targets = "\n";
    if (chkComment.Checked) targets += "COMMENT:\n";
    if (chkExtendedBody.Checked) targets += "EXTENDED BODY: \n";
    if (chkExcerpt.Checked) targets += "EXCERPT: \n";
    if (chkKeywords.Checked) targets += "KEYWORDS: \n";
    if (chkPing.Checked) targets += "PING:\n";

    // Чтение входного файла.
    string[] input_lines = File.ReadAllLines(txtInput.Text);

    // Создаем вывод.
    int num_removed = 0;
    bool reading_text = true;
    List output_lines = new List();
    foreach (string line in input_lines)
    {
        if (reading_text)
        {
            // Мы читаем текст. Смотрите, стоит ли остановиться.
            if (targets.Contains('\n' + line + '\n'))
            {
                num_removed++;
                reading_text = false;
            }
            else output_lines.Add(line);
        }
        else
        {
            // Мы не читаем текст. Посмотрим, с чего начать.
            if (line == "-----") reading_text = true;
        }
    }

    // Сохраним результат.
    File.WriteAllLines(txtOutput.Text, output_lines.ToArray());
    lblResults.Text = "Removed " + num_removed.ToString() +
        " sections";
    Cursor = Cursors.Default;
}

Этот код использует форму CheckBox es формы, чтобы построить строку, содержащую маркеры цели, разделенные символами новой строки. Например, в данных WordPress комментарий начинается с строки «COMMENT:» и заканчивается строкой «-».

Затем программа считывает файл входных данных в массив строк. Затем он проходит через этот массив.

Переменная reading_text отслеживает, читает ли программа что-то, что мы хотим сохранить. Внутри цикла, если reading_text является true, мы читаем то, что хотим сохранить. В этом случае программа проверяет текущую строку текста, чтобы увидеть, находится ли она внутри строки target, содержащей токены, для разделов, которые мы хотим удалить. Например, если текущая строка является началом комментария. Если строка находится в строке target, программа увеличивает num_removed, поэтому мы помним, что мы удалили раздел. Он также устанавливает reading_text в false, чтобы программа не читала больше данных некоторое время.

Если текущая строка не находится в строке target, то программа просто добавляет ее в выходной список.

Если в цикле reading_text находится false, программа gte должна пропускать текущую строку. Он проверяет строку, чтобы увидеть, является ли это «-», указывающим конец раздела, который мы пропускаем. Если строка «-», программа устанавливает read_text в true, чтобы программа снова сохраняла текст.

После обработки всех строк во входном файле программа использует File.WriteAllLines для записи сохраненных строк в выходной файл.

Источник: http://csharphelper.com/blog/2014/10/clean-a-wordpress-database-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector