首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一些不清楚的PHP语法

一些不清楚的PHP语法
EN

Stack Overflow用户
提问于 2010-04-08 22:24:03
回答 4查看 323关注 0票数 0

我是PHP初学者,在论坛上看到了这个PHP表达式:

我的PHP版本是5.2.X ()

代码语言:javascript
复制
$regex = <<<'END'
/
  ( [\x00-\x7F]                 # single-byte sequences   0xxxxxxx
  | [\xC0-\xDF][\x80-\xBF]      # double-byte sequences   110xxxxx 10xxxxxx
  | [\xE0-\xEF][\x80-\xBF]{2}   # triple-byte sequences   1110xxxx 10xxxxxx * 2
  | [\xF0-\xF7][\x80-\xBF]{3}   # quadruple-byte sequence 11110xxx 10xxxxxx * 3 
  )
| ( [\x80-\xBF] )               # invalid byte in range 10000000 - 10111111
| ( [\xC0-\xFF] )               # invalid byte in range 11000000 - 11111111
/x
END;

这个代码正确吗?像<<<'END'//xEND;这样的奇怪的结构(对我来说)意味着什么?

我的PHP版本不支持现在的文档,我应该如何替换这个表达式?没有引号,'END' $regex变成了NULL

我收到:

解析错误:语法错误,X行/home/vhosts/mysite.com/public_html/mypage.php中的意外T_SL

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-08 23:19:58

解析错误:语法错误,X行/home/vhosts/mysite.com/public_html/mypage.php中的意外T_SL

这来自于's from。这是在PHP5.3中添加的现在文档。由于您使用的是PHP5.2,而这个正则表达式使用'\x',您将需要一个引号字符串,或者您需要转义'\'s。

正则表达式作为引号字符串的示例,用于这个答案

代码语言:javascript
复制
$regex = '/
( [\x00-\x7F]                 # single-byte sequences   0xxxxxxx
  | [\xC0-\xDF][\x80-\xBF]      # double-byte sequences   110xxxxx 10xxxxxx
  | [\xE0-\xEF][\x80-\xBF]{2}   # triple-byte sequences   1110xxxx 10xxxxxx * 2
  | [\xF0-\xF7][\x80-\xBF]{3}   # quadruple-byte sequence 11110xxx 10xxxxxx * 3
  )
| ( [\x80-\xBF] )               # invalid byte in range 10000000 - 10111111
| ( [\xC0-\xFF] )               # invalid byte in range 11000000 - 11111111
/x
';

"/“和"/x”部分是正则表达式中的控制字符。"/"s标记开始和结束,x标志(PCRE_EXTENDED)的含义在:http://us.php.net/manual/en/reference.pcre.pattern.modifiers.php中定义。

票数 6
EN

Stack Overflow用户

发布于 2010-04-08 22:28:02

<<<END被称为heredoc语法--一种将大量数据引用到变量的方法。

代码语言:javascript
复制
$mytext = <<<TXT

this is my text and it
can be many lines
etc
etc

TXT;

这三个字符(这里是TXT,以示例结尾)可以是您喜欢的任何字符,但据我所知,它们必须是字母数字。

手册阅读更多内容

票数 5
EN

Stack Overflow用户

发布于 2010-04-08 22:27:44

我是黑尔多语法

<<< 'END'表示,它是字符串的开始,直到下一次出现"END“为止,所有内容都是字符串的一部分(甚至是换行符)。

//x实际上是正则表达式的一部分。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2603853

复制
相关文章

相似问题

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