Насколько я знаю, это не будет работать, если нету http://. А делать костыль - не считаю правильным. К тому-же не все работают на 5.3, а решение должно быть универсальным. https://bugs.php.net/bug.php?id=38143
Вам дали ссыль на документацию, так хоть попробуйте прочитать что там написано. Из той же документации: Там идет речь про присутствие http:// в самом url после имени хоста. Есть так же момент про использование // но это и не должно работать - оно предназначено для автоматического определения протокола для подгружаемых ресурсов на странице (графика, js и т.д.) на основе используемого протокола страницы инициатора.
Регулярные выражения вещь ресурсоемкая, с точки зрения оптимизации второй вариант будет более оптимизирован, с точки зрения красоты кода, минимализма и читабельности - первый, с точки зрения здравого смысла разницы нет ибо в URL не на столько много символов чтобы загрузить сервер и разница в 1-2kb лишней оперативы роли не сыграет. Далее выводы за вами =)
Мое мнение что по возможности надо использовать готовые решения, т.к не надо будет отлаживать их тратя на это время. Есс-но готовые решения от нормальных разработчиков должно быть иначе, все равно выпрямлять придется. А если времени много, или уровень позволяет написать что-то лучше готового решения то можно и писать .. Поэтому parse-url.