можно попробовать после итерации цикла принудительно уничтожать ненужные объекты, чтобы освободить память "вручную", но не факт, что это поможет, PHPExcel очень прожорлив с точки зрения памяти
Юрий Елманов: "/resource/img/".$_FILES["upload"]["name"] попробуйте этот путь сделать абсолютным, а не относительным, по ходу скрипт просто не знает куда нужно перенести загруженный файл
И в итоге открытие писем и чтение картинок по ссылкам создает ненужный трафик на сервер. Я допускаю, что скорее всего они хранятся в CDN и вам все равно, но чем плохо аттачить картинки к самому письму?
Максим Креативный: можно попробовать воспользоваться библиотеками для парсинга HTML, через парсер найти нужные элементы и сделать замену, у популярных либ как правило достаточно функционала для таких манипуляций
EVOSandru6: сложно тут что-то комментировать, надеюсь все таки мои подсказки помогли
иначе как путем экспериментов иногда сложно получить правильное решение
Виктор: честно сложно так в лоб подсказать решение, нужно экспериментировать, а лучше почитать хаб Yii здесь на сайте, там не раз поднимался этот вопрос и точно есть решение проблемы
EVOSandru6: все правильно, нет строки которая обрабатывает это запрос, поэтому и 404
после первых двух нужно добавить: tenant/action > ...
сейчас нормально обрабатываться будут только урлы вида: 2/login, 2/registration, 2/contact
EVOSandru6: 1 и 3 правило дублируются в массиве выше, а для этого случая думаю должно быть что-то типа: tenant/action > hotels/action
правила, которые приведены выше не подходят
majestik: можно попробовать написать реализации каких-то модулей потенциального фреймворка, например роутер, DI контейнер, базовую модель, Request/Response, обертку для работы с БД, простую ORM, возможно какие-то виджеты типа DataGrid, Pagination и тд, HTTP клиент
по уровню сложности они не отсортированы, но почитав немного о них несложно понять насколько трудоемкой будет реализация