Чтобы сократить произвольное количество URL в вашем тексте, поместите API-интерфейс в функцию, которая берет длинный URL и возвращает короткий URL. Затем примените эту функцию через функцию PHP preg_replace_callback
к вашему тексту. Это будет выглядеть примерно так:
<?php
function shorten_url($matches) {
// EDIT: the preg function will supply an array with all submatches
$long_url = $matches[0];
// API stuff here...
$url = "http://tinyurl.com/api-create.php?url=$long_url";
return file_get_contents($url);
}
$text = 'I have a link to http://www.example.com in this string';
$textWithShortURLs = preg_replace_callback('|http://([a-z0-9?./=%#]{1,500})|i', 'shorten_url', $text);
echo $textWithShortURLs;
?>
Не слишком рассчитывайте на этот шаблон, просто пишите его на лету без каких-либо испытаний, может быть, кто-то еще может помочь.
Смотри http://php.net/preg-replace-callback