为了账号安全,请及时绑定邮箱和手机立即绑定

PHP函数preg_split()出错误?

PHP函数preg_split()出错误?

江户川乱折腾 2019-03-06 11:07:11
使用PHP函数preg_split()时出现这样的错误:Warning: preg_split() [function.preg-split]: Empty regular expression in D:\PHPServer\WEB\01\jpgraph\jpgraph.php on line 5782代码function GetTextHeight($txt="",$angle=0) {$tmp =preg_split("\n",$txt);$n = count($tmp);$m=0;for($i=0; $i< $n; ++$i)$m = max($m,strlen($tmp[$i]));if( $this->font_family <= FF_FONT2+1 ) {if( $angle==0 ) {$h = imagefontheight($this->font_family);if( $h === false ) {JpGraphError::RaiseL(25088);//('You have a misconfigured GD font support. The call to imagefontwidth() fails.');}return $n*$h;}else {$w = @imagefontwidth($this->font_family);if( $w === false ) {JpGraphError::RaiseL(25088);//('You have a misconfigured GD font support. The call to imagefontwidth() fails.');}return $m*$w;}}else {$bbox = $this->GetTTFBBox($txt,$angle);return $bbox[1]-$bbox[5];}}
查看完整描述

3 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

preg正则表达式必须有一个定界符,它可以是除元字符外的任何字符(位于表达式开始前和结束后,作用是把表达式与模式修饰符分开。比如 0abc0i 表示匹配不分大小写的abc)。你的正则式里只有一个\n,pcre认为它是你定义的定界符,于是“正则表达式不存在”就出现了。解决方法是在\n前后各加一个字符,比如 "/\n/"

查看完整回答
反对 回复 2019-03-30
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

PERL兼容正则可以使用任何不是字母、数字或反斜线(\)的字符作为定界符,如果作为定界符的字符必须被用在表达式本身中,则需要用反斜线转义。也可以使用(),{},[] 和 <> 作为定界符。
使用preg_split中间的pattern需要使用定界符啊。

查看完整回答
反对 回复 2019-03-30
?
慕容森

TA贡献1853条经验 获得超18个赞

缺少正则式。
$tmp =preg_split("\n",$txt); =====> $tmp =preg_split("/\n/",$txt);

查看完整回答
反对 回复 2019-03-30
  • 3 回答
  • 0 关注
  • 811 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信