Пример 13

Поиск и замена текста

replace.php


<?


$script 
$_SERVER["PHP_SELF"];


$error = @$_GET["error"];

$error_message ($error == 'yes') ? "<font color='red'><b>Вы не заполнили все поля</b></font><br><br><br>" '';



########################################################################################

 ############
 #          #
 #  Блок 1  #
 #          #
 ############


$method $_SERVER["REQUEST_METHOD"];


if (
$method == 'POST') {


    
$text = @$_POST['text'];

    
$find = @$_POST['find'];

    
$replace = @$_POST['replace'];



    if (
get_magic_quotes_gpc()){

        
# ПРИМЕЧАНИЕ !!
        # Параметр magic_quotes_gpc был помечен УСТАРЕВШИМ начиная с версии PHP 5.3.0
        # и был УДАЛЕН в версии PHP 5.4.0.


        
$text stripslashes($text);

        
$find stripslashes($find);

        
$replace stripslashes($replace);

    }


    if (empty(
$text) || empty($find) || empty($replace)) {

        
Header("Location: $script?error=yes");

    }

}





########################################################################################

?>

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>

<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<title>Поиск и замена текста</title>
</head>
<body>

<h2>Поиск и замена текста</h2>


<?


########################################################################################

 ############
 #          #
 #  Блок 2  #
 #          #
 ############


if ($method == 'POST') {


        
$result preg_replace("/$find/"$replace$text);




    
$text htmlspecialchars($text);

    
$find htmlspecialchars($find);

    
$replace htmlspecialchars($replace);

    
$result htmlspecialchars($result);

?>



<p><b>Текст:</b> &nbsp; &nbsp; &nbsp; <font color='#008000'><?=$text?></font></p>

<p><b>Найти:</b> &nbsp; &nbsp; &nbsp; <font color='#008000'><?=$find?></font></p>

<p><b>Заменить:</b>&nbsp; <font color='#008000'><?=$replace?></font></p>

<p>&nbsp;</p>

<p><b>Результат:</b> <font color='#008000'><?=$result?></font></p>


<p class=back><a href=$script>назад</a>");


<?


} else {

########################################################################################

 ############
 #          #
 #  Блок 3  #
 #          #
 ############


 # Выводим форму

?>



<form method="post" action="<?=$script?>">

<?=$error_message?>

<table border=0 cellspacing=0 cellpadding=0>
<tr>
        <td align="right">Текст:&nbsp;</td>
        <td><input name="text" type="text" size="50" value="38 попугаев и 7 мартышек"></td>
</tr>
        <td align="right"><br><br>Найти:&nbsp;</td>
        <td valign="bottom"><input name="find" type="text" size="50" value="([0-9]+)"></td>
</tr>
        <td align="right"><br><br>Заменить:&nbsp;</td>
        <td valign="bottom"><input name="replace" type="text" size="50" value="<font color=red>\1</font>"></td>
</tr>
</table>

<p>&nbsp;</p>
<p><input type="submit" name="Submit" value="Submit">

</form>

<?

}

########################################################################################

?>



<p>&nbsp;</p>
<p>&nbsp;</p>

<p><a href='http://web.ixit.ru/php/tutorial/part08.shtml' target='_blank'>Подробная информация о работе с регулярными выражениями</a></p>

</body>
</html>