首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >小于和大于之间的文本不输出PHP

小于和大于之间的文本不输出PHP
EN

Stack Overflow用户
提问于 2015-10-26 01:40:12
回答 3查看 141关注 0票数 0

我使用(str_replace)函数将youtube url中的##ID##替换为以下正则表达式:(?P<id>[a-z-A-Z_0-9]+),因此我使用此代码来完成此操作:

代码语言:javascript
运行
复制
<?php
  $urlbase = 'https://www.youtube.com/watch?v=##ID##';
  $lastchange = str_replace('##ID##', '(<id>[a-z-A-Z_0-9]+)', $urlbase);
  echo $lastchange;
?>

我在浏览器中得到这样的输出:https://www.youtube.com/watch?v=(?P[a-z-A-Z_0-9]+),它看起来像是<id>没有出现!

我尝试了这个简单的代码:

代码语言:javascript
运行
复制
<?php
 echo "This is my <id>";
?>

但我只是在浏览器中获得了this is my

问题是什么?以及我该如何修复它,谢谢

EN

回答 3

Stack Overflow用户

发布于 2015-10-26 01:44:59

被解释为HTML,所以您的浏览器正在解析它,因为它不是一个可呈现的元素,所以它什么也不显示。尝试:

代码语言:javascript
运行
复制
<?php
  echo "This is my &lt;id&gt;
?>

至于str_replace,它做的正是函数应该做的事情。如果您希望在字符串替换中使用正则表达式,请使用preg_replace

票数 0
EN

Stack Overflow用户

发布于 2015-10-26 01:45:57

问题出在线路上:

代码语言:javascript
运行
复制
$lastchange = str_replace('##ID##', '(<id>[a-z-A-Z_0-9]+)', $urlbase);

str_replace不使用正则表达式。

您将需要preg_replace

代码语言:javascript
运行
复制
$pattern = '(<id>[a-z-A-Z_0-9]+)'
$replacement = '##ID##'
$string = $urlbase
$lastchange = preg_replace($pattern, $replacement, $string);

此外,<>html entities,这意味着它们是为HTML保留的字符,它们有一些特殊的含义,如果你想显示它们,那么你必须分别使用它们的实体名称,例如&lt;&gt;

代码语言:javascript
运行
复制
<?php
   echo " echo "This is my &lt;id&gt;";
?>
票数 0
EN

Stack Overflow用户

发布于 2015-10-26 01:49:05

您的浏览器正在删除该标记。如果你看一下源代码,它就真的存在了。也许你应该试试:

代码语言:javascript
运行
复制
  $urlbase = 'https://www.youtube.com/watch?v=##ID##';
  $lastchange = str_replace('##ID##', '(<id>[a-z-A-Z_0-9]+)', $urlbase);
  echo urlencode( $lastchange );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33332834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档