想知道是否有人可以帮助解决这个问题。这是我第一次看到这个错误。
警告:preg_match()[function.preg-match]:编译 失败:在第9个偏移处没有重复
与我的代码的这一部分有关:
( isset( $_POST[$post_key] ) && $misc[2] === true && ! preg_match( $misc[0], $_POST[$post_key] ) )
我的完整(相关的那段)代码在下面。
发送的数据如下:
ajax-request true
author 1
epi 2
jbid 781711001327010590
message dfdf
type send-invite
任何人都知道这个或导致错误的原因是什么原因?
case 'send-invite' :
if( free_member_is_logged_in() ) {
$post_array = array(
'message' => array(
'#^.*{3,500}$#is',
'<p class="error_message">Please enter a message between 3 and 500 characters.</p>',
true
),
'epi' => array(
'#^[0-9]+$#is',
'<p class="error_message">An internal error has occured. If this problem persists please contact support</p>',
true
),
'author' => array(
'#^[0-9]+$#is',
'<p class="error_message">An internal error has occured. If this problem persists please contact support.</p>',
true
),
'jbid' => array(
'#^[0-9]+$#is',
'<p class="error_message">Please specify a job which you have published.</p>',
true
)
);
$continue = true;
foreach( $post_array as $post_key => $misc ) {
if(
( ! isset( $_POST[$post_key] ) && $misc[2] === true )
||
( isset( $_POST[$post_key] ) && $misc[2] === true && ! preg_match( $misc[0], $_POST[$post_key] ) )
||
( isset( $_POST[$post_key] ) && $misc[2] === false && $_POST[$post_key] != '' && ! preg_match( $misc[0], $_POST[$post_key] ) )
) {
$continue = false;
$error_message = $misc[1];
}
${cleankey($post_key)} = res($_POST[$post_key]);
}
答案 0 :(得分:1)
我想这里也一样 - 你不能一起使用* {}:
Warning: preg_match() [function.preg-match]: Compilation failed: nothing to repeat at offset
$post_array = array(
'message' => array(
'#^.*{3,500}$#is',
答案 1 :(得分:1)
3到500个字符之间的消息
正则表达式#^.{3,500}$#is
就可以了。