0

次のような検索結果があります

1.私のタイトル
私の簡単な説明......
http ://www.stackoverflow.com/tags/thisthat/againthisthat/againandagainthisthat/mypage.html
http://www.stackoverflow.com/tags/mypage.html? a = 123123123&b = 2342343

この形式のURLが欲しい

1.私のタイトル
私の簡単な説明......
http ://www.stackoverflow.com/tags/......./againandagainthisthat/mypage.html
http://www.stackoverflow.com/tags/ mypage.html?a .... 3123&b = 2342343

リンクの途中で一部のテキストがスキップされます

私はそれをグーグルしようとしましたが、検索する正確なキーワードがわかりません。

私のリンクが何であれ、そのリンクの長さが70文字を超える場合、100文字であるとすると、リンクは70文字に最小化され、中央に.....があります。

4

2 に答える 2

1

これは機能します(元の例の場合):

$url = 'http://www.stackoverflow.com/tags/thisthat/againthisthat/againandagainthisthat/mypage.html';
$urlBitsArray = explode('/', $url);
$urlBitsCount = count($urlBitsArray);
$newUrl = implode('/', array($urlBitsArray['0'], $urlBitsArray['1'], $urlBitsArray['2'], $urlBitsArray['3'], '.....', $urlBitsArray[$urlBitsCount - 2], $urlBitsArray[$urlBitsCount - 1]));
echo $newUrl;

70を超える場合は、最初の32文字、最後の32文字、および中央の「......」を使用する場合は基本です。

$url = 'http://www.stackoverflow.com/tags/thisthat/againthisthat/againandagainthisthat/mypage.html ';

if (strlen($url) > 70) {
    $url = substr($url, 0, 31).'......'.substr($url, strlen($url) - 33);
}

echo $url;
于 2012-04-04T09:16:41.880 に答える
0
<?php
$string = "http://www.stackoverflow.com/tags/thisthat/againthisthat/againandagainthisthat/mypage.html";
$maxStringLength = 50;

if(strlen($string) > $maxStringLength)
{
    //remove http://
    if(strpos($string, "http://") === 0)
    {
        $string = substr($string, 7);
    }
    $bits = explode("/", $string);
    if(count($bits) > 2) //greater than www.stackoverflow.com/mypage.html
    {
        $string = implode("/", array($bits[0], $bits[1], '...', $bits[count($bits)-2], $bits[count($bits)-1]));
    }
}

echo $string;
于 2012-04-04T09:21:01.837 に答える