- 浏览: 1090336 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (290)
- php (65)
- javascript (36)
- html5 (31)
- thinkphp (9)
- mysql (16)
- jquery (13)
- node.js (9)
- css (9)
- android 开发 (8)
- flex (5)
- java (3)
- apache (8)
- linux (8)
- git (5)
- web (5)
- wordpress (9)
- mongodb (2)
- redis (5)
- yaf (6)
- python (4)
- big data (1)
- sphinx (1)
- html (1)
- bootstrap (1)
- vue (1)
- laravel (1)
- test (0)
最新评论
-
July01:
推荐用StratoIO打印控件,支持网页、URL、图片、PD、 ...
如何解决非IE浏览器的web打印 -
flashbehappy:
同一个视频,有mp4,ogg两种格式的。在chrome,fir ...
firefox chrom safari 对video标签的区别 -
xmdxzyf:
可以在网站(www.sosoapi.com)上试下在线表单方式 ...
用swagger-php/ui做API测试 -
flex_莫冲:
a2631500 写道"看了源码,设置Backbon ...
backbone与php交互 -
a2631500:
"看了源码,设置Backbone.emulateJS ...
backbone与php交互
為了讓URL支持中文,例如www.xxx.com/廣州/xx 需要在emptyAction中處理捕獲到的廣州/xxxx。但是TP默認的module名稱是不支持中文的。因此需要修改TP框架的PHP核心文件:
App.class.php
修改後的代碼:
將需要支持的中文module名稱添加到config.php CHINESE_MODULE_NAME 配置數組中
這樣就能支持中文URL解析了。
App.class.php
修改後的代碼:
/** * 执行应用程序 * @access public * @return void */ static public function exec() { if(!preg_match('/^[A-Za-z](\w)*$/',MODULE_NAME) ){ // 安全检测 $module = false; }else{ //创建Action控制器实例 $group = defined('GROUP_NAME') && C('APP_GROUP_MODE')==0 ? GROUP_NAME.'/' : ''; //$module = A($group.MODULE_NAME); if(preg_match("/[\x7f-\xff]/", MODULE_NAME)){//中文模式 if(in_array(MODULE_NAME,C('CHINESE_MODULE_NAME'))){ //在指定的中文內 $module = A($group.'isTheEmpty'); }else{ _404(L('_MODULE_NOT_EXIST_').':'.MODULE_NAME); } }else{ $module = A($group.MODULE_NAME); } } if(!$module) { if('4e5e5d7364f443e28fbf0d3ae744a59a' == MODULE_NAME) { header("Content-type:image/png"); exit(base64_decode(App::logo())); } if(function_exists('__hack_module')) { // hack 方式定义扩展模块 返回Action对象 $module = __hack_module(); if(!is_object($module)) { // 不再继续执行 直接返回 return ; } }else{ // 是否定义Empty模块 $module = A($group.'Empty'); if(!$module){ _404(L('_MODULE_NOT_EXIST_').':'.MODULE_NAME); } } } // 获取当前操作名 支持动态路由 $action = C('ACTION_NAME')?C('ACTION_NAME'):ACTION_NAME; $action .= C('ACTION_SUFFIX'); try{ if(!preg_match('/^[A-Za-z](\w)*$/',$action)){ // 非法操作 throw new ReflectionException(); } //执行当前操作 $method = new ReflectionMethod($module, $action); if($method->isPublic()) { $class = new ReflectionClass($module); // 前置操作 if($class->hasMethod('_before_'.$action)) { $before = $class->getMethod('_before_'.$action); if($before->isPublic()) { $before->invoke($module); } } // URL参数绑定检测 if(C('URL_PARAMS_BIND') && $method->getNumberOfParameters()>0){ switch($_SERVER['REQUEST_METHOD']) { case 'POST': $vars = array_merge($_GET,$_POST); break; case 'PUT': parse_str(file_get_contents('php://input'), $vars); break; default: $vars = $_GET; } $params = $method->getParameters(); foreach ($params as $param){ $name = $param->getName(); if(isset($vars[$name])) { $args[] = $vars[$name]; }elseif($param->isDefaultValueAvailable()){ $args[] = $param->getDefaultValue(); }else{ throw_exception(L('_PARAM_ERROR_').':'.$name); } } $method->invokeArgs($module,$args); }else{ $method->invoke($module); } // 后置操作 if($class->hasMethod('_after_'.$action)) { $after = $class->getMethod('_after_'.$action); if($after->isPublic()) { $after->invoke($module); } } }else{ // 操作方法不是Public 抛出异常 throw new ReflectionException(); } } catch (ReflectionException $e) { // 方法调用发生异常后 引导到__call方法处理 $method = new ReflectionMethod($module,'__call'); $method->invokeArgs($module,array($action,'')); } return ; }
將需要支持的中文module名稱添加到config.php CHINESE_MODULE_NAME 配置數組中
這樣就能支持中文URL解析了。
发表评论
-
将博客搬至CSDN
2017-03-28 09:07 632将博客搬至CSDN,尽情期待 -
laravel入門
2017-03-03 16:31 6461 全局安裝 composer global require ... -
导出csv,excel等文件,文件内容错误的问题,需要加上ob_end_clean
2017-03-02 11:54 1556见这个问题: http://stackoverflow.com ... -
facebook graph api从2.6转到2.8的问题处理
2017-02-15 16:30 1144之前一直用facebook 2.6的api,现在想升级到2.8 ... -
php从mysql读取超过200W行的表
2017-01-04 10:09 645需要从一个大表,如user表中读取所有user数据再做整理并導 ... -
一个session失效的伪命题
2016-12-08 18:33 740最近遇到一个问题,一个ajax请求会调用已存在的session ... -
tp5与tp3的区别
2016-11-21 14:33 1547TP5作了很大的改变,更加灵活,没那么臃肿了,加入了一些令人振 ... -
推送消息能不能区分禁止通知和卸载两种类型?
2016-11-18 10:54 1470消息推送ios用了apns,android用的是gcm。推送失 ... -
yaf在命令行模式下出现PHP Fatal error: Class 'Yaf_Application' not found的解决办法
2016-11-11 16:42 2403为了跑个yaf的crontab,执行时报错: PHP Fata ... -
推送emoji表情乱码的解决方法
2016-11-04 17:44 1969推送内容如果包含了emoji表情,需要做以下修改 1 mysq ... -
YAF访问图片等静态资源禁止调用YAF框架的解决办法
2016-10-20 17:55 1624当访问yafpublic 目录下的某个静态资源时,依然会访问y ... -
在线自动协同编辑文本的实现方案
2016-10-14 16:49 1979要实现可以自动在线协同编辑文本的功能。就类似google do ... -
Paypal支付跳转失败的原因及解决办法
2016-09-18 14:27 3618遇到在跳转到paypal支付页面的时候出现502 bad ga ... -
文件格式不是unix导致sed,cat等读取文件后无法正常退出
2016-08-30 14:44 776#!/bin/bash bucket_config=&quo ... -
varnish的使用和PHP清除缓存的技巧
2016-08-11 14:10 1288官網地址 https://www.varnish-cache. ... -
TP在APP_DEBUG=false的情況下,CLI和WEBSITE會共用同一個~runtime.php導致出錯的問題解決辦法
2015-12-14 11:43 841TP若使用了 define('APP_DEBU ... -
TP3.2的try catch如何捕获异常
2015-10-29 17:16 1359参考:http://www.oschina.net/quest ... -
node.js获取php curl post数据req.body为空的处理
2015-09-22 11:43 3965node使用了express4和body-parser来解析p ... -
yaf namespace的使用
2015-08-27 11:32 2318yaf支持namespace。在php.ini 中添加 yaf ... -
yaf 添加phpunittest
2015-08-21 11:16 636首先要讓php在cli下支持yaf wamp下打開D:/wam ...
相关推荐
支持个大TP游戏支持个大TP游戏支持个大TP游戏支持个大TP游戏支持个大TP游戏支持个大TP游戏支持个大TP游戏支持个大TP游戏支持个大TP游戏支持个大TP游戏支持个大TP游戏支持个大TP游戏支持个大TP游戏支持个大TP游戏支持...
【标题】"TP6806_refer_osg_tp6806_" 指的是一个与TP6806相关的SDK开发包,其中包含了OSG(OpenSceneGraph)的参考资料。OSG是一种开源的3D图形库,常用于构建高性能的实时三维图形应用。 【描述】"TP6806 SDK v...
### TP4056中文资料详解 #### 一、概述 TP4056是一款针对单节锂离子电池设计的完整恒流/恒压线性充电器芯片,它集成了必要的充电控制电路,使得设计简单且高效。此款芯片不仅支持USB电源,还兼容适配器电源,并...
这款芯片属于4-in-1 HD-TVI/NTSC/PAL视频解码器系列,其中的TP2853型号是该系列中支持最高500万像素摄像头输入的芯片。 知识点一:同轴高清视频传输技术 同轴高清视频传输技术,又称AHD(Analog High Definition)...
TP支持机型及可用原厂固件说明 本资源主要介绍了TP-LINK机型的U-Boot支持机型及可用原厂固件说明,涵盖了多种硬件配置、内存大小、机型等信息。 一、TP UBOOT支持机型 TP UBOOT支持机型包括: * AR2317 + 88E...
西门子 TP 170 系列触摸屏是工业...综上所述,这份中文手册是西门子 TP 170 系列触摸屏用户的重要参考资料,不仅帮助用户掌握设备的基本操作,还能深入理解其高级功能,从而在工业自动化环境中实现高效、可靠的控制。
总的来说,TP900通讯工具是为TP900设备提供全面支持的关键软件组件,它使得用户能够轻松地与设备交互,实现数据的高效传输和设备的有效管理。对于需要使用TP900设备的工程师和开发者来说,正确安装和使用这套工具是...
首先,当发现西门子TP1200触摸屏上的中文字符显示为乱码时,首先要考虑的是字体设置问题。默认情况下,西门子推荐使用宋体作为中文文本的显示字体,因为宋体已经过西门子技术部门的严格测试,能够确保在触摸屏上正确...
4. **触摸板手势控制**:过TP驱动可能支持多指手势,如两指滑动、三指切换应用等,提供更丰富的交互体验。 TP驱动的更新和优化对于提升用户体验至关重要。有时,用户可能会遇到触摸板反应不灵敏、无法识别手势或者...
在实际操作中,TP900S通讯工具可能会支持多种通信协议,如TCP/IP、MODBUS、CANbus等,以适应不同的网络环境和设备需求。同时,为了确保安全,它可能还包含了加密和身份验证机制,防止未经授权的数据访问。在使用过程...
tp2825 海思hi3516开发板驱动,集成程度高。。。。。。
用于WINDOWS平台下的L2TP客户端工具,支持思科,华为等主要网络设备的L2TP技术,可支持PPTP。。
### 关于TP3064与TP3067单片机PCM CODEC/滤波器的知识点 #### 一、概述 TP3064和TP3067是两款专为数字音频处理设计的单片机PCM CODEC(脉冲编码调制编解码器)/滤波器芯片。这两款芯片主要应用于语音通信领域,如...
【标题】"tp28xx_kdrv_tp9930.tar.gz" 提供的是与 TP2828 和 TP2831 芯片以及 TP9930 模块相关的驱动程序集合,这个压缩包很可能是针对 Linux 操作系统的一个软件包,因为 ".tar.gz" 文件格式在 Linux 环境中常见...
振中TP900S工具和驱动文件2.0是一个专为振中TP900S设备设计的软件包,包含了一系列重要的驱动程序和实用工具,使得用户能够顺利地进行程序烧录和设备的正常连接。这个软件包的发布旨在解决用户在与TP900S交互时可能...
对于选择使用凌越硬件解决方案的项目,TP6800提供了良好的支持,使得开发者能够快速地将摄像头模块集成到现有的系统架构中,减少开发周期和成本。 ### 3. 技术特性 #### 3.1 图像处理能力 作为一款专为USB摄像头...
6. TP2830还支持多种机械封装方式,包括88脚QFN封装,方便在不同的硬件平台上使用。 7. TP2830的控制寄存器包括视频输入状态寄存器、解码控制寄存器、检测状态寄存器、内部状态寄存器、复位控制寄存器、EQ控制...
这个压缩包提供了对CAN TP(传输层)和CAN TP2.0协议的详细解读,以及CAN诊断协议的相关内容,对于初学者来说,中文版的文档能更便于理解和学习。 首先,ISO15765-2是该标准的一部分,主要规定了数据链路层(DLL)...
1. "tp2850.ko" - 这是Linux内核模块的文件扩展名,表示这是一个编译好的驱动程序模块,可以直接加载到Linux内核中,为tp2850硬件提供支持。 2. "cfg.mak" - 可能是配置文件,包含了编译或安装驱动程序时的参数和...
首先,TP2852支持多种高清模拟信号的编解码,这些信号包括但不限于720P、1080P等高清格式。这种能力使得TP2852能够适应多种不同的应用场景,包括但不限于安全监控、视频会议、医疗成像等。 其次,TP2852具有高效率...