SkyeEverest Ответов: 1

Как я могу заменить все ссылки своей специальной ссылкой?


Я пытаюсь использовать регулярное выражение для замены всех ссылок даже относительных ссылок на https://snowycinccino.com/iframe/?url=(старый URL Здесь и база url, если она включает в себя) Мне нужно, чтобы он работал с href и src.

Что я уже пробовал:

Это мой текущий код:

<?php
$newurl=parse_url($_GET["url"]);
$base=$newurl["scheme"]."://".$newurl["host"]."/";
$basenew=$newurl["scheme"]."://".$newurl["host"];
?>

<?php
$input = $page = file_get_contents($_GET["url"]);

$domain = $base;
$rep['/href="(?!https?:\/\/)(?!data:)(?!#)/'] = 'href="'.$domain;
$rep['/src="(?!https?:\/\/)(?!data:)(?!#)/'] = 'src="'.$domain;
$rep['/@import[\n+\s+]"\//'] = '@import "'.$domain;
$rep['/@import[\n+\s+]"\./'] = '@import "'.$domain;
$output = preg_replace(
    array_keys($rep),
    array_values($rep),
    $input
);

echo $output;
?>

1 Ответов

Рейтинг:
7

Bryian Tan

Следующий пример должен сделать трюк, он заменит содержимое в src и href новым url-адресом.

https://animalfarmxyz.com/iframe/?url=(обезьяна.aspx-файл)
https://animalfarmxyz.com/iframe/?url=(abc.jpg)
https://animalfarmxyz.com/iframe/?url=(http://www.monkey.com/a2.aspx)
https://animalfarmxyz.com/iframe/?url=(../xxx.jpg)

<?php

$text = '<a href="/KB/answers/monkey.aspx" </a> abcd
<img src="abc.jpg" other="fssdf" /> ya di ya 
di ya bold<a href="http://www.monkey.com/a.aspx" </a> abcd
<img src="../xxx.jpg" other="fssdf" /> ya di ya 
di ya bold';
$check_hash = preg_match_all("/(?:href|src)=[\"|']?(.*?)[\"|'|>]+/", $text, $hashtweet);
foreach ($hashtweet[1] as $ht){
    $newUrl = 'https://animalfarmxyz.com/iframe/?url=(' . $ht . ')';
  echo $newUrl . '<br/>';
    
  $text = str_replace($ht,$newUrl,$text);
}

echo $text;
?>


SkyeEverest

Хорошо, это работает, за исключением (../xxx.jpg) должен иметь http://monkey.com/xxx.jpg вместо (../xxx.jpg)

Bryian Tan

Возможно, вам придется написать оператор if, чтобы справиться с этим сценарием.

Bryian Tan

Возможно, вам придется написать оператор if для обработки этого сценария (замените ../ на http://monkey.com/)