Regexps намного быстрее для использования, конечно, и они только проверяют то, что определяется в RFC. Записать пользовательский синтаксический анализатор? Что? Требуется 10 секунд для использования regexp.
Да, в зависимости от трафика вашего сайта создание отдельного процесса PHP для запуска скрипта может быть разрушительным. Было бы более эффективно использовать shell_exec () для запуска фонового процесса, который сохраняет вывод в имя файла, которое вам уже известно, но даже это может потребовать значительных ресурсов.
Вы также можете сохранить очередь запросов в базе данных. Одиночный, отдельный фоновый процесс извлечет задание, выполнит его и сохранит вывод, возможно, установив флаг в БД, который может проверить ваш веб-процесс.
Если вы собираетесь использовать подход очереди БД, используйте curl_multi * класс функций для одновременной отправки всех запросов в очереди. Это ограничит время выполнения каждой итерации в фоновом процессе самым длинным временем запроса.
V5 может не быть многопоточным, но вы можете создавать приложения, которые используют многозадачность в процессе.
Ознакомьтесь со следующей статьей: «Разработка многозадачных приложений с PHP V5» из IBM DeveloperWorks. Вы можете найти его здесь http://www.ibm.com/developerworks/web/library/os-php-multitask/