Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何最小化搜索结果中的url链接_Php_Search - Fatal编程技术网

Php 如何最小化搜索结果中的url链接

Php 如何最小化搜索结果中的url链接,php,search,Php,Search,我有一个像这样的搜索结果 1。我的标题 我的简短描述。。。。。。 我想要这个格式的url 1。我的标题 我的简短描述。。。。。。 链接中间跳过了一些文本 我试着用谷歌搜索,但不知道要搜索的确切关键词 无论我的链接是什么,如果该链接的长度超过70个字符,让我们假设它有100个字符,那么链接将最小化为70个字符,使用。。。。。在中间……这是可行的(例如原始示例): 基本如果超过70个字符,则取前32个字符,最后32个字符,中间的“…”: $url = 'http://www.stackov

我有一个像这样的搜索结果

1。我的标题
我的简短描述。。。。。。

我想要这个格式的url

1。我的标题
我的简短描述。。。。。。

链接中间跳过了一些文本

我试着用谷歌搜索,但不知道要搜索的确切关键词

无论我的链接是什么,如果该链接的长度超过70个字符,让我们假设它有100个字符,那么链接将最小化为70个字符,使用。。。。。在中间……

这是可行的(例如原始示例):

基本如果超过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;

中间不在末尾可能重复的I neet不适用于此链接我认为您需要更具体地说明您的目标。清楚地定义触发缩短的条件,然后您希望如何缩短这些条件…无论我的链接是什么,如果该链接的长度超过70个字符,假设它有100个字符,那么链接将最小化为70个字符,使用。。。。。在中间…k,下一次编辑有一个例子可以做到这一点(不是你给出的一些示例URL实际上少于70个字符),谢谢,但不适用于此链接
$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;
<?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;