从开始到结束直到字面为W / PHP

时间:2011-08-26 17:12:33

标签: php

在下面的示例中,我想删除所有内容,直到(但不包括)<!--more -->。不太熟悉PHP字符串函数。

  

Lorem ipsum dolor sit amet,consectetuer adipiscing elit,sed diam   nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat   volutpat。 Ut wisi enim ad minim veniam,quis nostrud exerci tation   ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat。   Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse   molestie consequat,vel illum dolore eu feugiat <!--more -->在vero   eros et accumsan et iusto odio dignissim qui blandit praesent luptatum   zzril delenit augue duis dolore te feugait nulla facilisi。 Nam liber   tempor cum soluta nobis eleifend option congue nihil imperdiet doming   id quod mazim placerat facer possim assum。 Typi non habent claritatem   insitam; est usus legentis in iis qui facit eorum claritatem。   调查显示了lectores legere me lius quod ii legunt   saepius。 Claritas est etiam processus dynamicus,qui sequitur   mutem consuetudium lectorum。 Mirum est notare quam littera   gothica,quam nunc putamus parum claram,anteposuerit litterarum   formas humanitatis per seacula quarta decima et quinta decima。 Eodem   modo typi,qui nunc nobis videntur parum clari,fiant sollemnes in   futurum。

6 个答案:

答案 0 :(得分:4)

这是一个仅字符串函数的方法(没有数组或正则表达式)

$newstring = substr($oldstring, strpos($oldstring, "<!--more -->"));

编辑在OP中没有注意到“不包含”,并删除了分隔符字符串<!--more -->。已修复以将其保留。

答案 1 :(得分:1)

您可以拆分字符串并使用第一部分:

$parts = explode('<!--more -->', $your_string);

print($parts[0]); // will print what you want

答案 2 :(得分:1)

$str = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat<!--more --> at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.';

$sub = substr($str, strpos($str, '<!--more -->'));
echo($sub);

http://ideone.com/P95NZ

答案 3 :(得分:0)

您可以使用<!--more -->作为分隔符将其拆分为数组。

$array = explode('<!--more -->', $str);
echo $array[0]; // Lorem ipsum dolor sit amet ... dolore eu feugiat
echo $array[1]; // at vero eros ... sollemnes in futurum.

答案 4 :(得分:0)

注意:此正则表达式未经测试。它可能需要对特殊字符进行一些调整

preg_replace('/[\w\s]*<!--more -->/i','<!--more -->',$string);

答案 5 :(得分:0)

$string = 'Lorem ipsum...';
$pos = strpos($string, '<!--more-->');
$newstring = substr($string, $pos); // Everything from <!--more-> onwards