我有一些HTML链接,比如
<a href="urlThatIneedToCutBecauseItIsTooLongAndWithoutEmptySpaceItDoestGetANewLineWhenItIsPrintedByTheBrowser">urlThatIneedToCutBecauseItIsTooLongAndWithoutEmptySpaceItDoestGetANewLineWhenItIsPrintedByTheBrowser</a>
我需要剪切文本(不是链接),如果它比某些字符长(比方说30)。所以链接必须成为像:
<a href="urlThatIneedToCutBecauseItIsTooLongAndWithoutEmptySpaceItDoestGetANewLineWhenItIsPrintedByTheBrowser">urlThatIne... ...TheBrowser</a>
我该怎么办?正则表达式?我正在使用PHP和jQuery(但我想在服务器端做它)。
答案 0 :(得分:7)
可能有正则表达式方法,但我选择了一个简单的substr()
。
if (strlen($title)>30) {
$title=substr($title, 0, 10) . "..." . substr($title, -10);
}
答案 1 :(得分:2)
只需使用css。
<a href="urlThatIneedToCutBecauseItIsTooLongAndWithoutEmptySpaceItDoestGetANewLineWhenItIsPrintedByTheBrowser">urlThatIne... ...TheBrowser</a>
a {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 300px;
-o-text-overflow: ellipsis;
-ms-text-overflow: ellipsis;
}
答案 2 :(得分:1)
据我了解,您不是在创建此页面而是解析它。首先,我建议使用dom解析器(我使用:http://simplehtmldom.sourceforge.net/),获取锚元素的内部文本。比使用substr(http://tr.php.net/manual/en/function.substr.php)方法来削减它。
答案 3 :(得分:1)
如果您希望链接文本指示它已被截断...
function printLink( $url ){
$text = strlen( $url ) > 30
? substr( $url, 30 ) . '…'
: $url;
echo '<a href="' . $url . '">' . $text . '</a>';
}
printLink( 'urlThatIneedToCutBecauseItIsTooLongAndWithoutEmptySpaceItDoestGetANewLineWhenItIsPrintedByTheBrowser' );
// <a href="urlThatIneedToCutBecauseItIsTooLongAndWithoutEmptySpaceItDoestGetANewLineWhenItIsPrintedByTheBrowser">urlThatIneedToCutBecauseItIsT…</a>