0

我想用字符“|”分割以下字符串 但我收到以下错误,有什么想法吗?

错误:

Warning: split() [function.split]: REG_EMPTY in E:\AppServ\www\admin\panelActions\editApplication.php on line 39

细绳 :

|../../filesBank/_screenshots/com.beem.project.beem_screenshot_0.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_1.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_2.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_3.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_4.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_5.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_6.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_7.jpg

代码 :

$__screenShots = split("|", $requestRow['appImages']);
4

4 回答 4

6

形成 PHP DOC 关于split

自 PHP 5.3.0 起,该函数已被弃用。强烈建议不要依赖此功能。

尝试

$string = '|../../filesBank/_screenshots/com.beem.project.beem_screenshot_0.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_1.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_2.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_3.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_4.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_5.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_6.jpg|../../filesBank/_screenshots/com.beem.project.beem_screenshot_7.jpg' ;
var_dump(explode("|", $string));

输出

array
  0 => string '' (length=0)
  1 => string '../../filesBank/_screenshots/com.beem.project.beem_screenshot_0.jpg' (length=67)
  2 => string '../../filesBank/_screenshots/com.beem.project.beem_screenshot_1.jpg' (length=67)
  3 => string '../../filesBank/_screenshots/com.beem.project.beem_screenshot_2.jpg' (length=67)
  4 => string '../../filesBank/_screenshots/com.beem.project.beem_screenshot_3.jpg' (length=67)
  5 => string '../../filesBank/_screenshots/com.beem.project.beem_screenshot_4.jpg' (length=67)
  6 => string '../../filesBank/_screenshots/com.beem.project.beem_screenshot_5.jpg' (length=67)
  7 => string '../../filesBank/_screenshots/com.beem.project.beem_screenshot_6.jpg' (length=67)
  8 => string '../../filesBank/_screenshots/com.beem.project.beem_screenshot_7.jpg' (length=67)

* 如果您还想使用split*

这是你使用它的方式

$string = split("[|]", $string);
var_dump($string);

你可以得到split() [function.split]: REG_EMPTY因为你试图像这样使用它

   $string = split("|", $string);
于 2012-09-26T14:36:06.987 回答
2

如果您使用的函数与某种正则表达式风格有关,您实际上应该明白您在这里使用了一个特殊字符:

|--- 选择(又名交替或集合并集)运算符匹配运算符之前的表达式或运算符之后的表达式。例如,abc|def匹配"abc""def".

POSIX 基本正则表达式语法

您要做的是获取文字|字符,因此您需要对其进行转义:

split('\\|', ...)

请注意 split 函数已被弃用(POSIX 风格的正则表达式函数),并且explode您可以在您的情况下实现非常相似的东西。如果没有,请使用preg_split.

于 2012-09-26T14:42:20.863 回答
0

尝试使用 explode() 函数 - 几乎相同

于 2012-09-26T14:35:13.753 回答
0

警告,[函数] split() [声明] REG_[在 [您的文件] E:\AppServ\www\admin\panelActions\editApplication.php 第 39 行中是]EMPTY。

所以,不要使用空的正则表达式。

于 2012-09-26T14:36:50.743 回答