Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как вывести текст из MySQL без непечатаемого пробела (& nbsp; )?

Лучший ответ:
Проблема возникает из-за того, что разбиение на страницы происходит для фиксированного количества символов. $text = substr($data['text'], $i*850, 850);
Этот код не знает о том, что & nbsp; это один символ. Поэтому амперсанд оказывается на одной странице, а код nbsp; на другой.
Чтобы решить проблему, придется усложнить алгоритм.  Например, можно разбить текст на слова, и выводить на одной странице слова, сумма длин которых в сумме с количеством разделителей слов не превышает заданное у вас в коде число 850.
Самое простейшее решение, разбить текст на слова с помощью explode(), более интеллектуальное решение можно реализовать, используя preg_split() и регулярные выражения.// формируем массив слов
// считаем, что все слова разделены пробелом
$words = explode(' ', $data['text'])
// далее должен идти код, который определит
// какие слова будут выведены на этой странице
Таким образом, у вас не получится разделить символ & nbsp; и другие спецсимволы на две страницы. Надеюсь, что новый алгоритм разбиения вы сможете написать самостоятельно.
P.S. А самое простое и грубое решение, избавиться вообще от источника проблемы:$data['text'] = html_entity_decode($data['text'], ENT_NOQUOTES);
Документация здесь: www.php.su/functions/?html-entity-decode
UPD. Набросал недостающий кусок кода. Не тестировал, но должно работать.<?php 
while ($data = mysql_fetch_array($qr_result)) {
 $count_pages = ceil(strlen($data['text']) / 850);
// разбиваем текст на слова
 $words = explode(' ', $data['text']);
// начинаем вывод с первого слова
 $current_word_index = 0;
// формируем текст страницы
$page_text = '';
 while ($current_word_index < count($words)){
	 // если длина текущего текста страницы
	 // плюс пробел плюс следующее слово меньше 850
	if (strlen($page_text . $words[$current_word_index] . ' ') <= 850){
		// добавляем слово с пробелом к тексту
		$page_text .= $words[$current_word_index] . ' ';
		// переходим к следующему слову
		$current_word_index++;
	}
	else{ // в противном случае выводим страницу
	?>
	<div>
		<p><?=$page_text?></p>
	</div>
	<?	
		// 
		$page_text = '';
	}
	// если мы дошли до последнего слова, то выводим весь оставшийся текст
	if ($current_word_index == count($words) - 1){
		?>
		<div>
			<p><?=$page_text . ' ' . $words[$current_word_index]?></p>
		</div>
		<?
	}
  }
} ?>

Худший ответ:
Выводить как HTML например. Без htmlencode.
Вопрос: Как выбрать незанятый remote port для «ssh -R»

Лучший ответ:
Думается мне, что без костылей это не решается…
Так что вариант у меня только один — писать скрипт:
1 — генерим случайное число
2 — по ssh лезем и netstat (sockstat в случае FreeBSD) проверяем свободен ли порт
3 — анализируем результат, если порт свободен, то запоминаем
4 — проводим аналогичную процедуру (п. 1-3) для локального порта
5 — выполняем ssh подключение с port forwarding
6 — сообщаем какие порты были задействованы

Худший ответ:
ssh -R 0 помогает, но как выяснилось, не все SSH-сервера разрешают подключаться к remote port из вне, поэтому FTP сервер не может соединиться к remote port (и FTP сервер не поддерживает пассивный режим). Вывод: общую задачу по работе с FTP через SSH не решить. В частном можно. В моем случае оказалось достаточно команды STAT, которая показывает список файлов в папке без создания канала передачи данных, в отличии от команды LIST, которая делает тоже самое, но пытается создать канал передачи данных.
Вопрос: Как обработать результат mysqli запроса?

Лучший ответ:
выведите $result через var_dump($result);
ну и потом 
$row = $result->fetch_row();
echo $row[0];
или 
echo mysql_result($result, 0);
смотря что вы там юзаете

Худший ответ:
выведите $result через var_dump($result);
ну и потом 
$row = $result->fetch_row();
echo $row[0];
или 
echo mysql_result($result, 0);
смотря что вы там юзаете
Вопрос: Как отследить какие файлы или приложения открывает пользователь?

Лучший ответ:
открытие приложений можно косвенно определять по наличию новых процессов, остальную активность можно пробовать отслеживать с помощью хуков

Худший ответ:
открытие приложений можно косвенно определять по наличию новых процессов, остальную активность можно пробовать отслеживать с помощью хуков
Вопрос: Как почистить сессию в laravel?

Лучший ответ:
В общем я наврал, есть возможность сделать это стандартными средствами (не проснулся пока писал первое сообщение).
В Laravel все драйверы сессий реализуют SessionHandlerInterface.
Получить хэндлер можно с помощью:session()->getHandler();
Получить ID текущей сессии можно с помощью:session()->getID();
Таким образом нам нужно сделать следующее:
- Когда пользователь входит в систему, получить ID его сессии и сохранить его в БД (например добавить в таблицу users поле sesison_id).
- Когда админу нужно разлогинить пользователя, нужно просто вызвать:$user = // получаем юзера;
session()->getHandler()->destroy($user->session_id);
Метод destroy удалит сессию пользователя, и его выкинет из системы.
Не проверял, но должно работать.
Можно сделать иначе. Когда нужно выкинуть юзера из системы, можно записывать в сессию параметр (например should_logout = true).
Добавить middleware, который при каждом запросе будет проверять есть ли в сессии этот параметр, и если есть, то удалять сессию.
Второй вариант более универсальный, так как позволяет сделать какие-то действия перед тем как юзера выкинет из системы (например сохранить часть данных из сессии в БД, если это необходимо).

Худший ответ:
Удалить файл сессии если хранение сессии в файлах, если в БД то из БД удалить.<?php
$pathFile = rtrim(ini_get('session.save_path'),'/').'/' . $sessionId;
if(file_exists($pathFile)){
	echo "File exists!";
	//unlink($pathFile);   
}
Главное чтоб область видимость папок не было ограничено если апач + open_basedir придется конфиг править
open_basedir none ставить.
Вопрос: Asterisk — какой готовый дистрибутив выбрать и какой софтфон лучше?

Лучший ответ:
FreePBX какой-нибудь. Но изучить основы астера все равно надо, с полпинка он не зводится без понимания что к чему.
софтфон Zoiper хороший

Худший ответ:
как тут уже сказали - с дистрибутивом "или-или" или AsteriskNow (относительно без постороннего барахла) или Elastix (в дистр напихали все что можно) или с другой стороны берите Centos и ставьте Asterisk руками. Centos потому что сами авторы астериска ориентируются в первую очередь на него
софтфон - сложнее. тут уж что вашим пользователям понадобится. про Zoiper могу сказать что от инсталляции к инсталляции ведет себя по разному. неоднократно ловил проблемы пропадания звука в одном из  направлений. сам, если к функционалу и интерфейсу нет особых требований использую X-Lite 3(именно третьей версии)
Вопрос: Как защитить  от DDOS сайт на bitrix?

Лучший ответ:
Так проблема в том что вас DDOSят или в том что все тупит на битриксе?
Это две разных проблемы и решать их надо по разному и в разных местах.
Про DDOS вам уже ответили - фильтровать трафик. Пакеты не должны даже до сервера долетать, не говоря уже о bitrix'е.
man iptables.
По поводу битрикса - включите кэширование в компонентах - какая разница сколько у вас обращений будет к главной, если со включенным кэшем скажем на 10 часов, ваши тяжелые, неоптимизированные запросы будут выполнятся не чаще чем раз в 10 часов? Хоть задэдосься. Компонент один раз отработает и будет выплевывать код из файла кэша пока он не устареет.

Худший ответ:
если кто вздумает сейчас попробовать завалить сервер
Если ваш проект на VPS'e, то он в принципе уязвим при DDOS, потому что в случае атаки хостер автоматом мигрирует вашу виртуалку на карантинный сервер, что бы запросы к вашему VPS не забивали канал железки.
Если проблема в трёхэтажном sql запросе, то кэшируйте этот компонент на века. 
Если проблема в том что получаемый кэш компонента много весит(>1МБ), то либо вычищайте его, либо включайте встроенное кэширование на эту страницу или ставьте отдельный модуль getcache
Вопрос: Программная платформа для домашнего сервера?

Лучший ответ:
Ubuntu Server подойдет вам идеально

Худший ответ:
Использую для схожих нужд мощную рабочую машину на Windows 7 Pro x64 — никаких проблем нет, за более чем год 24/7 по своей вине ни разу не упала.
Вопрос: Как запускать скрипт на PHP ежедневно?

Лучший ответ:
На вашем хостинге нет Cron'а?

Худший ответ:
Так как просто нужно было переходить по линку чтобы запускать скрипт, то Cron нам не очень подходит, но все равно всем очень благодарен!

Есть плагин для Chrome, который это делает. Также есть Windows Task Scheduler который также может это делать. 

Вообще, пока не нашел другого решения чтобы можно было обойтись без вмешательства.
Вопрос: Стоит ли продолжать путь frontend разработчика?

Лучший ответ:
Соберись, тряпка! Серьезно, бывает по началу. Пройдет.
И да, вы еще даже не ступили на путь frontend разработчика. Вы верстальщик.

Худший ответ:
Сравните скорость верстки с той, что была по приходу, стала выше/ниже?
Узнайте "эталон" критикующего, узнайте на кого он ориентируется и снова сравните (заодно узнайте ценник эталона).
Работайте с такой скоростью, которая позволяет качественно верстать.
Делайте заготовки, закладки, снипеты.
Узнайте как другие добиваются скорости.
Вопрос: Есть ли близкий аналог слайдера Fotorama?

Лучший ответ:
Я думаю, вопрос нужно начинать с причин по которым Fotorama не подходит, очевидно же что нет смысла писать копию какого-то плагина с нуля.

Худший ответ:
Что-то мне кажется, что это вы чего-то намудрили. fotorama.io — там всё и увеличивается и уменьшается при изменении размеров окна без задержек и обновлений (Safari 8).
UPD:
Вопрос: Семантическое ядро, какие контрольные вопросы задавать?

Лучший ответ:
Тут searchengines.guru/forumdisplay.php?f=92 полно тем с услугами по составлению СЯ. Там и отзывы, обсуждения.

Худший ответ:
Тут searchengines.guru/forumdisplay.php?f=92 полно тем с услугами по составлению СЯ. Там и отзывы, обсуждения.
Вопрос: Как выравнивать несколько элементов в строке, при смене размера экрана?

Лучший ответ:
<div class="parent">
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
</div>.parent {
    width: 170px;
    text-align: center;    
}
.child {
    display: inline-block;
    width: 50px;
    height: 50px;
    background: black;
    border-radius: 50%;
}Посмотреть вживую.
Ну или стильный, модный, молодежный flexbox:.parent {
    width: 170px;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
}
.child {
    width: 50px;
    height: 50px;
    background: black;
    border-radius: 50%;
}Поиграться.

Худший ответ:
Выравнивай либо процентами ширину и марджини/паддинги, или делай медиакверями переходы значений при изменении ширины экрана. там можно помиграться position
.parent {
    width: 100%;    
}
.child {
    width: 30%;
    margin-left: 2.5%;
    height: auto;
    background: black;
    border-radius: 50%;
}
Вопрос: Можно ли принудительно яваскриптом добавить файл в поле input file?

Лучший ответ:
нельзя. если бы было можно, это была бы гигантская дыра. любой сайт мог бы загрузить любой файл с компьютера без ведома пользователя

Худший ответ:
Flash-загрузчик или менее популярное решение java-applet может решить эту задачу но только в части количества загружаемых файлов. То есть можно выбрать сразу пачку и отправить.
Самостоятельно инициировать доступ через открытый в браузере сайт вы не сможете, ибо вопрос безопастности и он учитывается на многих уровнях от самого браузера до Flash, к примеру
Вопрос: Железо, озу, а правда ..?

Лучший ответ:
правда, только не в 4 раза.
https://ru.wikipedia.org/wiki/Двухканальный_режим

Худший ответ:
Что лучше - если повозку тянут 4 слабые лошади или 1 сильная? В чем разница?
 А в том, что четверо нагрузку распределяют и меньше сил тратят.
Да и еще по одной причине лучше брать несколько планок - если что-то с одной случится, заменить не так дорого и обидно.
Вопрос: Как проверить, откуда пришел запрос?

Лучший ответ:
support.interkassa.com 
«Как делается проверка целостности данных?
Высылая оповещение о проведении платежа, сервис Interkassa Payment Interface передает реквизиты платежа и контрольную подпись, позволяющую проверять неизменность передаваемых данных. Продавец может выполнить проверку целостности данных, используя контрольную подпись.
»

Худший ответ:
Береженого бог бережет. Думал еще проверить откуда запрос пришел, мало ли. Всем большое спасибо.
Вопрос: Как релализовать мультиязычность на JS и node.js?

Лучший ответ:
А вроде Mean.js хотят "вот-вот" ng-abide  включить в состав 0.4.0

Худший ответ:
Рекомендую предусмотреть для начала некоторый вариант роутинга для разных языковых версий (hreflang). 
Затем познакомиться с тем, как поисковые системы индексируют динамический контент.
https://developers.google.com/webmasters/ajax-craw...
И еще почитать:
builtvisible.com/javascript-framework-seo
stackoverflow.com/questions/13499040/how-do-search...
И само собой i18n/l10n имеются для обоих проектов. Следуйте стандартам, в них обычно учтены многие грабли.
https://docs.angularjs.org/guide/i18n
https://github.com/mashpie/i18n-node
Вопрос: Хабр скукожился

Лучший ответ:
Уважаемая администрация, верните как было пожалуйста!

Худший ответ:
А что там? У меня
404 Not Found
Вопрос: Почему разработчики так безаппеляционно утверждают, что один фронт-контроллер лучше?

Лучший ответ:
С одной точкой входа можно не париться по поводу маршрутизации вообще. Вы добавляете новый маршрут в конфиг и заворачиваете его на нужный контроллер. Всё. При грамотной автозагрузке, вам не надо заморачиваться по поводу того, какие классы нужны для этого конкретного контроллера. Когда количество маршрутов приближается к сотне, начинаешь понимать, что так значительно проще.

Худший ответ:
Как по мне, вопрос спорный. Ваши аргументы уместны, но я вот что думаю.
1. По поводу статики. Если статика действительно статика – то она должна отдаваться совсем отдельно. Если в ней всё-таки участвует движок – это уже не статика.
2. Ну и сама суть. Не знаю, почему, но мне как-то даже эстетически приятнее и красивее, когда в проекте одна точка входа, а не несколько в разных местах. Я согласен с тем, что инициализацию можно подключать отдельным файлом. Но это либо каждый файл начинать с подключения init-файла (как по мне, эстетически некрасиво)), либо ещё и помнить, какой файл является точкой входа, а какой нет. Ничего уже не говоря об относительной адресации внутри файловой системы.
В своё время в своём проекте использовал что-то такое. Есть одна точка входа. В url передаётся модуль, action и любые дополнительные параметры. App инициализируется, парсит request и передаёт управление нужному классу со всеми остальными параметрами. И это реально круто.
Несмотря на то, что ЧПУ уже не так актуальны, как раньше, с несколькими точками входа без маршрутизации через mod_rewrite сложно реализовать ссылки вида /news/ofigennaya-novost-s-dlinnym-zagolovkom-v-url. Да и даже если извращаться, приятнее в URL видеть предыдущую ссылку, чем /news.php/ofigennaya-novost-s-dlinnym-zagolovkom-v-url
Вопрос: Признается ли какой-либо из типов лицензий Creative Commons в Украине?

Лучший ответ:
Creative Commons в Украине не признается вообще. Самый простой способ — попробовать пообщаться с копипастерами и решить все мирно, если же не выйдет, то можно подать в суд (или хотя бы пригрозить этим). Но, зная уровень технической грамотности наших судей, доказать свои права на контент будет очень непросто.

Почитать можно, например, тут, статей хватает, только вот со статьями о решении суда в пользу правообладателя совсем беда, я не видел ни одной, хоть интересовался. 

Так что защитить в Украине свои авторские права в интернете довольно сложно.

«Если ваши материалы копируют, то это признак качества. Значит ваш труд приносит людям пользу». Как-то так.

Худший ответ:
Спасибо за ответ и ссылку, примерно так и предполагали.
Вопрос: Что за проблема рендеринга в Android Studio?

Лучший ответ:
Наконец-то и до сюда добралось!
Проблема в последнемAppCompat 23.2.0.
В этой версии ввели поддержку VectorDrawableCompat.
Теперь векторные ресурсы больше не будут конвертироваться в растровые на этапе сборки.
 Однако,студия об этом не знает,и она автоматически решила сделать это опять.
Поэтому  нужно прописать специальный флаг в Gradle вашего проекта,
иначе вылетит, такой же exception, как и у вас.1-ый вариант(если у вас версияGradle wrapper >= 2.0):android {
  defaultConfig {
    vectorDrawables.useSupportLibrary = true
  }
}2-ой вариант:(если версия Gradle wrapper == 1.5 ; скорее всего он вам и подойдёт)android {
  defaultConfig {
    // Stops the Gradle plugin’s automatic rasterization of vectors
    generatedDensities = []
  }
  // Flag to tell aapt to keep the attribute ids around
  aaptOptions {
    additionalParameters "--no-version-vectors"
  }
}
Ну, а чтобы использовать это дело:<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
   app:srcCompat="@drawable/ic_search"/>
   Обратите внимание на последнюю строчку:app:srcCompat="@drawable/ic_search"
 Однако, данное решение помогает не всем.Хотя, вы просто лишаетесь видеть правильный
вид некоторых элементов во время редактирования.При запуске всё будет выглядеть нормально.

Худший ответ:
Читайте текст ошибки(Exception Details) и исправляйте ее.
Вопрос: Работает ли в PHP global в обратном направлении?

Лучший ответ:
Все элементарно. :)$GLOBALS['link'] = $link;

Худший ответ:
У Вас боязнь глобальных функций?
Вопрос: Возможен ли XMPP в коммерческом проекте?

Лучший ответ:
Возможен. Начинать отсюда, продолжать тут

Отчислений никаких делать при использовании не требуется.

Худший ответ:
Возьмите например Вконтакте или GMail. Спокойно используют.
Вопрос: Как удалить массив с одним пустым элементом из другого массива?

Лучший ответ:
www.php.su/functions/?array-filter
Здесь есть пример с удалением пустых элементов www.askdev.ru/php/7845/%D0%A3%D0%B4%D0%B0%D0%BB%D0...

Худший ответ:
Есть массив (если представить визуально, то похож на документ Excel), горизонтальные строки в нём отдельные массивы.
2 мерный массив называется.
А простым перебором ни как?$result = [];
foreach ($exel as $key => $items) {
    $clear = true;
    foreach ($items as $cell) {
        if (!empty($cell)) {
            $clear = false;
            break;
        }
    }

    if (!$clear) {
        $result[] = $exel[$key];
    }
}
Вопрос: Чем отличается комментарии //, /** */ и /* */?

Лучший ответ:
// Однострочный комментарий

/**
 * Многострочный комментарий. Чаще всего используется для документации
 * Многострочный комментарий. Чаще всего используется для документации
 */

/* Многострочный комментарий
   Многострочный комментарий */
journals.ecs.soton.ac.uk/java/tutorial/getStarted/...

Худший ответ:
Первый — для одной строки, остальные не отличаются друг от друга.
Вопрос: Как сделать интервал от текшего времени -10 мин до -50минут?

Лучший ответ:
Вот тут ошибка Y-m-d H:m:s, должно быть Y-m-d H:i:s

Худший ответ:
В процедурном стиле$date = time();
var_dump(date('c', $date));
# string '2015-10-26T14:42:19+03:00' (length=25)

$m10m = strtotime('-10 minutes', $date);
var_dump(date('c', $m10m));
# string '2015-10-26T14:32:19+03:00' (length=25)

$m50m = strtotime('-50 minutes', $date);
var_dump(date('c', $m50m));
# string '2015-10-26T13:52:19+03:00' (length=25)
В объектом:$date1 = new DateTime();
$date2 = clone($date1);

$i1 = new DateInterval('PT10M');
$i2 = new DateInterval('PT50M');

var_dump($date1->format('c'));
# string '2015-10-26T14:49:27+03:00' (length=25)

var_dump($date1->sub($i1)->format('c'));
# string '2015-10-26T14:39:27+03:00' (length=25)

var_dump($date2->sub($i2)->format('c'));
# string '2015-10-26T13:59:27+03:00' (length=25)
Вопрос: Подскажите веб-шрифты

Лучший ответ:
pt sans и pt serif
одни из лучших что я видел

Худший ответ:
Кириллических шрифтов для веба, на самом деле, увы — мало. Имхо в гугл фонтс самые нормальные, но тоже был бы рад узнать о других.
Вопрос: Что же такое DNS?

Лучший ответ:
Вас в википедии забанили?
http://ru.wikipedia.org/wiki/DNS-сервер

Худший ответ:
Потрясающая лень у вас. Аплодисменты.Зачем моему IP еще какой-то DNS?
А откуда вашему компьютеру знать к какому DNS серверу подключатся чтобы преобразовать хост в IP адрес? Вот и указывается (обычно несколько для надежности)Кто его назначает моему ПК? 
Или вручную или автоматом протоколом динамической конфигурации сети DHCP. Вобщем назначает провайдер. Есть частоипользуемый днс от гугла - 8.8.8.8 и 8.8.4.4
Вопрос: Стоит ли продолжать?

Лучший ответ:
Все пишут про оформление, а я побуду немножко граммар-наци.
"Побор квартиры" - "Подбор квартиры"
Цена не может быть дешевле или дороже, она бывает выше или ниже. Дешевле или дороже при этом становится товар.
"В течении 24 часов" - "В течение 24 часов"
Ну и на второй визитке я бы "на 25% дешевле" постарался уложить на одной строке - оставлять висящий в конце строки предлог не рекомендуется.

Худший ответ:
Ну работать есть над чем... выравнивание элементов относительно друг-друга, отступы, типографика, подбор палитры и т.д. но если это ваши первые работы такой направленности то не сдавайтесь и продолжайте. Это все приходит с опытом и не гнушайтесь подсматривать как это все реализуют гуру, заимствовать идеи и т.д.
Вопрос: Как учить java для устройства на работу?

Лучший ответ:
Минималы джуниора сейчас высокие...
1. Java Core - (от базисов ООП до коллекций, в частности карт, файлового ввода-вывода, создания потоков и обработки эксепшнов) книги "Философия Java" Эккеля, "Изучаем Java" от Кэти Сьерра, видеокурс "Java Essential Training" + "Java Advanced Training" (Дэвид Гэсснер, ресурс lynda.com, подача на Eclipse), "Up and Running with Java" (Пэгги Фишер, ресурс lynda.com, подача на Netbeans), "Introduction to Java Programming" (ресурс Udemy.com, очень подробно и с примерами в BlueJ - обучающей программе-компиляторе на java и для java).
2. Hibernate - работа с ним, CRUD-операции в маппинге, аннотациях, jpa, с компиляцией через Ant и Maven; книга "Beginning Hibernate" от Apress, видеокурс "Hibernate tutorials", лежит почему-то и в торрентах от udemy, и в YouTube от Java Brains (ник).
3. Spring MVC - возможность создать базовый веб-проэкт, имеющий вышеуказанные технологии, плюс немного стиля от Bootstrap, на крайняк; книги "Pro Spring" от Apress, русская "Spring в действии" Уоллс К., видеокурс "Introduction to Spring MVC" (ресурс Pluralsight.com)
4. Git (возможность сливать свои проэкты в известную систему контроля версий) - видеокурс "Github Essential Training" (ресурс lynda.com).
И практика-практика-практика...ПОЛОЖИТЕЛЬНЫЕ результаты которой стоит залить на GitHub и вставить ссылки в раздел прочее в резюме JJava Developer

Худший ответ:
достаточнол примерно 5 последних книжек по джаве осилить
Вопрос: Linux from Scratch 6.7?

Лучший ответ:
Я бы почитал, но на русском языке

Худший ответ:
Если есть пожелания насчет конкретніх частей (книга целиком не влезет, чем-то придется пренебречь или сократить), то хотел бі их услішать.
Вопрос: Прием почты бэкендом приложения (PHP)

Лучший ответ:
Решение 1 в случае с Postfix просто и элементарно. Почему вы так боитесь за надёжность доставки в этом случае? Очередь сделает для вас Postfix, а скрипту он будет скармливать письма по одному на stdin: отдал одно письмо, скрипт завершился — запускает следующий процесс и следующее отдаёт ему. У одного из наших клиентов такая схема работает уже несколько лет, только на приёмке скрипт не на PHP а на Python (когда-то был на TCL, но поддерживать это при условии глючности TCLной библиотеки MIME было неудобно). Все письма перенаправляются туда с помощью always_bcc, т.е. скрипт фактически обрабатывает вообще всю почту, порядка сотни адресов.

Решение 2 — вы добавляете между почтовым сервером и скриптом лишний слой, задачу которого вообще-то решает менеджер очередей самого почтового сервера.

Решение 3 — работает много где, но с большим числом ящиков неудобно. Завернуть всех в один и прверять его — возможно, но опять же между скриптом и почтовым сервером появляется дополнительный слой. С другой стороны, оно универсально, вы сможете любой сервер подружить с любым скриптом. Этот подход, например, используется внутри OTRS.

Худший ответ:
Самое сложное — парсинг. Я с этим надолбался уже основательно и вот альтернатива: habrahabr.ru/qa/43786/