Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用preg_replace时锚定标签不起作用_Javascript_Php_Kohana_Kohana 3 - Fatal编程技术网

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

Javascript 使用preg_replace时锚定标签不起作用,javascript,php,kohana,kohana-3,Javascript,Php,Kohana,Kohana 3,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.=?&_

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>
”,$feed->feed_text)):
echo nl2br($feed_text);
其他:
echo nl2br($feed->feed_text);endif;?>

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

如果用户发布文本,单击该文本会将用户带到另一个页面。如果用户也使用YouTube url发布这两个文本,这也适用。单击文本时,应将用户带到下一个屏幕

问题是,如果用户在you tube url之后发布文本,并且you tube url位于文本之间,则you tube url之后的文本将丢失锚定标记。但是,如果帖子在文本之后(文本结束之后)包含you tube链接,则锚定标记将正常工作

问题示例:

十只小猴子在床上跳…被泰迪熊绊倒,在香蕉皮上滑倒,从码头上摔下来

“在香蕉皮上滑倒,从码头上摔下来!“锚定标签不起作用。其余的箱子工作正常


如何解决此问题

尝试将
display:block;
样式添加到锚定标记:

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

但是,如果用户在文本中添加url,那么就不能这样做

<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>