pre_match出错

时间:2011-10-06 12:24:58

标签: php

我仍然对pre_match有点不满意。我试图将pre_match用于邮政编码这是我在访问页面时遇到的错误。

解析错误:语法错误,意外'/',在/home/valerie2/public_html/elinkswap/snorris/findstore.php中预期T_VARIABLE或'$'

这是我的代码:

<?php
    $zip;
    if (pre_match("/^[0-9]{5{$/", $zip)) {
        echo " The Zip code must be a 5-digit number.";
    }

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <title>Find Store</title>
    <style type="text/css" title="text/css" media="all">
        .error {
            color: #F30;
        }
        h3 {
            color: #00F;
        }
        body {
            background-color: # FFCF73;
        }
    </style>
</head>
<body>
    <form method="post" action="distance.php">
        <p>Zip: <input type="text" name="zip" /><input type="submit" name="submit" value="find!"/></p>
    </form>

</body>
</html>

我知道我做错了什么,我一直在经历它和一切。我只是想知道是否有人可以帮我理解我做错了什么。

2 个答案:

答案 0 :(得分:1)

<?php 
$zip; 
if (pre_match("/^[0-9]{5{$/", $zip)) { 
echo " The Zip code must be a 5-digit number."; 
}
?> 

关于这一切的一切都是错误的。试试这个:

<?php
if( preg_match("/^[0-9]{5}$/", $zip))
    $error = "The Zip code must be a 5-digit number.";
?>
<!DOCTYPE .........
....
....
<?php echo $error ?>

纠正的事情:

  1. 删除了脚本开头的额外空间
  2. g _匹配拼写错误
  3. 正则表达式{取代}
  4. 错误消息打印在文档中,而不是doctype之前的某个地方

答案 1 :(得分:-1)

在:

pre_match("/^[0-9]{5{$/", $zip)) {

使用单引号,如:

pre_match('/^[0-9]{5{$/', $zip)) {

我没有检查你的其余代码。

请参阅:http://us.php.net/manual/en/language.types.string.php#language.types.string.parsing了解更多关于双引号内$的含义。