2012-04-26 28 views
1

我用下面的代码的PHP 称为文本在模板文件块:删除链接的标签和内部HTML代码生成的内容

echo $playlist->description 

字段包含HTML链接,我想当该字段的结果显示为使用twitter api创建的tweetbox内的内容时移除。显示文本的

例子:

<a href="http://google.com">http://google.com</a> some text here. 

我期待实现以下目的:

some text here 

我看着与正则表达式,preg_replace完成这一点,其他几个。但是,我还没有弄清楚如何融入我现有的字符串。

我试过没有成功以下,

echo $playlist->description->$str = preg_replace('#(<a.*?>).*?(</a>)#', '$1$2', $str) 

我是一个自称PHP小白,我已经花了几个星期的努力完成我的目标,因此任何帮助是很大的赞赏。我觉得我真的很接近!帮帮我!!! :)

最好的问候, 迈克

+0

显示你的模板代码也请。 – Blake 2012-04-26 17:15:02

+0

我可以假设应该有一个终止'。'在你的示例输出文本中,就像在输入中那样? – Madbreaks 2012-04-26 17:20:06

+0

@Madbreaks您是正确的先生,请在您提供的解决方案上查看我的其他问题。再次感谢您的帮助,您的解决方案运行良好! – 2012-04-26 19:34:36

回答

0
echo preg_replace('#.*?</a>\s*(.*)#', "$1", $playlist->description); 

干杯

+0

你是一个绅士和学者!非常感谢你,我还有一个问题。你知道一个额外的修改,只允许显示twitter用户名,并删除“n/a”和“blah blah blah”等文本,并将“@username”留下来显示吗? – 2012-04-26 18:16:28

+0

另外,如果可能,我想删除“(”和“)”。再次感谢你的帮助! – 2012-04-26 18:18:21

1

,你也可以做到这一点,而无需使用正则表达式!

$a = end(explode('</a>' , $playlist->description)); 

这会给你自带之后</a>

+0

嗯,为什么比RegEx更好? – Madbreaks 2012-04-26 19:11:54

+0

它更快,更简单,更易于理解 – max 2012-04-26 23:07:24

+0

速度更快吗?您正在解析字符串,创建一个数组然后对其进行操作。两个函数调用。比。一个RegEx操作?我叫BS!更容易理解?在不知道问题的情况下,我很难看清那行代码并理解它在做什么。你正在处理一个字符串,使用字符串工具。 ;) – Madbreaks 2012-04-27 17:47:48

0

我做了一个函数,它们的内容一起删除HTML标签的所有内容:

功能:

<?php 
function strip_tags_content($text, $tags = '', $invert = FALSE) { 

    preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si', trim($tags), $tags); 
    $tags = array_unique($tags[1]); 

    if(is_array($tags) AND count($tags) > 0) { 
    if($invert == FALSE) { 
     return preg_replace('@<(?!(?:'. implode('|', $tags) .')\b)(\w+)\b.*?>.*?</\1>@si', '', $text); 
    } 
    else { 
     return preg_replace('@<('. implode('|', $tags) .')\b.*?>.*?</\1>@si', '', $text); 
    } 
    } 
    elseif($invert == FALSE) { 
    return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text); 
    } 
    return $text; 
} 
?> 

示例文本: $ text ='sample text with tags';

结果为用strip_tags($文本):与标签 示例文本

结果为strip_tags_content($文本): 文字与

结果为strip_tags_content($文本, ''): 样本 text with

strip_tags_content($ text,'',TRUE);的结果 文本与标签

我希望有人是有用的:)

相关问题