public void PHPFileIncludes(int TARGET_PHP_FILES_ID, DatabaseAccess JavaDBAccess, PHPFileOperations PHPFile) {
        PreparedStatement ps = null, psUpdate = null;
        ResultSet rs = null;
        String PHPFileTextClean = "";

        String RegExpText = "", host = "", HostPath = "";
        Boolean CaseSensitiveOption = false;
        Matcher existMatch = null;
        Pattern p = null;
        int existMatchStart = 0, existMatchEnd = 0, INCLUDED_TARGET_PHP_FILES_ID;
        int VariableLocationInsideString = -1;
        File f;
        String HTTP_REQUEST_PATH = "", TARGET_PHP_FILES_PATH = "";
        int pos, count;

        try {

            ps = conn.prepareStatement("SELECT CLEANED_TEXT, PATH, HOST, HOST_PATH FROM TARGET_PHP_FILES, TARGET_PHP_WEB_APPLICATIONS WHERE TARGET_PHP_FILES.TARGET_PHP_WEB_APPLICATION=TARGET_PHP_WEB_APPLICATIONS.ID AND TARGET_PHP_FILES.ID=?");
            ps.setInt(1, TARGET_PHP_FILES_ID);
            rs = ps.executeQuery();

            rs.next();
            PHPFileTextClean = rs.getString("CLEANED_TEXT");
            TARGET_PHP_FILES_PATH = rs.getString("PATH");
            host = rs.getString("HOST");
            HostPath = rs.getString("HOST_PATH");
            rs.close();
            ps.close();

            pos = TARGET_PHP_FILES_PATH.lastIndexOf(File.separator);
            TARGET_PHP_FILES_PATH = TARGET_PHP_FILES_PATH.substring(0, pos);


            CaseSensitiveOption = false;
            RegExpText = "(\\brequire\\b|\\brequire_once\\b|\\binclude\\b|\\binclude_once\\b)(\\s+|\\()\"";
            if (CaseSensitiveOption) {
                p = Pattern.compile(RegExpText);
            } else {
                p = Pattern.compile(RegExpText, Pattern.CASE_INSENSITIVE);
            }

            existMatch = p.matcher(PHPFileTextClean);

            while (existMatch.find()) {
                existMatchStart = existMatch.start();
                existMatchEnd = existMatch.end();

                VariableLocationInsideString = PHPFile.TextInsidePHPString(PHPFileTextClean, existMatchStart);
                if (VariableLocationInsideString == -1) {
                    pos = PHPFileTextClean.indexOf("\"", existMatchEnd);
                    HTTP_REQUEST_PATH = PHPFileTextClean.substring(existMatchEnd, pos);
                    if (!HTTP_REQUEST_PATH.contains(TARGET_PHP_FILES_PATH)) {
                        HTTP_REQUEST_PATH = TARGET_PHP_FILES_PATH + File.separator + HTTP_REQUEST_PATH;
                    }
                    f = new File(HTTP_REQUEST_PATH);

                    ps = conn.prepareStatement("SELECT COUNT(*) FROM TARGET_PHP_FILES WHERE PATH=?");
                    ps.setString(1, HTTP_REQUEST_PATH);
                    rs = ps.executeQuery();

                    rs.next();
                    count = rs.getInt(1);
                    rs.close();
                    ps.close();

                    if (count == 0) {
                        HTTP_REQUEST_PATH = HTTP_REQUEST_PATH.substring(HostPath.length() - 1, HTTP_REQUEST_PATH.lastIndexOf(File.separator) + 1);
                        if ((INCLUDED_TARGET_PHP_FILES_ID = ReadFile2DB(f, host, HostPath, HTTP_REQUEST_PATH, JavaDBAccess, false)) > 0) {
                            ps = conn.prepareStatement("INSERT INTO TARGET_PHP_FILES_INCLUDES (TARGET_PHP_FILE_MASTER,TARGET_PHP_FILE_INCLUDED) VALUES (?,?)");
                            ps.setInt(1, TARGET_PHP_FILES_ID);
                            ps.setInt(2, INCLUDED_TARGET_PHP_FILES_ID);
                            ps.executeUpdate();
                            ps.close();
                        }
                    }
                }
            }

        } catch (Throwable e) {
            System.out.println("Errors in ParsePHPFile!");
            System.out.println("exception thrown:");

            if (e instanceof SQLException) {
                JavaDBAccess.printSQLError((SQLException) e);
            } else {
                e.printStackTrace();
            }
        }
    }