Как и elibyy предложил , я бы тоже порекомендовал использовать тег base
. Вот способ сделать это с родным PHP DOMDocument
:
// example url
$url = 'http://example.com';
$doc = new DOMDocument();
$doc->loadHTMLFile( $url );
// first let's find out if there a base tag already
$baseElements = $doc->getElementsByTagName( 'base' );
// if so, skip this block
if( $baseElements->length < 1 )
{
// no base tag found? let's create one
$baseElement = $doc->createElement( 'base' );
$baseElement->setAttribute( 'href', $url );
$headElement = $doc->getElementsByTagName( 'head' )->item( 0 );
$headElement->appendChild( $baseElement );
}
echo $doc->saveHTML();
Сказав это, однако; Вы уверены, что знаете, насколько амбициозна ваша цель?
Например, я не думаю, что это именно то, что вам действительно нужно, поскольку ваше приложение в основном действует как прокси. Поэтому вы, вероятно, захотите направить, по крайней мере, все кликабельные пользователем ссылки через ваше приложение, а не направлять их напрямую на исходные ссылки вообще, потому что я предполагаю, что вы хотите сохранить пользователя в приложении с вкладками, а не вырваться из него. об этом.
Что-то вроде:
http://yourapplication.com/resource.php?resource=http://example.com/some/path/
Теперь, конечно, этого можно достичь, выполнив в основном то, что вы просили, и вместо того, чтобы добавить к нему либо http://
, либо https://
, добавив что-то такое, что приведет к приведенному выше примеру url.
Однако, как вы собираетесь различать, с какими ресурсами это делать, а с какими нет? Если вы воспользуетесь этим подходом для всех ресурсов на странице, ваше приложение быстро превратится в полноценный прокси-сервер, что станет очень ресурсоемким.
Надеюсь, я дал вам краткий старт для некоторых вещей, чтобы принять во внимание.