php - 如何替换方括号中的文本以进行数据库更改?
问题描述
我们正在将图库软件从 shareprints 更改为 foogallery,并且需要更改他们在博客文章中使用的 id。帖子内容现在具有以下简写代码:
[shareprints gallery_id="14629" gallerytype = 0 等]
我们需要将其更改为:
[foogallery gallery_id="14629"]
所以我需要更改画廊的名称,然后去掉方括号中的其余文本,而不更改方括号之外的文本。
有没有用 MySQL 做这件事,或者有人对如何做这件事有任何其他建议吗?
谢谢
解决方案
最简单的方法就是编写脚本并更新所有内容。除非您有数百万个条目,否则这将是更简单的方法。只需连接 MYSQL,将所有行放入一个数组中,然后循环并在每次迭代中更新。
<?php
// Get all results in mysql sample data underneath
$input_lines = array(
array(
"id" => 1,
"line"=>'[shareprints gallery_id="14629" gallerytype = 0, etc]'
)
);
// Loop each data
foreach($input_lines as $l) {
// Replace with new format
preg_match_all('/\[[a-zA-Z]*\ ([^\ ]*)[^]]*/', $l['line'], $output_array);
$input_lines = "[testname ". $output_array[1][0]."]"; // Change with new name here
// var_dump($input_lines);
// Update mysql with ID (l['id'] here)
}
?>
推荐阅读
- javascript - 使用 React js 状态存储经过身份验证的用户的令牌是否安全?
- opencv - “numpy.ndarray”对象没有属性“split”
- python - 在 Python 中存储为变量的字符串上使用 u'string'
- c++ - 使用VTK检查一个点是否在内部和对象
- json - 使用 groovy 获取詹金斯所有主/子作业详细信息
- eclipse - 无法在 Eclipse IDE Photon Release Candidate 3 (4.8.0RC3) 中安装 WildFly/JBoss 服务器
- javascript - 如何使用java在pdf中的字符串位置插入文本字段
- python - Discord 的多线程(计划作业)
- python - 如何在 QTextEdit 小部件的顶部插入文本?
- spring - JPA 仅在修改时保存/更新