Просто страница выводится в KOI8-R, а обрабатываемый файл в UTF-8 и сам файл со скриптом тоже в UTF-8.
Когда были проблемы с кодировкой, парсер ругался, что-то типа "The symbol do not found in UTF-8 encoding". Как-то так.
Проблема, к слову, чуть изменилась) Добавил в код костыль: str_ireplace("<user>", "", $xmlstr);, теперь стал ругаться, что <information> не имеет закрывающего тега.
Суть такая - при обработке большого файла, я достаю из него части, написанные на xml и загружаю их через simplexml_load_string().
Проблема в том, что из 100 (плюс-минус) загрузок, функция некоторые не загружает, ругаясь:
Цитата:
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 2: parser error : Opening and ending tag mismatch: information line 2 and user in C:\AppServ\www\test1.ru\xml\index.php on line 358
Warning: simplexml_load_string() [function.simplexml-load-string]: <information> </user> in C:\AppServ\www\test1.ru\xml\index.php on line 358
Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in C:\AppServ\www\test1.ru\xml\index.php on line 358
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 3: parser error : Extra content at the end of the document in C:\AppServ\www\test1.ru\xml\index.php on line 358
Warning: simplexml_load_string() [function.simplexml-load-string]: <service id="1614"> in C:\AppServ\www\test1.ru\xml\index.php on line 358
Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in C:\AppServ\www\test1.ru\xml\index.php on line 358
Казалось бы всё просто, но ошибок в тегах XML нет. Не существует тега user или </user>, для <service id="1614"> есть закрывающий тег, внутри него тоже всё нормально, без ошибок.
Но толку - 0. При поиске подобных символов надо их экранировать - так ведь? Но почему тогда не находит? Или экранировать надо не просто символом \, а какими-то ещё приблудами?
Только недавно начал изучать регулярные выражения, и вот столкнулся с затыком:
Нужно отфильтровать, жестко, имена файлов, по имени компании. Допустим есть файлы (массив):
Т.е. мне нужно достать имя фирмы, из имени файла, которое скрывается после фразы "Счет" или "Акт", при условии что после этого слова есть пробел, перед ним пробел вероятен, а после имени идет дата через тире (год может быть как 2 так и 4 цифры) и прочие символы, никак меня не интересующие.
В итоге я получаю ошибку:
Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset 0 in Z:\*** on line 20
Я так понял, что он ругается на самый первый символ '*', но я не смог найти решение проблемы, или причины, почему ему не понравился этот знак. Раньше этого символа не было, и он ругался на '*', который стоит в скобках.
Прошу помощи у знатоков - что я не так, своими кривыми руками, на-ваял?)
Ситуация в следующем: никогда раньше не писал сам скрипты отправки почты, но тут появилась необходимость и, собственно, взялся.
Делал всё по мануалу с php.su, для начала по-практиковавшись через консольку. Всё вроде работает.
Далее написал уже сам скрипт, пытаюсь отправить почту и получаю от гугла ошибку, мол перед авторизацией надо отправить команду STARTTLS, которая, к слову, приводит к дисконнекту.
Долго-долго мучался я с этим гуглом, в итоге собрал следующее:
В таком виде подключается и не ругается на отсутствие каких-то команд, но гугл отвечает:
501 5.5.2 Cannot Decode response q2sm1963093lbd.14
Ну и почта не уходит, понятное дело.
Прошу помощи - как надо шифровать логин/пароль для гугла, если используем TLS шифрование соединения?
Думал я про готовые библиотеки, но у тех, которые я нашёл есть минус - они для отправки каждого письма делают новое подключение, т.е.:
Подключаемся > отправляем > отключаемся;
а мне нужно за раз отправить хотя бы 50 писем (это не спам, это рассылка документов клиентам и сотрудникам фирмы, раз в месяц). Всего писем может быть до 1000.