题
我一个数据库驱动的网站上运行。大多数网页的标题是我们的合作伙伴的名称,并使用PHP从数据库服务。
例如一个页面可能被称为“百利”。问题是,对于一些合作伙伴的名称值的不工作,因为数值之类的东西。
$partnername22 = Discover<sup>tm</sup> Magazine
由于标不能在标题出现,我不能用这个标题,因为很多其他的东西依赖于它,我不能改变的值。有没有窍门,我可以拉,使浏览器忽略标标签,如果他们是在标题?
解决方案
有关:
<title><?php echo $offer22name ?>is a magazine</title>
变化为:
<title><?php echo preg_replace('|<sup>(.*?)</sup>|', '($1)', $offer22name) ?> is a magazine</title>
但像布莱恩提到的,你应该在这种情况下使用PHP的用strip_tags()。所以:
<title><?php echo strip_tags($offer22name) ?> is a magazine</title>
其他提示
这将是非常简单的(也许最好)使用PHP的用strip_tags()命令发布它作为一个题目之前删除一切从您的字符串的HTML。
<title><?PHP echo str_replace('<sup>tm</sup>', '™', $offer22name); ?> is a magazine</title>
或者,更安全的:
<title><?PHP echo strip_tags(str_replace('<sup>tm</sup>', '™', $offer22name)); ?> is a magazine</title>
或者,捕更多的情况下(在这一个不知道确切):
<title><?PHP echo strip_tags(preg_replace('/<sup.*?>\s+[Tt][Mm]\s*</(sup|)>', '™', $offer22name)); ?> is a magazine</title>
您可以替换的'™'
'™'
,'™'
,或“™”如果你希望(但要确保编码的最后一场比赛),视情况而定。
据我所知没有,但如果你已经从数据库脚本一个字符串,你为什么不能脚本了相同的字符串的正则表达式与空字符串替换标签(或标签对,因为你愿意的话)?
在一个字,无
在理想情况下,你会做$partnername22 = strip_tags('Discover<sup>tm</sup> Magazine');
(或东西票友),但是如果你不能给那么恐怕你不得不拥有一个Javascript的解决方案。
是这样的:
window.title = window.title.replace(/<sup.*?</sup>/, '');
在PHP正则表达式,将取代文本使用(文本):
$title = preg_replace('|<sup>(.*?)</sup>|', '\($1\)', $title);
这将是类似这样做在javascript。
迈克,我想你的意思是这样的:
$title = preg_replace('|<sup>(.*?)</sup>|', '$1', $title);
在打印之前有它周围的标签的字有些斜线和括号的方式。正确?
PG,你也可以只是做
$title = preg_replace('|<sup>(.*?)</sup>|', '', $title);
如果你想彻底删除从标题上标信息。
怎么样CSS简单的权宜之计?
h2.title sub, h2.title sup { vertical-align: baseline; font-size:100%; }
可以使用,而不是标签的字符编码,例如™
,™