php nasıl gebelik bir tinyurl bir url açmak için yerine kullanırım

2 Cevap php

Ben aynı dizeye ancak (tinyurl API kullanarak) bir tinyurl ile uzun bir url içeren bir metin dizesini dönüştürmek gerekir. örn. dönüştürmek

blah blah blah http://example.com/news/sport blah blah blah

içine

blah blah blah http://tinyurl.com/yaeocnv blah blah blah

Bu nasıl yapılabilir?

2 Cevap

Metnin URL'ler bir keyfi sayısını kısaltmak amacıyla, uzun bir URL alır ve kısa bir URL döndüren bir işlevi API şeyler koymak. Sonra metin PHP'nin preg_replace_callback fonksiyonu aracılığıyla bu fonksiyonu uygulamak. Bu, bu gibi bir şey olur:

<?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;

?>

Don't count on that pattern too much, just wrote it on-the-fly without any testing, maybe someone else can help. See http://php.net/preg-replace-callback

Preg_replace ile bunu nasıl sizin sorunuzu yanıtlamak için e modifyer kullanabilirsiniz.

function tinyurlify($href) {
 return file_get_contents("http://tinyurl.com/api-create.php?url=$href");
}
$str = preg_replace('/(http:\/\/[^\s]+)/ie', "tinyurlify('$1')", $str);