html dom中的php substr

发布于 2024-12-17 14:47:18 字数 507 浏览 2 评论 0原文

如何在 HTML dom 中使用 substr()?我想保留所有 html 标签并缩短文本。

$str = '<div><a href="http://www.weather.com">Today is a nice day</a></div>';
$part1 = preg_replace("/<a(.*?)>(.*?)<\/a>/i",substr('\\2', 0,10),$str).'...';
$part2 = preg_replace("/<a(.*?)>(.*?)<\/a>/i",'\\2',$str);
echo str_replace($part2,$part1,$str);// nothing change
// I need <div><a href="http://www.weather.com">Today is a...</a></div>

How can I use substr() in a HTML dom? I want keep all the html tags and just shorten the text.

$str = '<div><a href="http://www.weather.com">Today is a nice day</a></div>';
$part1 = preg_replace("/<a(.*?)>(.*?)<\/a>/i",substr('\\2', 0,10),$str).'...';
$part2 = preg_replace("/<a(.*?)>(.*?)<\/a>/i",'\\2',$str);
echo str_replace($part2,$part1,$str);// nothing change
// I need <div><a href="http://www.weather.com">Today is a...</a></div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巾帼英雄 2024-12-24 14:47:18

它可能会更强大一点,但这应该可以解决问题:

$str = '<div><a href="http://www.weather.com">Today is a nice day</a></div>';
echo shortenLinks($str);

function shorten($matches) {
   $maxlen = 10;
   $str = $matches[2];
   if (strlen($str) > $maxlen) {
      return "<" . $matches[1] . ">" . substr($str, 0, $maxlen) . "...<";
   } else {
      return $matches[0];
   }
}

function shortenLinks($str) {
   $pattern = "/<(a\s+.*)>([^<]+)</";
   return preg_replace_callback($pattern, "shorten", $str);
}

It could probably be a bit more robust, but this should do the trick:

$str = '<div><a href="http://www.weather.com">Today is a nice day</a></div>';
echo shortenLinks($str);

function shorten($matches) {
   $maxlen = 10;
   $str = $matches[2];
   if (strlen($str) > $maxlen) {
      return "<" . $matches[1] . ">" . substr($str, 0, $maxlen) . "...<";
   } else {
      return $matches[0];
   }
}

function shortenLinks($str) {
   $pattern = "/<(a\s+.*)>([^<]+)</";
   return preg_replace_callback($pattern, "shorten", $str);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文