БлогNot. PHP: Повторюша

PHP: Повторюша

Мини-скрипт родился в ответ на настойчивые вопросы ребёнка типа "А тысяча - это много? Покажи!.." и т.п. В первом поле ввода можно задать слово или код спецсимвола HTML для повторения, во втором - количество повторений. После нажатия кнопки "Показать" увидите результат.

Максимальное количество повторений легко изменить значением переменной $maxn в исходнике. Скрипт должен быть размещён в кодировке Юникод. Вот ссылка на рабочую версию и полный исходник на момент написания.

 Скрипт в работе

Файл index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
 <meta content="text/html; charset=utf-8" http-equiv="content-type">
 <title>Повторюша (UTF-8)</title>
</head>
<body>

<?php
 //Настройки:
 $max = 10000; //максимальное количество
 $defn = 100; //количество по умолчанию
 $defc = '&hearts;'; //символы по умолчанию
 //Код:
 require_once "functions.php";
 $params = array ('c','n','a');
 require_once ("params.php");
 if (!empty($n) and is_numeric($n)) {
  if ($n<1) $n=1;
  else if ($n>$max) $n=$max;
 }
 else $n = $defn;
 $size = strlen($max);
 if (empty($c)) $c = $defc;
 echo '<div align="center">
  <form name="f1" action="index.php" method="post">
   <p>Что повторить: <input type="text" name="c" maxlength="12" size="12" value="'.$c.'"> 
      Сколько раз: <input type="text" name="n" maxlength="'.$size.'" size="'.$size.'" value="'.$n.'">
      <input type="submit" name="a" value="Показать"> 
   </p></form>
   <p><small>символы &#039;,&quot;,&lt;,&gt; не работают; 
   но можно вводить специсимволы HTML в виде &amp;spades; или &amp;#9827;</small></p></div>';
 if (!empty($a)) {
  $s = '<p>';
  for ($i=0; $i<$n; $i++) $s .= $c.' ';
  echo $s.'</p>';
 }
?>

</body></html>
Файл functions.php
<?php
 function html_special_chars ($string) { //Удалить опасные для PHP символы, кроме &
  return preg_replace("/\<|\>|\'|\"/","",$string);
 }
 function trimall ($string) { //Удалить лишние пробелы и переводы строк
  return preg_replace("/(^\s*)|(\s*$)/","",preg_replace("/\s+/"," ",trim($string)));
 }
 function magic($path) { //Убрать возможные проблемы с кавычками
  ini_set('magic_quotes_runtime', '0'); 
  ini_set('magic_quotes_sybase', '0');
  return (@get_magic_quotes_gpc()=='1'?stripslashes($path):$path);
 }
?>
Файл params.php
<?php
 foreach ($params as $num=>$var) {
  if (!empty($_POST[$var])) 
   $$var = trimall(html_special_chars(magic($_POST[$var])));
  else if (!empty($_GET[$var])) 
   $$var = trimall(html_special_chars(magic($_GET[$var])));
  else $$var = '';
 }
?>

Посмотреть символы Юникода с их HTML-кодами можно, например, здесь.

Увеличить масштаб в любом браузере легче всего комбинацией клавиш Ctrl и "плюс". Символы разделяются пробелами и выводятся просто как один большой абзац. Обычно этот абзац можно выделить в браузере тройным щелчком мыши.

Можно не пользоваться формой а передавать параметры командной строкой (через URL):

  • a=1 нужно, чтобы сразу увидеть результат, иначе две другие переменные просто передадутся в форму;
  • n=100 задать количество повторений 100;
  • c=&#9775; задать повторяемый символ.

Пример:

 http://scripts.kislenko.net/repeater/index.php?a=1&n=100&c=Hello

30.08.2015, 14:50 [7233 просмотра]


теги: php сервис числа

показать комментарии (1)