В смысле расширение неверное? Изображение JPEG же? При чём тут расширение файла. Изображение может быть с каким угодно расширением, его тип определяется в первых нескольких байтах файла.
Например, если открыть любым HEX-редактором картинку PNG, то увидим:
Для JPEG будет примерно так:
При этом расширение может быть каким угодно.
Что касается кода, то я не вижу в нём проблемы, JPEG сохраняется.
Есть DOMDocument. Загружаешь в него весь текст, выбираешь все узлы br, и бегаешь по ним в цикле. Если за узлом в итерации следующий узел тоже br, то удаляешь его, вываливаешься из цикла, и всё заново повторяешь.
В итоге всё сохраняешь в HTML. На выхлопе будет документ без двоения br.
Тут может быть примерно так дюжина причин. Навскидку:
1. Сервер собран для отправки почты? Т.е. работает ли mail() вообще?
2. Происходит ли что-нибудь после строки
if (isset($name) && isset($email) && isset($subject) && isset($body)) { …
?
Проверять лучше так:
if (isset($_POST['name'])) {
$name = trim($_POST['name']);
}
…
if (!empty($name) && !empty($email) && !empty($subject) && !empty($body)) {
…
Как-то сложно всё.
str_word_count() вторым параметром принимает 0, 1 или 2 - флажки формата результата. Так вот, если поставить 2, то она вернёт массив, где ключом элемента будет позиция слова в строке, значение - само слово. Остаётся найти средину массива, и в эту позицию вставить слово.
Но нужно учесть, что это не обязательно середина текста. Середину проще найти, разделив надвое длину всего текста, и найдя к этой позиции ближайший пробел.
Опять же, иногда чтобы установить значение в свойство объекта, нужно произвести с входным значением ряд манипуляций, иногда нужно возбуждать события. А где это сделать удобно как не в сеттере?
В каком смысле "передать"? Если в одно время подключается другой файл через require, то она лежит в $_GET["lang"]. Это суперглобальная переменная сервера.
SELECT
-- Здесь твою строку разбираем и получаем в секундах от 0 часов
(SUBSTRING_INDEX('13:30', ':', 1) * 60 * 60) + (SUBSTRING_INDEX('13:30', ':', -1) * 60) AS t1,
-- Здесь текущее время в секундах
TIME_TO_SEC(NOW()) AS t2