以上就是给各位分享php-获取字符串的前200个字符,但不要在末尾破坏HTML标记,其中也会对php取字符串前几位进行解释,同时本文还将给你拓展c#–获取HTML内容的前100个字符而不剥离标签、li
以上就是给各位分享php-获取字符串的前200个字符,但不要在末尾破坏HTML标记,其中也会对php 取字符串 前几位进行解释,同时本文还将给你拓展c# – 获取HTML内容的前100个字符而不剥离标签、linux shell 获取字符串最后一个字符 去掉字符串最后一个字符 去掉末尾一个字符 去掉末尾两个字符、php – 在分隔符后到字符串末尾获取字符串、php – 在标记中包装字符串的每个字母,避免使用HTML标记等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:- php-获取字符串的前200个字符,但不要在末尾破坏HTML标记(php 取字符串 前几位)
- c# – 获取HTML内容的前100个字符而不剥离标签
- linux shell 获取字符串最后一个字符 去掉字符串最后一个字符 去掉末尾一个字符 去掉末尾两个字符
- php – 在分隔符后到字符串末尾获取字符串
- php – 在标记中包装字符串的每个字母,避免使用HTML标记
php-获取字符串的前200个字符,但不要在末尾破坏HTML标记(php 取字符串 前几位)
编辑:关键点是关于获取前200个字符并关闭所有未打开的标签.
我目前正在通过DOM对象从其他网站加载文章(其他网站没有RSS).我想对该文章做一个“预览”,但这是我的问题:
>我不控制文章的编写方式,因此,它似乎总是位于第二个TR的表中(它们使用CMS,而且很乱-请参见下面的示例).
>他们有很多HTML标记,我不想公开.
>我需要保留HTML格式,我知道它很丑陋,但是非常适合我的页面.
不是我的代码(以法语表示抱歉):
<table>
<TR >
<TDvalign="top" colspan="2"https://www.jb51.cc/tag/ott/" target="_blank">ottom:15px;">13-01-2012 <b>Water-polo – Championnat pan-pacifique<b ></TD>
</TR><TR >
<TDvalign="top"><span> Les Canadiennes disputeront le bronze aux Chinoises</span> <img src='http://www.sportcom.qc.ca/Portals/0/2011WaterpoloF.jpg' width='165' align='right'><div><span>Montréal, 13 janvier 2012 (Sportcom) – L’équipe féminine canadienne de water-polo a remporté une victoire écrasante de 19-3 face au Brésil, vendredi, au Championnat pan-pacifique de Melbourne, en Australie. Les Canadiennes se sont ainsi assurées de participer au match pour la médaille de bronze contre les Chinoises. </span></div>
<div> </div>
<div><span>La Montréalaise <strong>Sophie</strong></span><strong><span> Baron-La Salle</span></strong><span> a marqué quatre buts dans la victoire. </span></div>
<div> </div>
谢谢.
解决方法:
<?PHP
$your_string_without_tags = strip_tags($your_string);
$your_200_char_string = substr($your_string_without_tags, 0, 200);
?>
Close open HTML tags in a string
c# – 获取HTML内容的前100个字符而不剥离标签
关于如何去除html标签有很多问题,但关于它们的函数/方法并不多.
这是情况.我有一个500字符的消息摘要(包括html标签),但我只想要前100个字符.问题是,如果我截断消息,它可能在html标签的中间…这会弄乱一些东西.
假设html是这样的:
odo consequat. information about Lorem Ipsum doemdloe,visit:
.somesite.com" title="Some Conference">Some text link
我怎么能拿到前100个字左右? (虽然理想情况下,这将是“内容”的第一个大约100个字符(在html标签之间)
我假设最好的方法是做一个递归算法,跟踪html标签并追加任何会被截断的标签,但这可能不是最好的方法.
我的第一个想法是使用递归来计算嵌套标签,当我们达到100个字符时,寻找下一个“<”然后使用递归来编写那里所需的结束html标记.
这样做的原因是对现有文章做一个简短的总结,而不要求用户返回并提供所有文章的摘要.如果可能的话,我想保留html格式.
注意:请忽略html不是完全语义的.这是我必须从我的WYSIWYG处理的.
编辑:
我添加了一个潜在的解决方案(这似乎有效)我认为其他人也会遇到这个问题.我不确定它是最好的…而且它可能不完全健壮(事实上,我知道它不是),但我很感激任何反馈
最佳答案
我的建议是找到一个HTML友好的遍历器(允许你像XML一样遍历HTML),然后从头开始标签忽略标签本身,只计算标签中的数据.计算到你的极限,然后一旦达到关闭每个标签(我不能想到任何标签不仅仅是/标签的任何标签).
这应该可以很好地工作,并且与您正在寻找的相当接近.
它完全脱离了ol’noggin的顶部所以我假设会有一些棘手的部分,比如显示的属性值(例如链接标记值).
linux shell 获取字符串最后一个字符 去掉字符串最后一个字符 去掉末尾一个字符 去掉末尾两个字符
1.获取字符串最后一个字符
实例如下:
STR=123456abc
FINAL=`echo ${STR: -1}`
echo $FINAL
# 输出结果 c
或者
STR=123456abc
FINAL=${STR: -1}
echo $FINAL
# 输出结果 c
都可以让FINAL获得c这个最后一个字符
2.去掉字符串最后一个字符
实例如下:
var="12345467,"
echo ${var%?}
# 输出结果 12345467
3.去掉字符串最后两个字符
实例如下:
var="12345467,"
echo ${var%??}
# 输出结果 1234546
php – 在分隔符后到字符串末尾获取字符串
我正在尝试使用PHP和preg_match在分隔符之后获取一个字符串到行尾.这些是我的代码:
<?PHP
$stringa = <<<EOT
var1=Ciao
var2=Variabile
var3=We
EOT;
preg_match("#var2=(.*?)\n#", $stringa, $boh);
print_r($boh);
?>
这可行,但不适用于最后一行,如果我在正则表达式中将var2替换为var3,则生成的数组将为空.
解决方法:
使用交替:
#var2=(.*?)(\n|$)#
^ ^^^
php – 在标记中包装字符串的每个字母,避免使用HTML标记
我想构建一个函数,它接受一个字符串并将其每个字母包装在< span>中,除了空格和HTML标记(在我的情况下,< br>标记).
所以:
"Hi <br> there."
……应该成为
"<span>H</span><span>i</span> <br> <span>t</span><span>h</span><span>e</span><span>r</span><span>e</span><span>.</span>"
我没有运气想出自己的解决方案,所以我环顾四周,发现我很难找到我想要的东西.
我找到的最接近的是Neverever的回答here.
然而,它似乎没有那么好,因为< br>的每个角色都是如此.标签被包裹在< span>中它与éèàï等强调的角色不匹配.
我该怎么办呢?
为什么用正则表达式解析HTML标签似乎错了?
解决方法:
您可以考虑使用DOMDocument解析HTML并仅包含DOMText节点值内的字符.请参阅代码中的注释.
// Define source
$source = 'Hï <br/> thérè.';
// Create DOM document and load HTML string, hinting that it is UTF-8 encoded.
// We need a root element for this so we wrap the source in a temporary <div>.
$hint = '<Meta http-equiv="content-type" content="text/html; charset=utf-8">';
$dom = new DOMDocument();
$dom->loadHTML($hint . "<div>" . $source . "</div>");
// Get contents of temporary root node
$root = $dom->getElementsByTagName('div')->item(0);
// Loop through children
$next = $root->firstChild;
while ($node = $next) {
$next = $node->nextSibling; // Save for next while iteration
// We are only interested in text nodes (not <br/> etc)
if ($node->nodeType == XML_TEXT_NODE) {
// Wrap each character of the text node (e.g. "Hi ") in a <span> of
// its own, e.g. "<span>H</span><span>i</span><span> </span>"
foreach (preg_split('/(?<!^)(?!$)/u', $node->nodeValue) as $char) {
$span = $dom->createElement('span', $char);
$root->insertBefore($span, $node);
}
// Drop text node (e.g. "Hi ") leaving only <span> wrapped chars
$root->removeChild($node);
}
}
// Back to string via SimpleXMLElement (so that the output is more similar to
// the source than would be the case with $root->C14N() etc), removing temporary
// root <div> element and space-only spans as well.
$withSpans = simplexml_import_dom($root)->asXML();
$withSpans = preg_replace('#^<div>|</div>$#', '', $withSpans);
$withSpans = preg_replace('#<span> </span>#', ' ', $withSpans);
echo $withSpans, PHP_EOL;
输出:
<span>H</span><span>ï</span> <br/> <span>t</span><span>h</span><span>é</span><span>r</span><span>è</span><span>.</span>
关于php-获取字符串的前200个字符,但不要在末尾破坏HTML标记和php 取字符串 前几位的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于c# – 获取HTML内容的前100个字符而不剥离标签、linux shell 获取字符串最后一个字符 去掉字符串最后一个字符 去掉末尾一个字符 去掉末尾两个字符、php – 在分隔符后到字符串末尾获取字符串、php – 在标记中包装字符串的每个字母,避免使用HTML标记等相关知识的信息别忘了在本站进行查找喔。
本文标签: