忽略标题标签中的上标

时间:2008-12-17 17:35:52

标签: php html css superscript

我在数据库驱动的网站上工作。大多数页面的标题都是我们合作伙伴的名称,并使用php从数据库中提供。

例如,一个页面可能被称为“Experian”。问题是伙伴名称的某些值不起作用,因为值类似于

  $partnername22 = Discover<sup>tm</sup> Magazine

我不能将它用于标题,因为上标不能出现在标题中,我无法更改该值,因为许多其他事情依赖于它。是否有一个技巧可以让浏览器忽略上标标签,如果它们在标题中?

9 个答案:

答案 0 :(得分:2)

在将其作为标题发布之前,使用PHP的strip_tags()命令从字符串中删除所有html将非常简单(并且可能是可取的)。

答案 1 :(得分:2)

有关:

<title><?php echo $offer22name ?>is a magazine</title>

更改为:

<title><?php echo preg_replace('|<sup>(.*?)</sup>|', '($1)', $offer22name) ?> is a magazine</title>

但是像Bryan提到的那样,在这种情况下你应该使用PHP的strip_tags()。所以:

<title><?php echo strip_tags($offer22name) ?> is a magazine</title>

答案 2 :(得分:2)

<title><?PHP echo str_replace('<sup>tm</sup>', '&trade;', $offer22name); ?> is a magazine</title>

或者,更安全:

<title><?PHP echo strip_tags(str_replace('<sup>tm</sup>', '&trade;', $offer22name)); ?> is a magazine</title>

或者,抓住更多案例(对此不确定):

<title><?PHP echo strip_tags(preg_replace('/<sup.*?>\s+[Tt][Mm]\s*</(sup|)>', '&trade;', $offer22name)); ?> is a magazine</title>

如果您愿意,可以将'&trade;'替换为'&#8482;''&#x2122;'或'™'(但请确保编码与最后一个匹配),具体取决于具体情况。< / p>

答案 3 :(得分:1)

不是AFAIK,但如果您已经从数据库中编写了一个字符串,为什么不能用空字符串编写相同的字符串正则表达式替换标签(或标签对)?

答案 4 :(得分:1)

总之,没有。

理想情况下,你会做$partnername22 = strip_tags('Discover<sup>tm</sup> Magazine');(或更高级的东西),但如果你不能这样做,那么我担心你会遇到Javascript解决方案。

类似的东西:

window.title = window.title.replace(/<sup.*?</sup>/, '');

答案 5 :(得分:1)

PHP中的正则表达式将替换&lt; sup&gt; text&lt; / sup&gt; (文字):

$title = preg_replace('|<sup>(.*?)</sup>|', '\($1\)', $title);

这类似于在javascript中执行此操作。

答案 6 :(得分:1)

迈克,我想你的意思是:

$title = preg_replace('|<sup>(.*?)</sup>|', '$1', $title);

之前的方式是在标记的单词周围打印一些斜线和括号。正确?

pg,你也可以这样做

$title = preg_replace('|<sup>(.*?)</sup>|', '', $title);

如果您想从标题中完全删除上标信息。

答案 7 :(得分:0)

一些CSS的简单权宜之处怎么样?

h2.title sub, h2.title sup { vertical-align: baseline; font-size:100%; }

答案 8 :(得分:-1)

您可以使用字符编码代替标记,例如&trade;&#153;