19 2011

PHP移除指定HTML标签的方法

Category: Snippetslixiphp @ 2011-04-19 21:03:58

PHP默认的函数有移除指定html标签,名称为strip_tags,在某些场合非常有用。

strip_tags

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

strip_tags — Strip HTML and PHP tags from a string

string strip_tags ( string str [, string allowable_tags] )

弊端 :

  • 这个函数只能保留想要的html标签,就是参数string allowable_tags。

在yizero的评论中我知道了这个函数的参数allowable_tags的其他的用法。

strip_tags($source, ”); 去掉所以的html标签。

strip_tags($source, ‘<div><img><em>’); 保留字符串中的div、img、em标签。

如果想去掉的html的指定标签。那么这个函数就不能满足需求了。于是乎我用到了这个函数。

移除多个指定的html标签

/**
 * Removes specific  tags.
 */
function strip_only_tags($str, $tags, $stripContent = FALSE) {
  $content = '';

  if (!is_array($tags)) {
    $tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags));
    if (end($tags) == '') {
      array_pop($tags);
    }
  }

  foreach($tags as $tag) {
    if ($stripContent) {
      $content = '(.+<!--'.$tag.'(-->|\s[^>]*>)|)';
    }

    $str = preg_replace('#<!--?'.$tag.'(-->|\s[^>]*>)'.$content.'#is', '', $str);
  }

  return $str;
}

参数说明

$str  — 是指需要过滤的一段字符串,比如div、p、em、img等html标签。
$tags — 是指想要移除指定的html标签,比如a、img、p等。
$stripContent = FALSE  — 移除标签内的内容,比如将整个链接删除等,默认为False,即不删除标签内的内容。

使用说明

$target = strip_only_tags($source, array(‘a’,'em’,'b’));

移除$source字符串内的a、em、b标签。
阅读更多>>

标签: , , , , ,


17 2011

WordPress模板中常用的文章循环代码

Category: Snippetslixiphp @ 2011-04-17 20:02:37

WordPress模板用的使用最常见的代码。

<?php //The Query
query_posts(‘cat=8&order=ASC’) ;?>
<?php //The Loop
if ( have_posts() ) : while ( have_posts() ) : the_post();?>
<!– Place Content Here –>
<?php endwhile; else: ?>
<!– Place Content Here –>
<?php endif;?>
<?php //Reset Query
wp_reset_query();?>

注意:每次循环结束后,请使用wp_reset_query();函数重置查询条件。

PS:WordPress辅助的插件是query-posts.0.3.2

WordPress query-posts.0.3.2 image

Query Posts 挂件自定义设置.

标签: , , , , ,