国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
3.4KB

  1. <?php
  2. /**
  3. * 数据库操作替换
  4. *
  5. * @version $Id: sys_data_replace.php 1 22:28 2010年7月20日Z tianya $
  6. * @package DedeCMS.Administrator
  7. * @copyright Copyright (c) 2020, DedeBIZ.COM
  8. * @license https://www.dedebiz.com/license
  9. * @link https://www.dedebiz.com
  10. */
  11. require_once(dirname(__FILE__).'/config.php');
  12. CheckPurview('sys_Data');
  13. if(empty($action)) $action = '';
  14. if(empty($action))
  15. {
  16. require_once(DEDEADMIN."/templets/sys_data_replace.htm");
  17. exit();
  18. }
  19. /*-------------------------------
  20. //列出数据库表里的字段
  21. function __getfields()
  22. --------------------------------*/
  23. else if($action=='getfields')
  24. {
  25. AjaxHead();
  26. $dsql->GetTableFields($exptable);
  27. echo "<div style='border:1px solid #ababab;background-color:#FEFFF0;margin-top:6px;padding:3px;line-height:160%'>";
  28. echo "表(".$exptable.")含有的字段:<br>";
  29. while($row = $dsql->GetFieldObject())
  30. {
  31. echo "<a href=\"javascript:pf('{$row->name}')\"><u>".$row->name."</u></a>\r\n";
  32. }
  33. echo "</div>";
  34. exit();
  35. }
  36. /*-------------------------------
  37. //保存用户设置,清空会员数据
  38. function __Apply()
  39. --------------------------------*/
  40. else if($action=='apply')
  41. {
  42. $validate = empty($validate) ? '' : strtolower($validate);
  43. $svali = GetCkVdValue();
  44. if($validate == "" || $validate != $svali)
  45. {
  46. ShowMsg("安全确认码不正确!", "javascript:;");
  47. exit();
  48. }
  49. if($exptable == '' || $rpfield == '')
  50. {
  51. ShowMsg("请指定数据表和字段!", "javascript:;");
  52. exit();
  53. }
  54. if($rpstring=='')
  55. {
  56. ShowMsg("请指定被替换内容!", "javascript:;");
  57. exit();
  58. }
  59. if($rptype=='replace')
  60. {
  61. $condition = empty($condition) ? '' : " WHERE $condition ";
  62. $rs = $dsql->ExecuteNoneQuery("UPDATE $exptable SET $rpfield=REPLACE($rpfield,'$rpstring','$tostring') $condition ");
  63. $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$exptable`");
  64. if($rs)
  65. {
  66. ShowMsg("成功完成数据替换!", "javascript:;");
  67. exit();
  68. }
  69. else
  70. {
  71. ShowMsg("数据替换失败!", "javascript:;");
  72. exit();
  73. }
  74. }
  75. else
  76. {
  77. $condition = empty($condition) ? '' : " And $condition ";
  78. $rpstring = stripslashes($rpstring);
  79. $rpstring2 = str_replace("\\","\\\\",$rpstring);
  80. $rpstring2 = str_replace("'","\\'",$rpstring2);
  81. $dsql->SetQuery("SELECT $keyfield,$rpfield FROM $exptable WHERE $rpfield REGEXP '$rpstring2' $condition ");
  82. $dsql->Execute();
  83. $tt = $dsql->GetTotalRow();
  84. if($tt==0)
  85. {
  86. ShowMsg("根据你指定的正则,找不到任何东西!","javascript:;");
  87. exit();
  88. }
  89. $oo = 0;
  90. while($row = $dsql->GetArray())
  91. {
  92. $kid = $row[$keyfield];
  93. $rpf = preg_replace("#".$rpstring."#i", $tostring, $row[$rpfield]);
  94. $rs = $dsql->ExecuteNoneQuery("UPDATE $exptable SET $rpfield='$rpf' WHERE $keyfield='$kid' ");
  95. if($rs)
  96. {
  97. $oo++;
  98. }
  99. }
  100. $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$exptable`");
  101. ShowMsg("共找到 $tt 条记录,成功替换了 $oo 条!", "javascript:;");
  102. exit();
  103. }
  104. }