├── composer.json ├── system ├── fonts │ ├── texb.ttf │ └── index.html ├── .htaccess ├── index.html ├── core │ ├── index.html │ ├── compat │ │ └── index.html │ ├── Model.php │ ├── Controller.php │ └── Benchmark.php ├── database │ ├── index.html │ └── drivers │ │ ├── index.html │ │ ├── cubrid │ │ ├── index.html │ │ └── cubrid_utility.php │ │ ├── ibase │ │ ├── index.html │ │ ├── ibase_utility.php │ │ └── ibase_result.php │ │ ├── mssql │ │ ├── index.html │ │ ├── mssql_utility.php │ │ └── mssql_forge.php │ │ ├── mysql │ │ └── index.html │ │ ├── mysqli │ │ └── index.html │ │ ├── oci8 │ │ ├── index.html │ │ └── oci8_utility.php │ │ ├── odbc │ │ ├── index.html │ │ ├── odbc_utility.php │ │ └── odbc_forge.php │ │ ├── pdo │ │ ├── index.html │ │ ├── subdrivers │ │ │ ├── index.html │ │ │ ├── pdo_odbc_forge.php │ │ │ ├── pdo_ibm_forge.php │ │ │ ├── pdo_dblib_forge.php │ │ │ └── pdo_sqlsrv_forge.php │ │ ├── pdo_forge.php │ │ └── pdo_utility.php │ │ ├── sqlite │ │ ├── index.html │ │ ├── sqlite_utility.php │ │ └── sqlite_result.php │ │ ├── sqlsrv │ │ ├── index.html │ │ ├── sqlsrv_utility.php │ │ └── sqlsrv_forge.php │ │ ├── postgre │ │ ├── index.html │ │ └── postgre_utility.php │ │ └── sqlite3 │ │ ├── index.html │ │ └── sqlite3_utility.php ├── helpers │ ├── index.html │ ├── language_helper.php │ ├── email_helper.php │ ├── path_helper.php │ ├── xml_helper.php │ ├── number_helper.php │ ├── typography_helper.php │ ├── directory_helper.php │ ├── array_helper.php │ ├── cookie_helper.php │ └── security_helper.php ├── language │ ├── index.html │ └── english │ │ ├── index.html │ │ ├── number_lang.php │ │ ├── pagination_lang.php │ │ ├── migration_lang.php │ │ ├── unit_test_lang.php │ │ ├── profiler_lang.php │ │ ├── ftp_lang.php │ │ ├── calendar_lang.php │ │ ├── upload_lang.php │ │ ├── email_lang.php │ │ ├── imglib_lang.php │ │ ├── db_lang.php │ │ └── form_validation_lang.php └── libraries │ ├── index.html │ ├── Cache │ ├── index.html │ └── drivers │ │ └── index.html │ ├── Session │ ├── index.html │ ├── drivers │ │ └── index.html │ └── SessionHandlerInterface.php │ └── Javascript │ └── index.html ├── .gitignore ├── application ├── .htaccess ├── cache │ ├── .htaccess │ └── index.html ├── views │ ├── errors │ │ ├── cli │ │ │ ├── error_404.php │ │ │ ├── error_general.php │ │ │ ├── error_db.php │ │ │ ├── index.html │ │ │ ├── error_php.php │ │ │ └── error_exception.php │ │ ├── index.html │ │ └── html │ │ │ ├── index.html │ │ │ ├── error_php.php │ │ │ ├── error_exception.php │ │ │ ├── error_general.php │ │ │ ├── error_db.php │ │ │ └── error_404.php │ ├── index.html │ └── welcome_message.php ├── index.html ├── config │ ├── index.html │ ├── hooks.php │ ├── profiler.php │ ├── memcached.php │ ├── routes.php │ ├── doctypes.php │ ├── foreign_chars.php │ ├── migration.php │ ├── smileys.php │ ├── constants.php │ ├── autoload.php │ └── database.php ├── core │ └── index.html ├── helpers │ ├── index.html │ └── general_helper.php ├── hooks │ └── index.html ├── language │ ├── index.html │ └── english │ │ └── index.html ├── logs │ └── index.html ├── models │ └── index.html ├── controllers │ ├── index.html │ ├── Login.php │ ├── Tunnel.php │ ├── User.php │ └── Welcome.php ├── libraries │ └── index.html └── third_party │ └── index.html ├── .htaccess ├── LICENSE ├── install_qcloud_sdk.php └── README.md /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "qcloud/weapp-sdk": "v0.4.4" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /system/fonts/texb.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tencentyun/wafer-php-server-demo/HEAD/system/fonts/texb.ttf -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | sftp-config.json 2 | application/logs/*.log 3 | application/business/*.json 4 | vendor/ 5 | weapp-sdk/ 6 | composer.lock -------------------------------------------------------------------------------- /system/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Require all denied 3 | 4 | 5 | Deny from all 6 | -------------------------------------------------------------------------------- /application/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Require all denied 3 | 4 | 5 | Deny from all 6 | -------------------------------------------------------------------------------- /application/cache/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Require all denied 3 | 4 | 5 | Deny from all 6 | -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine on 2 | RewriteCond $1 !^(index\.php) 3 | RewriteCond %{REQUEST_FILENAME} !-f 4 | RewriteCond %{REQUEST_FILENAME} !-d 5 | RewriteRule ^(.*)$ index.php/$1 [L,QSA] -------------------------------------------------------------------------------- /application/views/errors/cli/error_404.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/core/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/fonts/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/helpers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/language/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/cache/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/config/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/core/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/helpers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/hooks/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/language/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/logs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/models/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/views/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/core/compat/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/libraries/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/controllers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/libraries/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/third_party/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/views/errors/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/language/english/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/libraries/Cache/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/libraries/Session/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/language/english/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/views/errors/cli/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/views/errors/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/cubrid/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/ibase/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/mssql/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/mysql/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/mysqli/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/oci8/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/odbc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/pdo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/sqlite/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/sqlsrv/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/libraries/Cache/drivers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/libraries/Javascript/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/postgre/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/sqlite3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/libraries/Session/drivers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /system/database/drivers/pdo/subdrivers/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 403 Forbidden 5 | 6 | 7 | 8 |

Directory access is forbidden.

9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /application/controllers/Login.php: -------------------------------------------------------------------------------- 1 | TRUE)); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /application/config/hooks.php: -------------------------------------------------------------------------------- 1 | array( 15 | 'hostname' => '127.0.0.1', 16 | 'port' => '11211', 17 | 'weight' => '1', 18 | ), 19 | ); 20 | -------------------------------------------------------------------------------- /application/controllers/User.php: -------------------------------------------------------------------------------- 1 | 0, 17 | 'message' => 'ok', 18 | 'data' => array( 19 | 'userInfo' => $result['data']['userInfo'], 20 | ), 21 | ); 22 | 23 | echo json_encode($response, JSON_FORCE_OBJECT); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /application/views/errors/cli/error_php.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | A PHP Error was encountered 4 | 5 | Severity: 6 | Message: 7 | Filename: 8 | Line Number: 9 | 10 | 11 | 12 | Backtrace: 13 | 14 | 15 | File: 16 | Line: 17 | Function: 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /application/controllers/Welcome.php: -------------------------------------------------------------------------------- 1 | 19 | * @see https://codeigniter.com/user_guide/general/urls.html 20 | */ 21 | public function index() 22 | { 23 | $this->load->view('welcome_message'); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /application/views/errors/cli/error_exception.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | An uncaught Exception was encountered 4 | 5 | Type: 6 | Message: 7 | Filename: getFile(), "\n"; ?> 8 | Line Number: getLine(); ?> 9 | 10 | 11 | 12 | Backtrace: 13 | getTrace() as $error): ?> 14 | 15 | File: 16 | Line: 17 | Function: 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /application/views/errors/html/error_php.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 | 7 |

A PHP Error was encountered

8 | 9 |

Severity:

10 |

Message:

11 |

Filename:

12 |

Line Number:

13 | 14 | 15 | 16 |

Backtrace:

17 | 18 | 19 | 20 | 21 |

22 | File:
23 | Line:
24 | Function: 25 |

26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 |
-------------------------------------------------------------------------------- /application/helpers/general_helper.php: -------------------------------------------------------------------------------- 1 | = 0) { 19 | $message = json_encode($message, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); 20 | } else { 21 | $message = json_encode($message); 22 | } 23 | } 24 | 25 | if (is_string($message) || is_numeric($message)) { 26 | $messages[] = $message; 27 | } 28 | } 29 | 30 | log_message('debug', implode(' ', $messages) . "\n"); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /application/views/errors/html/error_exception.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 | 7 |

An uncaught Exception was encountered

8 | 9 |

Type:

10 |

Message:

11 |

Filename: getFile(); ?>

12 |

Line Number: getLine(); ?>

13 | 14 | 15 | 16 |

Backtrace:

17 | getTrace() as $error): ?> 18 | 19 | 20 | 21 |

22 | File:
23 | Line:
24 | Function: 25 |

26 | 27 | 28 | 29 | 30 | 31 | 32 |
-------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | LICENSE - "MIT License" 2 | 3 | Copyright (c) 2016 by Tencent Cloud 4 | 5 | Permission is hereby granted, free of charge, to any person 6 | obtaining a copy of this software and associated documentation 7 | files (the "Software"), to deal in the Software without 8 | restriction, including without limitation the rights to use, 9 | copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the 11 | Software is furnished to do so, subject to the following 12 | conditions: 13 | 14 | The above copyright notice and this permission notice shall be 15 | included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 19 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 23 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 24 | OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /application/views/errors/html/error_general.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | Error 8 | 57 | 58 | 59 |
60 |

61 | 62 |
63 | 64 | -------------------------------------------------------------------------------- /application/views/errors/html/error_db.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | Database Error 8 | 57 | 58 | 59 |
60 |

61 | 62 |
63 | 64 | -------------------------------------------------------------------------------- /application/views/errors/html/error_404.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 404 Page Not Found 8 | 57 | 58 | 59 |
60 |

61 | 62 |
63 | 64 | -------------------------------------------------------------------------------- /install_qcloud_sdk.php: -------------------------------------------------------------------------------- 1 | $config['serverHost'], 38 | 'AuthServerUrl' => $config['authServerUrl'], 39 | 'TunnelServerUrl' => $config['tunnelServerUrl'], 40 | 'TunnelSignatureKey' => $config['tunnelSignatureKey'], 41 | )); 42 | 43 | /** 44 | * 也可以调用独立方法进行设置 45 | * 46 | * Conf::setServerHost($config['serverHost']); 47 | * Conf::setAuthServerUrl($config['authServerUrl']); 48 | * Conf::setTunnelServerUrl($config['tunnelServerUrl']); 49 | * Conf::setTunnelSignatureKey($config['tunnelSignatureKey']); 50 | */ 51 | 52 | // 设置网络请求超时时长(可选,默认 30 秒) 53 | Conf::setNetworkTimeout($config['networkTimeout']); 54 | 55 | 56 | /** 57 | * -------------------------------------------------------------------- 58 | * 设置 SDK 日志输出配置(主要是方便调试) 59 | * -------------------------------------------------------------------- 60 | */ 61 | 62 | // 开启日志输出功能 63 | Conf::setEnableOutputLog(TRUE); 64 | 65 | // 指定 SDK 日志输出目录(注意尾斜杠不能省略) 66 | Conf::setLogPath(APPPATH.'logs/'); 67 | 68 | // 设置日志输出级别 69 | // 1 => ERROR, 2 => DEBUG, 3 => INFO, 4 => ALL 70 | Conf::setLogThresholdArray(array(2)); // output debug log only 71 | -------------------------------------------------------------------------------- /application/views/welcome_message.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 腾讯云微信小程序服务器 Demo - PHP 8 | 53 | 54 | 55 |
56 |

腾讯云微信小程序服务端 Demo - PHP

57 |

会话管理服务

58 | 62 |

信道服务

63 | 66 | 67 | 68 |
69 | 70 | -------------------------------------------------------------------------------- /system/language/english/number_lang.php: -------------------------------------------------------------------------------- 1 | my_controller/index 50 | | my-controller/my-method -> my_controller/my_method 51 | */ 52 | $route['default_controller'] = 'welcome'; 53 | $route['404_override'] = ''; 54 | $route['translate_uri_dashes'] = FALSE; 55 | -------------------------------------------------------------------------------- /system/database/drivers/sqlite3/sqlite3_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /system/database/drivers/sqlite/sqlite_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /system/database/drivers/pdo/pdo_forge.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /system/database/drivers/odbc/odbc_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /application/config/doctypes.php: -------------------------------------------------------------------------------- 1 | '', 6 | 'xhtml1-strict' => '', 7 | 'xhtml1-trans' => '', 8 | 'xhtml1-frame' => '', 9 | 'xhtml-basic11' => '', 10 | 'html5' => '', 11 | 'html4-strict' => '', 12 | 'html4-trans' => '', 13 | 'html4-frame' => '', 14 | 'mathml1' => '', 15 | 'mathml2' => '', 16 | 'svg10' => '', 17 | 'svg11' => '', 18 | 'svg11-basic' => '', 19 | 'svg11-tiny' => '', 20 | 'xhtml-math-svg-xh' => '', 21 | 'xhtml-math-svg-sh' => '', 22 | 'xhtml-rdfa-1' => '', 23 | 'xhtml-rdfa-2' => '' 24 | ); 25 | -------------------------------------------------------------------------------- /system/libraries/Session/SessionHandlerInterface.php: -------------------------------------------------------------------------------- 1 | application/controllers/Welcome.php 68 | 69 | // 登录 70 | /login => application/controllers/Login.php 71 | 72 | // 获取微信用户信息 73 | /user => application/controllers/User.php 74 | 75 | // 处理信道请求 76 | /tunnel => application/controllers/Tunnel.php 77 | ``` 78 | 79 | `application/business/ChatTunnelHandler.php` 是业务处理信道请求的示例代码。 80 | 81 | `application/helpers/general_helper.php` 包含简单的 `debug` 方法用于打印日志。 82 | 83 | 84 | ## 更新 SDK 版本 85 | 进入目录 `/data/release/php-weapp-demo`,然后执行命令 `composer update` 即可。 86 | 87 | 88 | ## 如果在demo基础上开发 89 | 将自己开发的接口放到如下目录下即可生效 90 | /data/release/php-weapp-demo/application/controllers/ 91 | 92 | ## 重启服务: 93 |        service php-fpm restart 94 | 95 | -------------------------------------------------------------------------------- /system/database/drivers/oci8/oci8_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 66 | } 67 | 68 | } 69 | -------------------------------------------------------------------------------- /system/database/drivers/pdo/subdrivers/pdo_odbc_forge.php: -------------------------------------------------------------------------------- 1 | db->hostname, $this->db->username, $this->db->password)) 58 | { 59 | $res = ibase_backup($service, $this->db->database, $filename.'.fbk'); 60 | 61 | // Close the service connection 62 | ibase_service_detach($service); 63 | return $res; 64 | } 65 | 66 | return FALSE; 67 | } 68 | 69 | } 70 | -------------------------------------------------------------------------------- /system/language/english/unit_test_lang.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /system/database/drivers/sqlsrv/sqlsrv_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /system/database/drivers/postgre/postgre_utility.php: -------------------------------------------------------------------------------- 1 | db->display_error('db_unsupported_feature'); 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /system/core/Model.php: -------------------------------------------------------------------------------- 1 | $key; 78 | } 79 | 80 | } 81 | -------------------------------------------------------------------------------- /system/helpers/language_helper.php: -------------------------------------------------------------------------------- 1 | lang->line($line); 67 | 68 | if ($for !== '') 69 | { 70 | $line = ''; 71 | } 72 | 73 | return $line; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /system/database/drivers/odbc/odbc_forge.php: -------------------------------------------------------------------------------- 1 | db->data_cache['db_names'])) 57 | { 58 | return $this->db->data_cache['db_names']; 59 | } 60 | 61 | return $this->db->data_cache['db_names'] = cubrid_list_dbs($this->db->conn_id); 62 | } 63 | 64 | // -------------------------------------------------------------------- 65 | 66 | /** 67 | * CUBRID Export 68 | * 69 | * @param array Preferences 70 | * @return mixed 71 | */ 72 | protected function _backup($params = array()) 73 | { 74 | // No SQL based support in CUBRID as of version 8.4.0. Database or 75 | // table backup can be performed using CUBRID Manager 76 | // database administration tool. 77 | return $this->db->display_error('db_unsupported_feature'); 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /system/language/english/profiler_lang.php: -------------------------------------------------------------------------------- 1 | 'ae', 14 | '/ö|œ/' => 'oe', 15 | '/ü/' => 'ue', 16 | '/Ä/' => 'Ae', 17 | '/Ü/' => 'Ue', 18 | '/Ö/' => 'Oe', 19 | '/À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ|Α|Ά|Ả|Ạ|Ầ|Ẫ|Ẩ|Ậ|Ằ|Ắ|Ẵ|Ẳ|Ặ|А/' => 'A', 20 | '/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª|α|ά|ả|ạ|ầ|ấ|ẫ|ẩ|ậ|ằ|ắ|ẵ|ẳ|ặ|а/' => 'a', 21 | '/Б/' => 'B', 22 | '/б/' => 'b', 23 | '/Ç|Ć|Ĉ|Ċ|Č/' => 'C', 24 | '/ç|ć|ĉ|ċ|č/' => 'c', 25 | '/Д/' => 'D', 26 | '/д/' => 'd', 27 | '/Ð|Ď|Đ|Δ/' => 'Dj', 28 | '/ð|ď|đ|δ/' => 'dj', 29 | '/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě|Ε|Έ|Ẽ|Ẻ|Ẹ|Ề|Ế|Ễ|Ể|Ệ|Е|Э/' => 'E', 30 | '/è|é|ê|ë|ē|ĕ|ė|ę|ě|έ|ε|ẽ|ẻ|ẹ|ề|ế|ễ|ể|ệ|е|э/' => 'e', 31 | '/Ф/' => 'F', 32 | '/ф/' => 'f', 33 | '/Ĝ|Ğ|Ġ|Ģ|Γ|Г|Ґ/' => 'G', 34 | '/ĝ|ğ|ġ|ģ|γ|г|ґ/' => 'g', 35 | '/Ĥ|Ħ/' => 'H', 36 | '/ĥ|ħ/' => 'h', 37 | '/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ|Η|Ή|Ί|Ι|Ϊ|Ỉ|Ị|И|Ы/' => 'I', 38 | '/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı|η|ή|ί|ι|ϊ|ỉ|ị|и|ы|ї/' => 'i', 39 | '/Ĵ/' => 'J', 40 | '/ĵ/' => 'j', 41 | '/Ķ|Κ|К/' => 'K', 42 | '/ķ|κ|к/' => 'k', 43 | '/Ĺ|Ļ|Ľ|Ŀ|Ł|Λ|Л/' => 'L', 44 | '/ĺ|ļ|ľ|ŀ|ł|λ|л/' => 'l', 45 | '/М/' => 'M', 46 | '/м/' => 'm', 47 | '/Ñ|Ń|Ņ|Ň|Ν|Н/' => 'N', 48 | '/ñ|ń|ņ|ň|ʼn|ν|н/' => 'n', 49 | '/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ|Ο|Ό|Ω|Ώ|Ỏ|Ọ|Ồ|Ố|Ỗ|Ổ|Ộ|Ờ|Ớ|Ỡ|Ở|Ợ|О/' => 'O', 50 | '/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º|ο|ό|ω|ώ|ỏ|ọ|ồ|ố|ỗ|ổ|ộ|ờ|ớ|ỡ|ở|ợ|о/' => 'o', 51 | '/П/' => 'P', 52 | '/п/' => 'p', 53 | '/Ŕ|Ŗ|Ř|Ρ|Р/' => 'R', 54 | '/ŕ|ŗ|ř|ρ|р/' => 'r', 55 | '/Ś|Ŝ|Ş|Ș|Š|Σ|С/' => 'S', 56 | '/ś|ŝ|ş|ș|š|ſ|σ|ς|с/' => 's', 57 | '/Ț|Ţ|Ť|Ŧ|τ|Т/' => 'T', 58 | '/ț|ţ|ť|ŧ|т/' => 't', 59 | '/Þ|þ/' => 'th', 60 | '/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ|Ũ|Ủ|Ụ|Ừ|Ứ|Ữ|Ử|Ự|У/' => 'U', 61 | '/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ|υ|ύ|ϋ|ủ|ụ|ừ|ứ|ữ|ử|ự|у/' => 'u', 62 | '/Ý|Ÿ|Ŷ|Υ|Ύ|Ϋ|Ỳ|Ỹ|Ỷ|Ỵ|Й/' => 'Y', 63 | '/ý|ÿ|ŷ|ỳ|ỹ|ỷ|ỵ|й/' => 'y', 64 | '/В/' => 'V', 65 | '/в/' => 'v', 66 | '/Ŵ/' => 'W', 67 | '/ŵ/' => 'w', 68 | '/Ź|Ż|Ž|Ζ|З/' => 'Z', 69 | '/ź|ż|ž|ζ|з/' => 'z', 70 | '/Æ|Ǽ/' => 'AE', 71 | '/ß/' => 'ss', 72 | '/IJ/' => 'IJ', 73 | '/ij/' => 'ij', 74 | '/Œ/' => 'OE', 75 | '/ƒ/' => 'f', 76 | '/ξ/' => 'ks', 77 | '/π/' => 'p', 78 | '/β/' => 'v', 79 | '/μ/' => 'm', 80 | '/ψ/' => 'ps', 81 | '/Ё/' => 'Yo', 82 | '/ё/' => 'yo', 83 | '/Є/' => 'Ye', 84 | '/є/' => 'ye', 85 | '/Ї/' => 'Yi', 86 | '/Ж/' => 'Zh', 87 | '/ж/' => 'zh', 88 | '/Х/' => 'Kh', 89 | '/х/' => 'kh', 90 | '/Ц/' => 'Ts', 91 | '/ц/' => 'ts', 92 | '/Ч/' => 'Ch', 93 | '/ч/' => 'ch', 94 | '/Ш/' => 'Sh', 95 | '/ш/' => 'sh', 96 | '/Щ/' => 'Shch', 97 | '/щ/' => 'shch', 98 | '/Ъ|ъ|Ь|ь/' => '', 99 | '/Ю/' => 'Yu', 100 | '/ю/' => 'yu', 101 | '/Я/' => 'Ya', 102 | '/я/' => 'ya' 103 | ); 104 | -------------------------------------------------------------------------------- /system/helpers/email_helper.php: -------------------------------------------------------------------------------- 1 | ', '"', "'", '-'), 76 | array('&', '<', '>', '"', ''', '-'), 77 | $str 78 | ); 79 | 80 | // Decode the temp markers back to entities 81 | $str = preg_replace('/'.$temp.'(\d+);/', '&#\\1;', $str); 82 | 83 | if ($protect_all === TRUE) 84 | { 85 | return preg_replace('/'.$temp.'(\w+);/', '&\\1;', $str); 86 | } 87 | 88 | return $str; 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /system/core/Controller.php: -------------------------------------------------------------------------------- 1 | $class) 74 | { 75 | $this->$var =& load_class($class); 76 | } 77 | 78 | $this->load =& load_class('Loader', 'core'); 79 | $this->load->initialize(); 80 | log_message('info', 'Controller Class Initialized'); 81 | } 82 | 83 | // -------------------------------------------------------------------- 84 | 85 | /** 86 | * Get the CI singleton 87 | * 88 | * @static 89 | * @return object 90 | */ 91 | public static function &get_instance() 92 | { 93 | return self::$instance; 94 | } 95 | 96 | } 97 | -------------------------------------------------------------------------------- /application/config/migration.php: -------------------------------------------------------------------------------- 1 | migration->current() this is the version that schema will 69 | | be upgraded / downgraded to. 70 | | 71 | */ 72 | $config['migration_version'] = 0; 73 | 74 | /* 75 | |-------------------------------------------------------------------------- 76 | | Migrations Path 77 | |-------------------------------------------------------------------------- 78 | | 79 | | Path to your migrations folder. 80 | | Typically, it will be within your application path. 81 | | Also, writing permission is required within the migrations path. 82 | | 83 | */ 84 | $config['migration_path'] = APPPATH.'migrations/'; 85 | -------------------------------------------------------------------------------- /system/language/english/calendar_lang.php: -------------------------------------------------------------------------------- 1 | lang->load('number'); 65 | 66 | if ($num >= 1000000000000) 67 | { 68 | $num = round($num / 1099511627776, $precision); 69 | $unit = $CI->lang->line('terabyte_abbr'); 70 | } 71 | elseif ($num >= 1000000000) 72 | { 73 | $num = round($num / 1073741824, $precision); 74 | $unit = $CI->lang->line('gigabyte_abbr'); 75 | } 76 | elseif ($num >= 1000000) 77 | { 78 | $num = round($num / 1048576, $precision); 79 | $unit = $CI->lang->line('megabyte_abbr'); 80 | } 81 | elseif ($num >= 1000) 82 | { 83 | $num = round($num / 1024, $precision); 84 | $unit = $CI->lang->line('kilobyte_abbr'); 85 | } 86 | else 87 | { 88 | $unit = $CI->lang->line('bytes'); 89 | return number_format($num).' '.$unit; 90 | } 91 | 92 | return number_format($num, $precision).' '.$unit; 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /application/config/smileys.php: -------------------------------------------------------------------------------- 1 | array('grin.gif', '19', '19', 'grin'), 21 | ':lol:' => array('lol.gif', '19', '19', 'LOL'), 22 | ':cheese:' => array('cheese.gif', '19', '19', 'cheese'), 23 | ':)' => array('smile.gif', '19', '19', 'smile'), 24 | ';-)' => array('wink.gif', '19', '19', 'wink'), 25 | ';)' => array('wink.gif', '19', '19', 'wink'), 26 | ':smirk:' => array('smirk.gif', '19', '19', 'smirk'), 27 | ':roll:' => array('rolleyes.gif', '19', '19', 'rolleyes'), 28 | ':-S' => array('confused.gif', '19', '19', 'confused'), 29 | ':wow:' => array('surprise.gif', '19', '19', 'surprised'), 30 | ':bug:' => array('bigsurprise.gif', '19', '19', 'big surprise'), 31 | ':-P' => array('tongue_laugh.gif', '19', '19', 'tongue laugh'), 32 | '%-P' => array('tongue_rolleye.gif', '19', '19', 'tongue rolleye'), 33 | ';-P' => array('tongue_wink.gif', '19', '19', 'tongue wink'), 34 | ':P' => array('raspberry.gif', '19', '19', 'raspberry'), 35 | ':blank:' => array('blank.gif', '19', '19', 'blank stare'), 36 | ':long:' => array('longface.gif', '19', '19', 'long face'), 37 | ':ohh:' => array('ohh.gif', '19', '19', 'ohh'), 38 | ':grrr:' => array('grrr.gif', '19', '19', 'grrr'), 39 | ':gulp:' => array('gulp.gif', '19', '19', 'gulp'), 40 | '8-/' => array('ohoh.gif', '19', '19', 'oh oh'), 41 | ':down:' => array('downer.gif', '19', '19', 'downer'), 42 | ':red:' => array('embarrassed.gif', '19', '19', 'red face'), 43 | ':sick:' => array('sick.gif', '19', '19', 'sick'), 44 | ':shut:' => array('shuteye.gif', '19', '19', 'shut eye'), 45 | ':-/' => array('hmm.gif', '19', '19', 'hmmm'), 46 | '>:(' => array('mad.gif', '19', '19', 'mad'), 47 | ':mad:' => array('mad.gif', '19', '19', 'mad'), 48 | '>:-(' => array('angry.gif', '19', '19', 'angry'), 49 | ':angry:' => array('angry.gif', '19', '19', 'angry'), 50 | ':zip:' => array('zip.gif', '19', '19', 'zipper'), 51 | ':kiss:' => array('kiss.gif', '19', '19', 'kiss'), 52 | ':ahhh:' => array('shock.gif', '19', '19', 'shock'), 53 | ':coolsmile:' => array('shade_smile.gif', '19', '19', 'cool smile'), 54 | ':coolsmirk:' => array('shade_smirk.gif', '19', '19', 'cool smirk'), 55 | ':coolgrin:' => array('shade_grin.gif', '19', '19', 'cool grin'), 56 | ':coolhmm:' => array('shade_hmm.gif', '19', '19', 'cool hmm'), 57 | ':coolmad:' => array('shade_mad.gif', '19', '19', 'cool mad'), 58 | ':coolcheese:' => array('shade_cheese.gif', '19', '19', 'cool cheese'), 59 | ':vampire:' => array('vampire.gif', '19', '19', 'vampire'), 60 | ':snake:' => array('snake.gif', '19', '19', 'snake'), 61 | ':exclaim:' => array('exclaim.gif', '19', '19', 'exclaim'), 62 | ':question:' => array('question.gif', '19', '19', 'question') 63 | 64 | ); 65 | -------------------------------------------------------------------------------- /system/language/english/upload_lang.php: -------------------------------------------------------------------------------- 1 | load->library('typography'); 64 | return $CI->typography->nl2br_except_pre($str); 65 | } 66 | } 67 | 68 | // ------------------------------------------------------------------------ 69 | 70 | if ( ! function_exists('auto_typography')) 71 | { 72 | /** 73 | * Auto Typography Wrapper Function 74 | * 75 | * @param string $str 76 | * @param bool $reduce_linebreaks = FALSE whether to reduce multiple instances of double newlines to two 77 | * @return string 78 | */ 79 | function auto_typography($str, $reduce_linebreaks = FALSE) 80 | { 81 | $CI =& get_instance(); 82 | $CI->load->library('typography'); 83 | return $CI->typography->auto_typography($str, $reduce_linebreaks); 84 | } 85 | } 86 | 87 | // -------------------------------------------------------------------- 88 | 89 | if ( ! function_exists('entity_decode')) 90 | { 91 | /** 92 | * HTML Entities Decode 93 | * 94 | * This function is a replacement for html_entity_decode() 95 | * 96 | * @param string 97 | * @param string 98 | * @return string 99 | */ 100 | function entity_decode($str, $charset = NULL) 101 | { 102 | return get_instance()->security->entity_decode($str, $charset); 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /system/helpers/directory_helper.php: -------------------------------------------------------------------------------- 1 | 0) && is_dir($source_dir.$file)) 86 | { 87 | $filedata[$file] = directory_map($source_dir.$file, $new_depth, $hidden); 88 | } 89 | else 90 | { 91 | $filedata[] = $file; 92 | } 93 | } 94 | 95 | closedir($fp); 96 | return $filedata; 97 | } 98 | 99 | return FALSE; 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /system/helpers/array_helper.php: -------------------------------------------------------------------------------- 1 | input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure, $httponly); 74 | } 75 | } 76 | 77 | // -------------------------------------------------------------------- 78 | 79 | if ( ! function_exists('get_cookie')) 80 | { 81 | /** 82 | * Fetch an item from the COOKIE array 83 | * 84 | * @param string 85 | * @param bool 86 | * @return mixed 87 | */ 88 | function get_cookie($index, $xss_clean = NULL) 89 | { 90 | is_bool($xss_clean) OR $xss_clean = (config_item('global_xss_filtering') === TRUE); 91 | $prefix = isset($_COOKIE[$index]) ? '' : config_item('cookie_prefix'); 92 | return get_instance()->input->cookie($prefix.$index, $xss_clean); 93 | } 94 | } 95 | 96 | // -------------------------------------------------------------------- 97 | 98 | if ( ! function_exists('delete_cookie')) 99 | { 100 | /** 101 | * Delete a COOKIE 102 | * 103 | * @param mixed 104 | * @param string the cookie domain. Usually: .yourdomain.com 105 | * @param string the cookie path 106 | * @param string the cookie prefix 107 | * @return void 108 | */ 109 | function delete_cookie($name, $domain = '', $path = '/', $prefix = '') 110 | { 111 | set_cookie($name, '', '', $domain, $path, $prefix); 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /system/helpers/security_helper.php: -------------------------------------------------------------------------------- 1 | security->xss_clean($str, $is_image); 64 | } 65 | } 66 | 67 | // ------------------------------------------------------------------------ 68 | 69 | if ( ! function_exists('sanitize_filename')) 70 | { 71 | /** 72 | * Sanitize Filename 73 | * 74 | * @param string 75 | * @return string 76 | */ 77 | function sanitize_filename($filename) 78 | { 79 | return get_instance()->security->sanitize_filename($filename); 80 | } 81 | } 82 | 83 | // -------------------------------------------------------------------- 84 | 85 | if ( ! function_exists('do_hash')) 86 | { 87 | /** 88 | * Hash encode a string 89 | * 90 | * @todo Remove in version 3.1+. 91 | * @deprecated 3.0.0 Use PHP's native hash() instead. 92 | * @param string $str 93 | * @param string $type = 'sha1' 94 | * @return string 95 | */ 96 | function do_hash($str, $type = 'sha1') 97 | { 98 | if ( ! in_array(strtolower($type), hash_algos())) 99 | { 100 | $type = 'md5'; 101 | } 102 | 103 | return hash($type, $str); 104 | } 105 | } 106 | 107 | // ------------------------------------------------------------------------ 108 | 109 | if ( ! function_exists('strip_image_tags')) 110 | { 111 | /** 112 | * Strip Image Tags 113 | * 114 | * @param string 115 | * @return string 116 | */ 117 | function strip_image_tags($str) 118 | { 119 | return get_instance()->security->strip_image_tags($str); 120 | } 121 | } 122 | 123 | // ------------------------------------------------------------------------ 124 | 125 | if ( ! function_exists('encode_php_tags')) 126 | { 127 | /** 128 | * Convert PHP tags to entities 129 | * 130 | * @param string 131 | * @return string 132 | */ 133 | function encode_php_tags($str) 134 | { 135 | return str_replace(array(''), array('<?', '?>'), $str); 136 | } 137 | } 138 | -------------------------------------------------------------------------------- /application/config/constants.php: -------------------------------------------------------------------------------- 1 | marker[$name] = microtime(TRUE); 73 | } 74 | 75 | // -------------------------------------------------------------------- 76 | 77 | /** 78 | * Elapsed time 79 | * 80 | * Calculates the time difference between two marked points. 81 | * 82 | * If the first parameter is empty this function instead returns the 83 | * {elapsed_time} pseudo-variable. This permits the full system 84 | * execution time to be shown in a template. The output class will 85 | * swap the real value for this variable. 86 | * 87 | * @param string $point1 A particular marked point 88 | * @param string $point2 A particular marked point 89 | * @param int $decimals Number of decimal places 90 | * 91 | * @return string Calculated elapsed time on success, 92 | * an '{elapsed_string}' if $point1 is empty 93 | * or an empty string if $point1 is not found. 94 | */ 95 | public function elapsed_time($point1 = '', $point2 = '', $decimals = 4) 96 | { 97 | if ($point1 === '') 98 | { 99 | return '{elapsed_time}'; 100 | } 101 | 102 | if ( ! isset($this->marker[$point1])) 103 | { 104 | return ''; 105 | } 106 | 107 | if ( ! isset($this->marker[$point2])) 108 | { 109 | $this->marker[$point2] = microtime(TRUE); 110 | } 111 | 112 | return number_format($this->marker[$point2] - $this->marker[$point1], $decimals); 113 | } 114 | 115 | // -------------------------------------------------------------------- 116 | 117 | /** 118 | * Memory Usage 119 | * 120 | * Simply returns the {memory_usage} marker. 121 | * 122 | * This permits it to be put it anywhere in a template 123 | * without the memory being calculated until the end. 124 | * The output class will swap the real value for this variable. 125 | * 126 | * @return string '{memory_usage}' 127 | */ 128 | public function memory_usage() 129 | { 130 | return '{memory_usage}'; 131 | } 132 | 133 | } 134 | -------------------------------------------------------------------------------- /application/config/autoload.php: -------------------------------------------------------------------------------- 1 | 'ua'); 60 | */ 61 | $autoload['libraries'] = array(); 62 | 63 | /* 64 | | ------------------------------------------------------------------- 65 | | Auto-load Drivers 66 | | ------------------------------------------------------------------- 67 | | These classes are located in system/libraries/ or in your 68 | | application/libraries/ directory, but are also placed inside their 69 | | own subdirectory and they extend the CI_Driver_Library class. They 70 | | offer multiple interchangeable driver options. 71 | | 72 | | Prototype: 73 | | 74 | | $autoload['drivers'] = array('cache'); 75 | | 76 | | You can also supply an alternative property name to be assigned in 77 | | the controller: 78 | | 79 | | $autoload['drivers'] = array('cache' => 'cch'); 80 | | 81 | */ 82 | $autoload['drivers'] = array(); 83 | 84 | /* 85 | | ------------------------------------------------------------------- 86 | | Auto-load Helper Files 87 | | ------------------------------------------------------------------- 88 | | Prototype: 89 | | 90 | | $autoload['helper'] = array('url', 'file'); 91 | */ 92 | $autoload['helper'] = array('general'); 93 | 94 | /* 95 | | ------------------------------------------------------------------- 96 | | Auto-load Config files 97 | | ------------------------------------------------------------------- 98 | | Prototype: 99 | | 100 | | $autoload['config'] = array('config1', 'config2'); 101 | | 102 | | NOTE: This item is intended for use ONLY if you have created custom 103 | | config files. Otherwise, leave it blank. 104 | | 105 | */ 106 | $autoload['config'] = array(); 107 | 108 | /* 109 | | ------------------------------------------------------------------- 110 | | Auto-load Language files 111 | | ------------------------------------------------------------------- 112 | | Prototype: 113 | | 114 | | $autoload['language'] = array('lang1', 'lang2'); 115 | | 116 | | NOTE: Do not include the "_lang" part of your file. For example 117 | | "codeigniter_lang.php" would be referenced as array('codeigniter'); 118 | | 119 | */ 120 | $autoload['language'] = array(); 121 | 122 | /* 123 | | ------------------------------------------------------------------- 124 | | Auto-load Models 125 | | ------------------------------------------------------------------- 126 | | Prototype: 127 | | 128 | | $autoload['model'] = array('first_model', 'second_model'); 129 | | 130 | | You can also supply an alternative model name to be assigned 131 | | in the controller: 132 | | 133 | | $autoload['model'] = array('first_model' => 'first'); 134 | */ 135 | $autoload['model'] = array(); 136 | -------------------------------------------------------------------------------- /system/language/english/form_validation_lang.php: -------------------------------------------------------------------------------- 1 | db->last_query() and profiling of DB queries. 62 | | When you run a query, with this setting set to TRUE (default), 63 | | CodeIgniter will store the SQL statement for debugging purposes. 64 | | However, this may cause high memory usage, especially if you run 65 | | a lot of SQL queries ... disable this to avoid that problem. 66 | | 67 | | The $active_group variable lets you choose which connection group to 68 | | make active. By default there is only one group (the 'default' group). 69 | | 70 | | The $query_builder variables lets you determine whether or not to load 71 | | the query builder class. 72 | */ 73 | $active_group = 'default'; 74 | $query_builder = TRUE; 75 | 76 | $db['default'] = array( 77 | 'dsn' => '', 78 | 'hostname' => 'localhost', 79 | 'username' => '', 80 | 'password' => '', 81 | 'database' => '', 82 | 'dbdriver' => 'mysqli', 83 | 'dbprefix' => '', 84 | 'pconnect' => FALSE, 85 | 'db_debug' => (ENVIRONMENT !== 'production'), 86 | 'cache_on' => FALSE, 87 | 'cachedir' => '', 88 | 'char_set' => 'utf8', 89 | 'dbcollat' => 'utf8_general_ci', 90 | 'swap_pre' => '', 91 | 'encrypt' => FALSE, 92 | 'compress' => FALSE, 93 | 'stricton' => FALSE, 94 | 'failover' => array(), 95 | 'save_queries' => TRUE 96 | ); 97 | -------------------------------------------------------------------------------- /system/database/drivers/pdo/subdrivers/pdo_ibm_forge.php: -------------------------------------------------------------------------------- 1 | 'INTEGER', 63 | 'INT' => 'BIGINT', 64 | 'INTEGER' => 'BIGINT' 65 | ); 66 | 67 | /** 68 | * DEFAULT value representation in CREATE/ALTER TABLE statements 69 | * 70 | * @var string 71 | */ 72 | protected $_default = FALSE; 73 | 74 | // -------------------------------------------------------------------- 75 | 76 | /** 77 | * ALTER TABLE 78 | * 79 | * @param string $alter_type ALTER type 80 | * @param string $table Table name 81 | * @param mixed $field Column definition 82 | * @return string|string[] 83 | */ 84 | protected function _alter_table($alter_type, $table, $field) 85 | { 86 | if ($alter_type === 'CHANGE') 87 | { 88 | $alter_type = 'MODIFY'; 89 | } 90 | 91 | return parent::_alter_table($alter_type, $table, $field); 92 | } 93 | 94 | // -------------------------------------------------------------------- 95 | 96 | /** 97 | * Field attribute TYPE 98 | * 99 | * Performs a data type mapping between different databases. 100 | * 101 | * @param array &$attributes 102 | * @return void 103 | */ 104 | protected function _attr_type(&$attributes) 105 | { 106 | switch (strtoupper($attributes['TYPE'])) 107 | { 108 | case 'TINYINT': 109 | $attributes['TYPE'] = 'SMALLINT'; 110 | $attributes['UNSIGNED'] = FALSE; 111 | return; 112 | case 'MEDIUMINT': 113 | $attributes['TYPE'] = 'INTEGER'; 114 | $attributes['UNSIGNED'] = FALSE; 115 | return; 116 | default: return; 117 | } 118 | } 119 | 120 | // -------------------------------------------------------------------- 121 | 122 | /** 123 | * Field attribute UNIQUE 124 | * 125 | * @param array &$attributes 126 | * @param array &$field 127 | * @return void 128 | */ 129 | protected function _attr_unique(&$attributes, &$field) 130 | { 131 | if ( ! empty($attributes['UNIQUE']) && $attributes['UNIQUE'] === TRUE) 132 | { 133 | $field['unique'] = ' UNIQUE'; 134 | 135 | // UNIQUE must be used with NOT NULL 136 | $field['null'] = ' NOT NULL'; 137 | } 138 | } 139 | 140 | // -------------------------------------------------------------------- 141 | 142 | /** 143 | * Field attribute AUTO_INCREMENT 144 | * 145 | * @param array &$attributes 146 | * @param array &$field 147 | * @return void 148 | */ 149 | protected function _attr_auto_increment(&$attributes, &$field) 150 | { 151 | // Not supported 152 | } 153 | 154 | } 155 | -------------------------------------------------------------------------------- /system/database/drivers/ibase/ibase_result.php: -------------------------------------------------------------------------------- 1 | result_id); 59 | } 60 | 61 | // -------------------------------------------------------------------- 62 | 63 | /** 64 | * Fetch Field Names 65 | * 66 | * Generates an array of column names 67 | * 68 | * @return array 69 | */ 70 | public function list_fields() 71 | { 72 | $field_names = array(); 73 | for ($i = 0, $num_fields = $this->num_fields(); $i < $num_fields; $i++) 74 | { 75 | $info = ibase_field_info($this->result_id, $i); 76 | $field_names[] = $info['name']; 77 | } 78 | 79 | return $field_names; 80 | } 81 | 82 | // -------------------------------------------------------------------- 83 | 84 | /** 85 | * Field data 86 | * 87 | * Generates an array of objects containing field meta-data 88 | * 89 | * @return array 90 | */ 91 | public function field_data() 92 | { 93 | $retval = array(); 94 | for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) 95 | { 96 | $info = ibase_field_info($this->result_id, $i); 97 | 98 | $retval[$i] = new stdClass(); 99 | $retval[$i]->name = $info['name']; 100 | $retval[$i]->type = $info['type']; 101 | $retval[$i]->max_length = $info['length']; 102 | } 103 | 104 | return $retval; 105 | } 106 | 107 | // -------------------------------------------------------------------- 108 | 109 | /** 110 | * Free the result 111 | * 112 | * @return void 113 | */ 114 | public function free_result() 115 | { 116 | ibase_free_result($this->result_id); 117 | } 118 | 119 | // -------------------------------------------------------------------- 120 | 121 | /** 122 | * Result - associative array 123 | * 124 | * Returns the result set as an array 125 | * 126 | * @return array 127 | */ 128 | protected function _fetch_assoc() 129 | { 130 | return ibase_fetch_assoc($this->result_id, IBASE_FETCH_BLOBS); 131 | } 132 | 133 | // -------------------------------------------------------------------- 134 | 135 | /** 136 | * Result - object 137 | * 138 | * Returns the result set as an object 139 | * 140 | * @param string $class_name 141 | * @return object 142 | */ 143 | protected function _fetch_object($class_name = 'stdClass') 144 | { 145 | $row = ibase_fetch_object($this->result_id, IBASE_FETCH_BLOBS); 146 | 147 | if ($class_name === 'stdClass' OR ! $row) 148 | { 149 | return $row; 150 | } 151 | 152 | $class_name = new $class_name(); 153 | foreach ($row as $key => $value) 154 | { 155 | $class_name->$key = $value; 156 | } 157 | 158 | return $class_name; 159 | } 160 | 161 | } 162 | -------------------------------------------------------------------------------- /system/database/drivers/sqlsrv/sqlsrv_forge.php: -------------------------------------------------------------------------------- 1 | 'SMALLINT', 70 | 'SMALLINT' => 'INT', 71 | 'INT' => 'BIGINT', 72 | 'REAL' => 'FLOAT' 73 | ); 74 | 75 | // -------------------------------------------------------------------- 76 | 77 | /** 78 | * ALTER TABLE 79 | * 80 | * @param string $alter_type ALTER type 81 | * @param string $table Table name 82 | * @param mixed $field Column definition 83 | * @return string|string[] 84 | */ 85 | protected function _alter_table($alter_type, $table, $field) 86 | { 87 | if (in_array($alter_type, array('ADD', 'DROP'), TRUE)) 88 | { 89 | return parent::_alter_table($alter_type, $table, $field); 90 | } 91 | 92 | $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table).' ALTER COLUMN '; 93 | $sqls = array(); 94 | for ($i = 0, $c = count($field); $i < $c; $i++) 95 | { 96 | $sqls[] = $sql.$this->_process_column($field[$i]); 97 | } 98 | 99 | return $sqls; 100 | } 101 | 102 | // -------------------------------------------------------------------- 103 | 104 | /** 105 | * Field attribute TYPE 106 | * 107 | * Performs a data type mapping between different databases. 108 | * 109 | * @param array &$attributes 110 | * @return void 111 | */ 112 | protected function _attr_type(&$attributes) 113 | { 114 | if (isset($attributes['CONSTRAINT']) && strpos($attributes['TYPE'], 'INT') !== FALSE) 115 | { 116 | unset($attributes['CONSTRAINT']); 117 | } 118 | 119 | switch (strtoupper($attributes['TYPE'])) 120 | { 121 | case 'MEDIUMINT': 122 | $attributes['TYPE'] = 'INTEGER'; 123 | $attributes['UNSIGNED'] = FALSE; 124 | return; 125 | case 'INTEGER': 126 | $attributes['TYPE'] = 'INT'; 127 | return; 128 | default: return; 129 | } 130 | } 131 | 132 | // -------------------------------------------------------------------- 133 | 134 | /** 135 | * Field attribute AUTO_INCREMENT 136 | * 137 | * @param array &$attributes 138 | * @param array &$field 139 | * @return void 140 | */ 141 | protected function _attr_auto_increment(&$attributes, &$field) 142 | { 143 | if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'int') !== FALSE) 144 | { 145 | $field['auto_increment'] = ' IDENTITY(1,1)'; 146 | } 147 | } 148 | 149 | } 150 | -------------------------------------------------------------------------------- /system/database/drivers/pdo/subdrivers/pdo_dblib_forge.php: -------------------------------------------------------------------------------- 1 | 'SMALLINT', 70 | 'SMALLINT' => 'INT', 71 | 'INT' => 'BIGINT', 72 | 'REAL' => 'FLOAT' 73 | ); 74 | 75 | // -------------------------------------------------------------------- 76 | 77 | /** 78 | * ALTER TABLE 79 | * 80 | * @param string $alter_type ALTER type 81 | * @param string $table Table name 82 | * @param mixed $field Column definition 83 | * @return string|string[] 84 | */ 85 | protected function _alter_table($alter_type, $table, $field) 86 | { 87 | if (in_array($alter_type, array('ADD', 'DROP'), TRUE)) 88 | { 89 | return parent::_alter_table($alter_type, $table, $field); 90 | } 91 | 92 | $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table).' ALTER COLUMN '; 93 | $sqls = array(); 94 | for ($i = 0, $c = count($field); $i < $c; $i++) 95 | { 96 | $sqls[] = $sql.$this->_process_column($field[$i]); 97 | } 98 | 99 | return $sqls; 100 | } 101 | 102 | // -------------------------------------------------------------------- 103 | 104 | /** 105 | * Field attribute TYPE 106 | * 107 | * Performs a data type mapping between different databases. 108 | * 109 | * @param array &$attributes 110 | * @return void 111 | */ 112 | protected function _attr_type(&$attributes) 113 | { 114 | if (isset($attributes['CONSTRAINT']) && strpos($attributes['TYPE'], 'INT') !== FALSE) 115 | { 116 | unset($attributes['CONSTRAINT']); 117 | } 118 | 119 | switch (strtoupper($attributes['TYPE'])) 120 | { 121 | case 'MEDIUMINT': 122 | $attributes['TYPE'] = 'INTEGER'; 123 | $attributes['UNSIGNED'] = FALSE; 124 | return; 125 | case 'INTEGER': 126 | $attributes['TYPE'] = 'INT'; 127 | return; 128 | default: return; 129 | } 130 | } 131 | 132 | // -------------------------------------------------------------------- 133 | 134 | /** 135 | * Field attribute AUTO_INCREMENT 136 | * 137 | * @param array &$attributes 138 | * @param array &$field 139 | * @return void 140 | */ 141 | protected function _attr_auto_increment(&$attributes, &$field) 142 | { 143 | if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'int') !== FALSE) 144 | { 145 | $field['auto_increment'] = ' IDENTITY(1,1)'; 146 | } 147 | } 148 | 149 | } 150 | -------------------------------------------------------------------------------- /system/database/drivers/pdo/subdrivers/pdo_sqlsrv_forge.php: -------------------------------------------------------------------------------- 1 | 'SMALLINT', 70 | 'SMALLINT' => 'INT', 71 | 'INT' => 'BIGINT', 72 | 'REAL' => 'FLOAT' 73 | ); 74 | 75 | // -------------------------------------------------------------------- 76 | 77 | /** 78 | * ALTER TABLE 79 | * 80 | * @param string $alter_type ALTER type 81 | * @param string $table Table name 82 | * @param mixed $field Column definition 83 | * @return string|string[] 84 | */ 85 | protected function _alter_table($alter_type, $table, $field) 86 | { 87 | if (in_array($alter_type, array('ADD', 'DROP'), TRUE)) 88 | { 89 | return parent::_alter_table($alter_type, $table, $field); 90 | } 91 | 92 | $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table).' ALTER COLUMN '; 93 | $sqls = array(); 94 | for ($i = 0, $c = count($field); $i < $c; $i++) 95 | { 96 | $sqls[] = $sql.$this->_process_column($field[$i]); 97 | } 98 | 99 | return $sqls; 100 | } 101 | 102 | // -------------------------------------------------------------------- 103 | 104 | /** 105 | * Field attribute TYPE 106 | * 107 | * Performs a data type mapping between different databases. 108 | * 109 | * @param array &$attributes 110 | * @return void 111 | */ 112 | protected function _attr_type(&$attributes) 113 | { 114 | if (isset($attributes['CONSTRAINT']) && strpos($attributes['TYPE'], 'INT') !== FALSE) 115 | { 116 | unset($attributes['CONSTRAINT']); 117 | } 118 | 119 | switch (strtoupper($attributes['TYPE'])) 120 | { 121 | case 'MEDIUMINT': 122 | $attributes['TYPE'] = 'INTEGER'; 123 | $attributes['UNSIGNED'] = FALSE; 124 | return; 125 | case 'INTEGER': 126 | $attributes['TYPE'] = 'INT'; 127 | return; 128 | default: return; 129 | } 130 | } 131 | 132 | // -------------------------------------------------------------------- 133 | 134 | /** 135 | * Field attribute AUTO_INCREMENT 136 | * 137 | * @param array &$attributes 138 | * @param array &$field 139 | * @return void 140 | */ 141 | protected function _attr_auto_increment(&$attributes, &$field) 142 | { 143 | if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'int') !== FALSE) 144 | { 145 | $field['auto_increment'] = ' IDENTITY(1,1)'; 146 | } 147 | } 148 | 149 | } 150 | -------------------------------------------------------------------------------- /system/database/drivers/mssql/mssql_forge.php: -------------------------------------------------------------------------------- 1 | 'SMALLINT', 72 | 'SMALLINT' => 'INT', 73 | 'INT' => 'BIGINT', 74 | 'REAL' => 'FLOAT' 75 | ); 76 | 77 | // -------------------------------------------------------------------- 78 | 79 | /** 80 | * ALTER TABLE 81 | * 82 | * @param string $alter_type ALTER type 83 | * @param string $table Table name 84 | * @param mixed $field Column definition 85 | * @return string|string[] 86 | */ 87 | protected function _alter_table($alter_type, $table, $field) 88 | { 89 | if (in_array($alter_type, array('ADD', 'DROP'), TRUE)) 90 | { 91 | return parent::_alter_table($alter_type, $table, $field); 92 | } 93 | 94 | $sql = 'ALTER TABLE '.$this->db->escape_identifiers($table).' ALTER COLUMN '; 95 | $sqls = array(); 96 | for ($i = 0, $c = count($field); $i < $c; $i++) 97 | { 98 | $sqls[] = $sql.$this->_process_column($field[$i]); 99 | } 100 | 101 | return $sqls; 102 | } 103 | 104 | // -------------------------------------------------------------------- 105 | 106 | /** 107 | * Field attribute TYPE 108 | * 109 | * Performs a data type mapping between different databases. 110 | * 111 | * @param array &$attributes 112 | * @return void 113 | */ 114 | protected function _attr_type(&$attributes) 115 | { 116 | if (isset($attributes['CONSTRAINT']) && strpos($attributes['TYPE'], 'INT') !== FALSE) 117 | { 118 | unset($attributes['CONSTRAINT']); 119 | } 120 | 121 | switch (strtoupper($attributes['TYPE'])) 122 | { 123 | case 'MEDIUMINT': 124 | $attributes['TYPE'] = 'INTEGER'; 125 | $attributes['UNSIGNED'] = FALSE; 126 | return; 127 | case 'INTEGER': 128 | $attributes['TYPE'] = 'INT'; 129 | return; 130 | default: return; 131 | } 132 | } 133 | 134 | // -------------------------------------------------------------------- 135 | 136 | /** 137 | * Field attribute AUTO_INCREMENT 138 | * 139 | * @param array &$attributes 140 | * @param array &$field 141 | * @return void 142 | */ 143 | protected function _attr_auto_increment(&$attributes, &$field) 144 | { 145 | if ( ! empty($attributes['AUTO_INCREMENT']) && $attributes['AUTO_INCREMENT'] === TRUE && stripos($field['type'], 'int') !== FALSE) 146 | { 147 | $field['auto_increment'] = ' IDENTITY(1,1)'; 148 | } 149 | } 150 | 151 | } 152 | -------------------------------------------------------------------------------- /system/database/drivers/sqlite/sqlite_result.php: -------------------------------------------------------------------------------- 1 | num_rows) 59 | ? $this->num_rows 60 | : $this->num_rows = @sqlite_num_rows($this->result_id); 61 | } 62 | 63 | // -------------------------------------------------------------------- 64 | 65 | /** 66 | * Number of fields in the result set 67 | * 68 | * @return int 69 | */ 70 | public function num_fields() 71 | { 72 | return @sqlite_num_fields($this->result_id); 73 | } 74 | 75 | // -------------------------------------------------------------------- 76 | 77 | /** 78 | * Fetch Field Names 79 | * 80 | * Generates an array of column names 81 | * 82 | * @return array 83 | */ 84 | public function list_fields() 85 | { 86 | $field_names = array(); 87 | for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) 88 | { 89 | $field_names[$i] = sqlite_field_name($this->result_id, $i); 90 | } 91 | 92 | return $field_names; 93 | } 94 | 95 | // -------------------------------------------------------------------- 96 | 97 | /** 98 | * Field data 99 | * 100 | * Generates an array of objects containing field meta-data 101 | * 102 | * @return array 103 | */ 104 | public function field_data() 105 | { 106 | $retval = array(); 107 | for ($i = 0, $c = $this->num_fields(); $i < $c; $i++) 108 | { 109 | $retval[$i] = new stdClass(); 110 | $retval[$i]->name = sqlite_field_name($this->result_id, $i); 111 | $retval[$i]->type = NULL; 112 | $retval[$i]->max_length = NULL; 113 | } 114 | 115 | return $retval; 116 | } 117 | 118 | // -------------------------------------------------------------------- 119 | 120 | /** 121 | * Data Seek 122 | * 123 | * Moves the internal pointer to the desired offset. We call 124 | * this internally before fetching results to make sure the 125 | * result set starts at zero. 126 | * 127 | * @param int $n 128 | * @return bool 129 | */ 130 | public function data_seek($n = 0) 131 | { 132 | return sqlite_seek($this->result_id, $n); 133 | } 134 | 135 | // -------------------------------------------------------------------- 136 | 137 | /** 138 | * Result - associative array 139 | * 140 | * Returns the result set as an array 141 | * 142 | * @return array 143 | */ 144 | protected function _fetch_assoc() 145 | { 146 | return sqlite_fetch_array($this->result_id); 147 | } 148 | 149 | // -------------------------------------------------------------------- 150 | 151 | /** 152 | * Result - object 153 | * 154 | * Returns the result set as an object 155 | * 156 | * @param string $class_name 157 | * @return object 158 | */ 159 | protected function _fetch_object($class_name = 'stdClass') 160 | { 161 | return sqlite_fetch_object($this->result_id, $class_name); 162 | } 163 | 164 | } 165 | --------------------------------------------------------------------------------