我在数据库驱动的网站上工作。大多数页面的标题都是我们合作伙伴的名称,并使用php从数据库中提供。
例如,一个页面可能被称为“Experian”。问题是伙伴名称的某些值不起作用,因为值类似于
$partnername22 = Discover<sup>tm</sup> Magazine
我不能将它用于标题,因为上标不能出现在标题中,我无法更改该值,因为许多其他事情依赖于它。是否有一个技巧可以让浏览器忽略上标标签,如果它们在标题中?
答案 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>', '™', $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>
如果您愿意,可以将'™'
替换为'™'
,'™'
或'™'(但请确保编码与最后一个匹配),具体取决于具体情况。< / 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)
您可以使用字符编码代替标记,例如™
,™