admreplace.php

来自「eGroupWare is a multi-user, web-based gr」· PHP 代码 · 共 231 行

PHP
231
字号
<?php/**************************************************************************** copyright            : (C) 2001-2003 Advanced Internet Designs Inc.* email                : forum@prohost.org* $Id: admreplace.php,v 1.2 2003/12/18 16:42:31 iliaa Exp $** This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or * (at your option) any later version.***************************************************************************/	require('./GLOBALS.php'); fud_egw();	fud_use('adm.inc', true);	fud_use('widgets.inc', true);function clean_rgx(){	if (!$_POST['rpl_replace_opt']) {		$_POST['rpl_replace_str'] = '/' . $_POST['rpl_replace_str'] . '/' . $_POST['rpl_preg_opt'];		$_POST['rpl_from_post'] = '/' . $_POST['rpl_from_post'] . '/' . $_POST['rpl_from_post_opt'];	} else {		$_POST['rpl_replace_str'] = '/' . addcslashes($_POST['rpl_replace_str'], '/') . '/';	}}	if (isset($_POST['btn_submit'])) {		clean_rgx();		if (!$_POST['rpl_replace_opt']) {			q('INSERT INTO '.$DBHOST_TBL_PREFIX.'replace (replace_opt, replace_str, with_str, from_post, to_msg) VALUES(0, \''.addslashes($_POST['rpl_replace_str']).'\', \''.addslashes($_POST['rpl_with_str']).'\', \''.addslashes($_POST['rpl_from_post']).'\', \''.addslashes($_POST['rpl_to_msg']).'\')');		} else {			q('INSERT INTO '.$DBHOST_TBL_PREFIX.'replace (replace_opt, replace_str, with_str) VALUES(1, \''.addslashes($_POST['rpl_replace_str']).'\', \''.addslashes($_POST['rpl_with_str']).'\')');		}	} else if (isset($_POST['btn_update'], $_POST['edit'])) {		clean_rgx();		if ($_POST['rpl_replace_opt']) {			$_POST['rpl_from_post'] = $_POST['rpl_to_msg'] = '';		}		q('UPDATE '.$DBHOST_TBL_PREFIX.'replace SET			replace_opt='.(int)$_POST['rpl_replace_opt'].',			replace_str=\''.addslashes($_POST['rpl_replace_str']).'\',			with_str=\''.addslashes($_POST['rpl_with_str']).'\',			from_post=\''.addslashes($_POST['rpl_from_post']).'\',			to_msg=\''.addslashes($_POST['rpl_to_msg']).'\'		WHERE id='.(int)$_POST['edit']);	}	if (isset($_GET['del'])) {		q('DELETE FROM '.$DBHOST_TBL_PREFIX.'replace WHERE id='.(int)$_GET['del']);	}	if (isset($_GET['edit'])) {		list($rpl_replace_opt, $rpl_replace_str, $rpl_with_str, $rpl_from_post, $rpl_to_msg) = db_saq('SELECT replace_opt,replace_str,with_str,from_post,to_msg FROM '.$DBHOST_TBL_PREFIX.'replace WHERE id='.(int)$_GET['edit']);		$edit = (int)$_GET['edit'];		if ($rpl_replace_opt) {			$rpl_replace_str = str_replace('\\/', '/', substr($rpl_replace_str, 1, -1));		} else {			$p = strrpos($rpl_replace_str, '/');			$rpl_preg_opt = substr($rpl_replace_str, ($p + 1));			$rpl_replace_str = substr($rpl_replace_str, 1, ($p - 1));			$p = strrpos($rpl_from_post, '/');			$rpl_from_post_opt = substr($rpl_from_post, ($p + 1));			$rpl_from_post = substr($rpl_from_post, 1, ($p - 1));		}	} else {		$edit = $rpl_replace_str = $rpl_with_str = $rpl_from_post = $rpl_to_msg = $rpl_from_post_opt = $rpl_preg_opt = '';		$rpl_replace_opt = isset($_POST['rpl_replace_opt']) ? (int) $_POST['rpl_replace_opt'] : 1;	}	require($WWW_ROOT_DISK . 'adm/admpanel.php');?><h2>Replacement Management System</h2><form name="frm_rpl" method="post" action="admreplace.php"><?php echo _hs; ?><table class="datatable solidtable">	<tr class="field">		<td>Replacement Type:</td>		<td><?php echo create_select('rpl_replace_opt', "Simple Replace\nPerl Regex (preg_replace)", "1\n0", ($rpl_replace_opt & 1), 'onChange="document.frm_rpl.submit();"'); ?></td>	</tr>	<tr class="field">		<td>Replace mask:</td>		<?php if (!$rpl_replace_opt) { ?>			<td>/<input type="text" name="rpl_replace_str" value="<?php echo htmlspecialchars($rpl_replace_str); ?>">/<input type="text" name="rpl_preg_opt" size=3 value="<?php echo htmlspecialchars($rpl_preg_opt); ?>"></td>		<?php } else { ?>			<td> <input type="text" name="rpl_replace_str" value="<?php echo htmlspecialchars($rpl_replace_str); ?>"></td>		<?php } ?>	</tr>	<tr class="field">		<td>Replace with:</td>		<td><input type="text" name="rpl_with_str" value="<?php echo htmlspecialchars($rpl_with_str); ?>"></td>	</tr><?php	if (!$rpl_replace_opt) {?>	<tr>		<td colspan=2><br></td>	</tr>	<tr class="fieldtopic">		<td colspan=2><b><font size=-2>Optional with the Perl Regex</font></b><br><font size=-1>(Reverse replacement logic, e.g upon editing a post)</font></td>	</tr>	<tr class="field">		<td>Replace mask:</td>		<td>/<input type="text" name="rpl_from_post" value="<?php echo htmlspecialchars($rpl_from_post); ?>">/<input type="text" name="rpl_from_post_opt" size=3 value="<?php echo htmlspecialchars($rpl_from_post_opt); ?>"></td></td>	</tr>	<tr class="field">		<td>Replace with:<br></td>		<td><input type="text" name="rpl_to_msg" value="<?php echo htmlspecialchars($rpl_to_msg); ?>"></td>	</tr><?php	} /* !$rpl_replace_opt */?>	<tr class="fieldaction" align=right>		<td colspan=2><?php			if ($edit) {				echo '<input type="submit" value="Cancel" name="btn_cancel"> <input type="submit" value="Update" name="btn_update">';			} else {				echo '<input type="submit" value="Add" name="btn_submit">';			}?>		</td>	</tr><?php	if (!$rpl_replace_opt) {		if (!isset($_POST['btn_regex'])) {			$regex_str = $regex_src = $regex_with = $regex_str_opt = '';		} else {			$regex_str = $_POST['regex_str'];			$regex_src = $_POST['regex_src'];			$regex_with = $_POST['regex_with'];			$regex_str_opt = $_POST['regex_str_opt'];		}?>	<tr>		<td colspan=2><br></td>	</tr>	<tr class="fieldtopic">		<td colspan=2><b><font size=-2>Test Area, tryout your regex here</font></b></td>	</tr>	<tr class="field">		<td>Replace mask:</td>		<td>/<input type="text" name="regex_str" value="<?php echo htmlspecialchars($regex_str); ?>">/<input type="text" name="regex_str_opt" size=3 value="<?php echo htmlspecialchars($regex_str_opt); ?>"></td>	</tr>	<tr class="field">		<td>Replace with:</td>		<td><input type="text" name="regex_with" value="<?php echo htmlspecialchars($regex_with); ?>"></td>	</tr>	<tr class="field">		<td valign=top>Test text:</td>		<td><textarea name="regex_src"><?php echo htmlspecialchars($regex_src); ?></textarea></td>	</tr><?php	if (isset($_POST['btn_regex'])) {		$str = preg_replace('/'.$regex_str.'/'.$regex_str_opt, $regex_with, $regex_src);?>	<tr class="fieldresult">		<td valign=top>Result:</td>		<td>			<font size=-1>			'<?php echo htmlspecialchars($regex_str); ?>' applied to: <br>			<table border=1 cellspacing=0 cellpadding=3>			<tr><td><?php echo htmlspecialchars($regex_src); ?></td></tr>			</table>			<br>			produces:<br>			<table border=1 cellspacing=0 cellpadding=3>			<tr><td><?php echo htmlspecialchars($str); ?></td></tr>			</table>			</font>		</td>	</tr><?php	} /* isset($_POST['btn_regex']) */?>	<tr class="fieldaction" align=right>		<td colspan=2><input type="submit" name="btn_regex" value="Run"></td>	</tr><?php } /* !$rpl_replace_opt */ ?></table><input type="hidden" name="edit" value="<?php echo $edit; ?>"></form><table class="resulttable fulltable"><tr class="resulttopic">	<td>Replace Type</td>	<td>Replace</td>	<td>With</td>	<td valign=center><font size=-3>(only if regexp:</font> From</td>	<td valign=center>To<font size=-3>)</font></td>	<td>Action</td></tr><?php	$c = uq('SELECT * FROM '.$DBHOST_TBL_PREFIX.'replace ORDER BY replace_opt');	$i = 1;	while ($r = db_rowobj($c)) {		if ($edit == $r->id) {			$bgcolor = ' class="resultrow1"';		} else {			$bgcolor = ($i++%2) ? ' class="resultrow2"' : ' class="resultrow1"';		}		if ($r->replace_opt) {			$rtype = 'Simple';			$r->replace_str = substr($r->replace_str, 1, -1);		} else {			$rtype = 'Regular Expression';		}		echo '<tr'.$bgcolor.'><td>'.$rtype.'</td><td>'.htmlspecialchars($r->replace_str).'</td><td>'.htmlspecialchars($r->with_str).'</td>';		if ($r->replace_opt) {			echo '<td colspan="2" align="center">n/a</td>';		} else {			echo '<td>'.htmlspecialchars($r->from_post).'</td><td>'.htmlspecialchars($r->to_msg).'</td>';		}		echo '<td>[<a href="admreplace.php?edit='.$r->id.'&'._rsidl.'">Edit</a>] [<a href="admreplace.php?del='.$r->id.'&'._rsidl.'">Delete</a>]</td></tr>';	}?></table><?php require($WWW_ROOT_DISK . 'adm/admclose.php'); ?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?