file_get_contents
возвращает строку, содержащую содержимое файла.
Таким образом, вы можете работать с этой строкой, используя любую функцию манипуляции со строками, какую захотите, например, те, о которых вы говорили.
Что-то вроде этого с использованием str_replace, вероятно, подойдет:
$content = file_get_contents('http://www.google.com');
$new_content = str_replace('<a href="', '<a href="site.php?url=', $content);
echo $new_content;
Но учтите, что URL-адрес в атрибуте href
будет заменен только в том случае, если этот атрибут является первым тегом <a
...
Использование регулярного выражения может помочь вам немного больше; но, наверное, тоже не будет идеально, боюсь ...
Если вы работаете с документом HTML и хотите получить «полное» решение, использование DOMDocument::loadHTML
и работа с методами манипулирования DOM могут быть другим (немного более сложным, но, вероятно, более мощным) решением. .
Ответы на эти два вопроса также могут помочь вам, в зависимости от того, что вы готовы сделать:
РЕДАКТИРОВАТЬ после просмотра комментария:
Если вы хотите заменить две строки, вы можете передать массивы двум первым параметрам str_replace
. Например:
$new_content = str_replace(
array('<a href="', 'Pages'),
array('<a href="site.php?url=', 'TEST'),
$content);
С этим:
- '
<a href="
' будет заменено на '<a href="site.php?url=
'
- и '
Pages
' будут заменены на 'TEST
'
И, цитируя руководство:
Если поиск и замена являются массивами,
тогда str_replace () принимает значение из
каждый массив и использует их для поиска
и заменить на тему. Если заменить
имеет меньше значений, чем поиск, то
пустая строка используется для остальной части
восстановительные значения. Если поиск
массив и заменить это строка, то
эта строка замены используется для
каждое значение поиска.
Если вы хотите заменить все экземпляры '<a href="
', это то, что str_replace
делает по умолчанию: -)