【问题标题】:Parse error: syntax error, unexpected end of file in C:\Program Files\XAMPP\htdocs\lookup.php on line 116 [duplicate]解析错误:语法错误,第 116 行 C:\Program Files\XAMPP\htdocs\lookup.php 中的文件意外结束 [重复]
【发布时间】:2013-09-13 16:01:10
【问题描述】:

所以我一直试图让这个搜索脚本使用 XAMPP 在本地运行,这就是我遇到的错误,有什么提示吗?我对编程知之甚少,因此我为什么要问,我从公共来源获得了脚本,只是想在本地进行设置。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>Search Engine</title>
        <style type="text/css">
            .footertext{
                position:center;
                bottom:0;
            }
            body {
                background-color: #202020;
            }
            body,td,th {
                color: #CCC;
                font-family: Verdana, Geneva, sans-serif;
            }
            .searchbox {
                font-family: Verdana, Geneva, sans-serif;
                font-size: 18px;
                color: #CCC;
                background-color: #333;
                border: 1px solid #CCC;
                padding-left: 10px;
            }
        </style>
    </head>
    <body>
        <div align="center">
            <a href=""><img border="0" src="" alt ="logo"></a>
            <br>
            <br><a href="/dblookup.php/"><b><u>Search Again</u></b></a>
            <br>How to use: <br>Input search term and click search.
        </div>

        <div align="center">
        <?php

        $fname = strlen(htmlspecialchars($_POST['text']));

        if (isset($_POST['text'])){
            $directory = "";

            //get all image files with a .jpg extension.
            $images = glob($directory . "*.txt");

            //print each file name
            foreach($images as $image)
            {
                if($fname<3)
                {
                    echo "You must have atleast 4 characters in your search, Sorry.";
                    return;
                }

                $file = $image;
                $searchfor = $_POST['text'];

                // the following line prevents the browser from parsing this as HTML.
                // get the file contents, assuming the file to be readable (and exist)
                $contents = file_get_contents($file);
                // escape special characters in the query
                $pattern = preg_quote($searchfor, '/');
                // finalise the regular expression, matching the whole line
                $pattern = "/^.*$pattern.*$/mi";
                //require "sanitize.php";

                // search, and store all matching occurences in $matchess
                if(preg_match_all($pattern, $contents, $matches)){
                    echo "<br><br>Found matches in $file:<br />";

                    //$nigga = array_map("htmlspecialchars", $matches);
                    //vv this part
                    $gud = implode("\n", $matches[0]);
                    //#####################^ htmlspecialchars($matches[0]) -> But it doesnt output anything..
                    //#This part ^^
                    echo nl2br(htmlspecialchars($gud));
                }else{
                    echo "";
                }
            }
        } else {
        ?>
        </div>
        <form action='' method='post'>
            <div align="center">Search: <br><input name='text' type='text' class="searchbox"> 
                <input type='submit' class="searchbox" value='Search'>
            </div>
        </form>

        <? } ?>
        <div class="footertext">
            <br><br><br>
            <center>Lookup: <a href="">Lookup</center>
        </div>
    </body>
</html>

【问题讨论】:

  • 这个错误是典型的代码中某处未闭合的大括号。
  • 你需要在循环中使用break;而不是return;

标签: php


【解决方案1】:

您的 php 配置似乎不允许short_open_tags

替换以下行:

<? } ?>

与:

<?php } ?>

这是在 phpfiddle 中修复后代码的工作版本:http://phpfiddle.org/main/code/8sm-b3g

【讨论】:

    【解决方案2】:

    注意: PHP 短标签在较新版本中已弃用。

    改变这一行

    <? } ?>
    

    <?php } ?>
    

    【讨论】:

      【解决方案3】:

      在您的 PHP 设置中,指令 short_open_tags 未启用。 如果启用此指令,PHP 可以使用以下标签运行:&lt;? ?&gt;。 因此,它会在&lt;? ?&gt; 上显示错误,并且必须要求&lt;?php ?&gt;。 如果您希望您的文件使用&lt;? ?&gt; 运行,请转到您的php.inifile。 并取消注释该行:

      short_open_tag = Off

      改成:

      short_open_tag = On

      你的代码会起作用的。

      【讨论】:

        猜你喜欢
        • 2014-01-16
        • 1970-01-01
        • 2016-12-28
        • 2013-12-22
        • 2016-02-01
        • 1970-01-01
        • 2013-07-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多