当前位置: 首页 > 知识库问答 >
问题:

使用preg_replace时锚定标签不起作用

越麒
2023-03-14

views.php

 <a href="<?= URL::site(); ?>feeds/view/<?php echo $feed->feed_id; ?>"> 
 <p class="feed-text" style="word-wrap:break-word;">
     <?php if($feed_text = preg_replace('!(http|ftp|scp)(s)?:\/\/[a-zA-Z0-9.=?&_/]+!', "<a style=text-decoration:underline;color:blue href=\"\\0\" target='_blank' >\\0</a>",$feed->feed_text)):
     echo nl2br($feed_text);
     else:
     echo nl2br($feed->feed_text); endif;?>
 </p>
 </a>

上面的视图代码用于显示文本和url。如果用户只发布文本,则else部分将起作用,如果用户发布文本时同时发布url,则第一个条件起作用。

如果用户发布文本,点击该文本将把用户带到另一个页面。这也适用于如果用户发布两个文本与你管网址也。点击这里的文字,应该会把他带到下一个屏幕。

问题是,如果用户将文本与YouTube url一起发布,并且文本之间存在YouTube url,则YouTube url之后的文本将丢失锚定标记。但是,如果文章在文本后(文本结束后)包含管状链接,则锚定标记工作正常。

问题示例

十只小猴子在床上跳 . . . 被泰迪熊绊倒,http://www.youtube.com/watch?v=38hnsgqf8O0在香蕉皮上滑倒,从码头上摔下来!

“在香蕉皮上滑倒,从码头上掉下来!”锚定标签不工作。其他案件的其他工作罚款。

如何解决这个问题

共有1个答案

宫晟
2023-03-14

尝试添加display:block 样式:

<a style="display:block;" href="<?= URL::site(); ?>feeds/view/<?php echo $feed->feed_id; ?>">

它只在HTML5中是正确的(参见Can a

但是当用户在文本中添加网址时,就不能这样做了。一个<代码>

然而,有一个方法可以做到这一点。您可以通过插入网址分割文本,并在中包装每个部分

<p>
  <a href="<?= URL::site(); ?>feeds/view/<?php echo $feed->feed_id; ?>">
    text_part_1
  </a>
  <a href="http://www.youtube.com/watch?v=38hnsgqf8O0">http://www.youtube.com/watch?v=38hnsgqf8O0</a>
  <a href="<?= URL::site(); ?>feeds/view/<?php echo $feed->feed_id; ?>">
    text_part_2
  </a>      
</p>

 类似资料:
  • 我正在尝试更改的字体颜色,但它不起作用。背景颜色的改变也不起作用。我已经尝试使用十六进制的符号,但它也不起作用。我还尝试在没有伪类的情况下为设置样式,但它也不起作用。 码本 null null

  • HTML: CSS: 我刚刚有链接去谷歌现在。

  • 我有一个关于HTML中锚tel:标记的小问题。 这是有效的,还是有关于如何正确书写的标准? 空格和前缀的问题困扰了我,允许吗?

  • 本文向大家介绍HTML5 标签在Android Webview中不起作用,包括了HTML5 标签在Android Webview中不起作用的使用技巧和注意事项,需要的朋友参考一下 使用Android的Mediaplayer播放音频。您需要从用HTML文件编写的JavaScript调用Android函数。 以下是我的JavaScript:

  • 我需要在href标签上禁用onclick事件。我可以禁用“a href”标记,但是“a href”标记中的onclick事件仍然没有被禁用。 下面的片段更清楚地解释了这个问题! 在上面的代码段中,尽管“a href”似乎已禁用,但当您单击a-href时,仍会单击“工作”! 请帮帮我! 提前致谢!

  • 问题内容: 我尝试将Angle.js与PhoneGap一起使用,它在chrome浏览器上可以正常工作,但是 在ng-view标签上不起作用,并且在模拟器上运行angular模块时不会调用它。你有什么主意吗? 我的代码是这样的。 index.html index.js router.js 问题答案: 尝试使用bootstrap api方法在deviceReady上手动启动应用程序。就像是: http