国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

86 řádky
3.1KB

  1. <?php
  2. /**
  3. * 数据库字段替换
  4. *
  5. * @version $id:sys_data_replace.php 22:28 2010年7月20日 tianya $
  6. * @package DedeBIZ.Administrator
  7. * @copyright Copyright (c) 2022 DedeBIZ.COM
  8. * @license GNU GPL v2 (https://www.dedebiz.com/license)
  9. * @link https://www.dedebiz.com
  10. */
  11. require_once(dirname(__FILE__).'/config.php');
  12. if (DEDEBIZ_SAFE_MODE) {
  13. die(DedeAlert("系统已启用安全模式,无法使用当前功能",ALERT_DANGER));
  14. }
  15. CheckPurview('sys_Data');
  16. if (empty($action)) $action = '';
  17. if (empty($action)) {
  18. require_once(DEDEADMIN."/templets/sys_data_replace.htm");
  19. exit();
  20. }
  21. //列出数据库表里的字段
  22. else if ($action == 'getfields') {
  23. AjaxHead();
  24. $dsql->GetTableFields($exptable);
  25. echo "<div class='alert alert-info'>";
  26. echo "<p>请选择".$exptable."表下面字段</p>";
  27. while ($row = $dsql->GetFieldObject()) {
  28. echo "<a href=\"javascript:pf('{$row->name}')\">".$row->name."</a> ";
  29. }
  30. echo "</div>";
  31. exit();
  32. }
  33. //保存会员设置,清空会员数据
  34. else if ($action == 'apply') {
  35. $validate = empty($validate) ? '' : strtolower($validate);
  36. $svali = GetCkVdValue();
  37. if ($validate == "" || $validate != $svali) {
  38. ShowMsg("验证码不正确", "javascript:;");
  39. exit();
  40. }
  41. if ($exptable == '' || $rpfield == '') {
  42. ShowMsg("请指定数据表和字段", "javascript:;");
  43. exit();
  44. }
  45. if ($rpstring == '') {
  46. ShowMsg("请指定被替换文档", "javascript:;");
  47. exit();
  48. }
  49. if ($rptype == 'replace') {
  50. $condition = empty($condition) ? '' : " WHERE $condition ";
  51. $rs = $dsql->ExecuteNoneQuery("UPDATE $exptable SET $rpfield=REPLACE($rpfield,'$rpstring','$tostring') $condition ");
  52. $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$exptable`");
  53. if ($rs) {
  54. ShowMsg("成功完成数据替换", "javascript:;");
  55. exit();
  56. } else {
  57. ShowMsg("数据替换失败", "javascript:;");
  58. exit();
  59. }
  60. } else {
  61. $condition = empty($condition) ? '' : " And $condition ";
  62. $rpstring = stripslashes($rpstring);
  63. $rpstring2 = str_replace("\\", "\\\\", $rpstring);
  64. $rpstring2 = str_replace("'", "\\'", $rpstring2);
  65. $dsql->SetQuery("SELECT $keyfield,$rpfield FROM $exptable WHERE $rpfield REGEXP '$rpstring2' $condition ");
  66. $dsql->Execute();
  67. $tt = $dsql->GetTotalRow();
  68. if ($tt == 0) {
  69. ShowMsg("根据您指定的正则,找不到任何东西", "javascript:;");
  70. exit();
  71. }
  72. $oo = 0;
  73. while ($row = $dsql->GetArray()) {
  74. $kid = $row[$keyfield];
  75. $rpf = preg_replace("#".$rpstring."#i", $tostring, $row[$rpfield]);
  76. $rs = $dsql->ExecuteNoneQuery("UPDATE $exptable SET $rpfield='$rpf' WHERE $keyfield='$kid' ");
  77. if ($rs) {
  78. $oo++;
  79. }
  80. }
  81. $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$exptable`");
  82. ShowMsg("共找到".$tt."条记录,成功替换了".$oo."条", "javascript:;");
  83. exit();
  84. }
  85. }
  86. ?>