- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
<?php
class Palindrome {
	protected $text;
	function __construct($text) {
		$this->text = $text;
	}
	protected function isPalindrome($text) {
		$string	= mb_strtolower(preg_replace("/[^A-Za-zА-Яа-я0-9]/", "", $text));
		$status = mb_strlen($string) > 2?($string == $this->reverce($string)):false;
		return (object) [
				'status' => $status, 
				'string' => $string, 
				'original' => trim($text, ' ')
			];
	}
	protected function comparingStrings($first_string, $last_string) {
		$comparing = mb_strlen($first_string) > mb_strlen($last_string);
		return $comparing?$first_string:$last_string;
	}
	protected function findPalindrome()
	{
		$palindrome = mb_strlen($this->text);
		$result		= false;
		for ($i = 0; $i < $palindrome; $i++) {
			$palindrome_c = $palindrome-$i;
			for ($j = 0; $j < $palindrome_c; $j++) {
				$find 		= $this->isPalindrome(mb_substr($this->text, $j, $palindrome_c, "UTF-8"));
				if ($find->status) {
					$result = $this->comparingStrings($find->original, $result);
				}
			}
		}
		return $result;
	}
	public function view() {
		if ($this->isPalindrome($this->text)->status) 
			return $this->text;
		if ($palindrome = $this->findPalindrome())
			return $palindrome;
		return mb_substr($this->text, 0, 1);
	}
}
$view = 'Введите палиндром!';
if (isset($_POST['text'])) {
	$palindrome = new Palindrome($_POST['text']);
	$view = $palindrome->view();
}
?> 
<html>
	<head>
		<title>Palindrome</title>
	</head>
	<body>
		<div><?=$view?></div>
		<form action="?" method="POST">
			<input type="text" name="text">
			<input type="submit">
		</form>
	</body>
</html>
                                 
        
fixed