大家好,我只需要截断只有从像Twitter如何做内容更长的URL。如果我发帖,截断只有像推特的url
此内容叽叽喳喳它会像这样,
“喜... fatthelongestdomainnameatlonglast.com/wearejustdoing ...这个”所以
对我有什么问题在我的内容链接的锚标记会。当我试图使用正则表达式来检查链接并且还替换'href'值。提前致谢。
大家好,我只需要截断只有从像Twitter如何做内容更长的URL。如果我发帖,截断只有像推特的url
此内容叽叽喳喳它会像这样,
“喜... fatthelongestdomainnameatlonglast.com/wearejustdoing ...这个”所以
对我有什么问题在我的内容链接的锚标记会。当我试图使用正则表达式来检查链接并且还替换'href'值。提前致谢。
我解决我这里是代码,
$stringtest = 'sdsds <a href="http://www.thelongestlistofthelongeststuffatthelongestdomainnameatlonglast.com/wearejustdoingthistobestupidnowsincethiscangoonforeverandeverandeverbutitstilllookskindaneatinthebrowsereventhoughitsabigwasteoftimeandenergyandhasnorealpointbutwehadtodoitanyways.html">http://www.thelongestlistofthelongeststuffatthelongestdomainnameatlonglast.com/wearejustdoingthistobestupidnowsincethiscangoonforeverandeverandeverbutitstilllookskindaneatinthebrowsereventhoughitsabigwasteoftimeandenergyandhasnorealpointbutwehadtodoitanyways.html</a>
<a href="http://www.yahoo.com">Yahoo</a> ddfdf';
$regexp= "/\<a.*href=\"(.*?)\".*?\>(.*)\<\/a\>+/";
$text = preg_replace_callback($regexp,
function($matches) {
if(strlen($matches[2])>57){
$returnV="<a target='_blank' href='".$matches[1]."'>".substr($matches[2],0,57).'...'."</a>";
} else {
$returnV="<a target='_blank' href='".$matches[1]."'>".substr($matches[2],0,57)."</a>";
}
return $returnV;
},
$stringtest
);
print $text;
我希望这会帮助你。 demo这里
HTML
<a href="http://www.thelongestlistofthelongeststuffatthelongestdomainnameatlonglast.com/wearejustdoingthistobestupidnowsincethiscangoonforeverandeverandeverbutitstilllookskindaneatinthebrowsereventhoughitsabigwasteoftimeandenergyandhasnorealpointbutwehadtodoitanyways.html">http://www.thelongestlistofthelongeststuffatthelongestdomainnameatlonglast.com/wearejustdoingthistobestupidnowsincethiscangoonforeverandeverandeverbutitstilllookskindaneatinthebrowsereventhoughitsabigwasteoftimeandenergyandhasnorealpointbutwehadtodoitanyways.html</a>
<br>
<a href="http://www.Hello.com/page/error/view/user/1253" >http://www.Hello.com/page/error/view/user/1253</a>
jQuery的
$(document).ready(function(){
$("a").each(function(){
//var href=$(this).attr("href");
var text=$(this).text();
var parts=text.split("/");
$(this).text(parts[2] +"/"+ parts[3].substr(0,20));
});
});
对于PHP
<?php
$string="<a href='http://www.thelongestliast.com/wearejustdoingthistobdoitanyways.html'>
http://www.thelongestlistofthelongeststuffatthelongestdomainnameatlonglast.com/wearejustdoingthistobestupidnowsincethiscangoonforeverandeverandeverbutitstilllookskindaneatinthebrowsereventhoughitsabigwasteoftimeandenergyandhasnorealpointbutwehadtodoitanyways.html</a>
<br>
<a href='http://www.Hello.com/page/error/view/user/1253' >http://www.Hello.com/page/error/view/user/1253</a>";
$dom = new DOMDocument;
$dom->loadHTML($string);
foreach ($dom->getElementsByTagName('a') as $node) {
$original_url = $node->getAttribute('href');
$text = explode("/", $original_url);
echo $var= "<a href='".$original_url."'>".$text[2]."/".$text[3]."</a><br>";
}
?>
谢谢。无论如何,我自己没有使用domdocument得到了一些解决方案。 – Pramod
如果您使用的是正则表达式,那么您正在破坏自己。你不应该知道它包含什么,只是它包含超过一定长度的链接。如果是这种情况,并且内容是链接本身,请缩短标签的内容。 – Neil
@Neil内容也可能有一些文字,也有不止一个链接。 – Pramod