Возникла задача по переносу новостей и страниц с сайта развернутого на ucoz.
Первым делом необходимо в разделе "Резервное копирование проекта" создать, если еще не существует, резервную копию (лучше бд и файлы) и скачать ее.
В моем случае требуемые файлы лежали в папке _s1 : news.txt, site.txt
После этого запустил следующий скрипт, который сохраняет извлекаемые данные в таблицы. предварительно, конечно, требуется их создать.
$link = mysqli_connect('localhost', 'root', '', 'yar-cbs')
or die('Не удалось соединиться: ' . mysqli_error($link));
$filename = "news.txt"; $tablename = 'news_text';$text = file_get_contents ($_SERVER['DOCUMENT_ROOT'] . "/_upload/_s1/" . $filename);
$text = preg_replace("/([^\\\])\n/","$1!----end----!",$text);
$array = explode("!----end----!", $text);
mysqli_query($link, "TRUNCATE TABLE $tablename");
foreach($array as $row) {
$result = [];
$res = explode("|", $row);
if (empty($res[0])) {
continue;
}
$result['id'] = $res[0];
$result['date_create'] = $res[2] . "." . str_pad($res[3], 2, '0', STR_PAD_LEFT) . "." . str_pad($res[4], 2, '0', STR_PAD_LEFT);
$result['date_stamp'] = $res[8];
$result['title'] = $res[11];
$result['text'] = preg_replace("/\\\/","",$res[13]);
$result['counter'] = $res[16];
$result['code'] = $res[28];
$result['update_stamp'] = $res[29];$query = "INSERT INTO $tablename SET ";
$fields = [];
foreach ($result as $key => $value) {
$fields[] = "`$key` = '" . addslashes($value) . "'";
}mysqli_query($link, $query . implode(",", $fields));
}
$filename = "site.txt"; $tablename = 'site_text';
$text = file_get_contents ($_SERVER['DOCUMENT_ROOT'] . "/_upload/_s1/" . $filename);
$text = preg_replace("/([^\\\])\n/","$1!----end----!",$text);$array = explode("!----end----!", $text);
mysqli_query($link, "TRUNCATE TABLE $tablename");
foreach($array as $row) {
$res = explode("|", $row);
if (empty($res[0])) {
continue;
}
$result = [];
$result['id'] = $res[0];
$result['date_stamp'] = $res[7];
$result['title'] = $res[4];
$result['text'] = preg_replace("/\\\/","",$res[6]);
$result['code'] = $res[9];$query = "INSERT INTO $tablename SET ";
$fields = [];
foreach ($result as $key => $value) {
$fields[] = "`$key` = '" . addslashes($value) . "'";
}
mysqli_query($link, $query . implode(",", $fields))or die('Ошибка: ' . mysqli_error($link));
}mysqli_close($link);
?>
Leave a Comment