У меня проблема с модулем, который я пишу.У меня есть массив имен, который имеет определенный формат и может содержать символы и пробелы.Имя может иметь два формата:
$name[0] = "--> Psychic Barrtier";
$name[1] =" Initial Presence";
В моем коде я беру каждую строку в массиве и использую оператор preg_match, чтобы проверить, соответствует ли он этим двум шаблонам.Итак, я в основном ищу строку, которая начинается с двух черточек и «>», а затем пробел.Или я ищу строку, которая начинается с 4 пробелов.Это мой оператор preg_match:
while (preg_match('/^(--> |--> |--> | {4}|    |Â+)(.+)$/', $name[$i], $capturedname))
Проблема в том, что оба типа имен передают оператор preg_match, но когда я сталкиваюсь с именем, которое начинается только с 4 пробелов, захваченные данные в переменной $захваченное имя не совпадает.По сути, все, что я записываю в $ caputredname [0] - это все, тогда $ capturedname [1] будет просто пробелами, а $ capturedname [2] будет только именем.Вот что я получаю вместо этого:
$ capturedname [0] = "Evil Presence" $ capturedname [1] = "�" $ capturedname [2] = "� Evil Presence"
Array1 плюс 2 должен равняться массиву 0, но здесь это не так.Пробелы преобразуются в какой-то ромб с символом вопросительного знака, и $ capturedname [2] снова содержит пробелы, они просто не складываются.Любая помощь будет принята с благодарностью.Это беспокоило меня уже 3 дня.Заранее спасибо.