php combo,combo.php

/* 不压缩 */

$MINIFY = false;

/* 默认cdn地址 */

$YOUR_CDN = 'http://a.tbcdn.cn/';

require 'jsmin.php';

require 'cssmin.php';

/**

* set e-tag cache

*/

function cache($etag){

$etag = $etag; //标记字符串,可以任意修改

if ($_SERVER['HTTP_IF_NONE_MATCH'] == $etag){

header('Etag:'.$etag,true,304);

exit;

}

else header('Etag:'.$etag);

}

function get_contents($url){

$ch =curl_init($url);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$str =curl_exec($ch);

curl_close($ch);

if ($str !==false) {

return $str;

}else {

return '';

}

}

//得到扩展名

function get_extend($file_name) {

$extend =explode("." , $file_name);

$va=count($extend)-1;

return $extend[$va];

}

/**

* logic begin

*/

$files = array();

//cdn上存在的各种可能的文件类型

$header = array(

'js' => 'Content-Type: application/x-javascript',

'css' => 'Content-Type: text/css',

'jpg' => 'Content-Type: image/jpg',

'gif' => 'Content-Type: image/gif',

'png' => 'Content-Type: image/png',

'jpeg' => 'Content-Type: image/jpeg',

'swf' => 'Content-Type: application/x-shockwave-flash'

);

$type = '';

foreach ($_REQUEST as $k => $v) {

//最常见的替换规则

$k = preg_replace(

array('/_(js|css|gif|png|jpg|jpeg|swf)$/','/yui\/2_8_0r4/','/yui\/3_0_0/','/(\d+)_(\d+)_(\d+)/','/(\d+)_(\d+)/','/_v(\d)/'),

array('.$1','yui/2.8.0r4','yui/3.0.0','$1.$2.$3','$1.$2','.v$1'),

trim($k,'/')

);

//在这里添加转换过头的各种情况

$k = str_replace('global.v5.css','global_v5.css',$k);

$k = str_replace('detail.v2.css','detail_v2.css',$k);

$k = str_replace('cubee_combo','cubee.combo',$k);

if(empty($type)) {

$type = get_extend($k);

}

//文件存在

if(file_exists($k)) {

$in_str = file_get_contents($k);

//处理文本

if(preg_match('/js|css/',$type)){

//$files[] = file_get_contents($k);

if($MINIFY == true && $type == 'js'){

$files[] = JSMin::minify($in_str);

}else if($MINIFY == true && $type == 'css'){

$files[] = cssmin::minify($in_str);

}else{

$files[] = $in_str;

}

}else{

//处理非文本

$files[] = array($in_str);

}

}else{

//文件不存在

$in_sta = file($YOUR_CDN.$k);

//文本的处理

if(preg_match('/js|css/',$type)){

$files[] = '/* '.$k.' */';

$inner_str = join('',$in_sta);

if($MINIFY == true && $type == 'js'){

$files[] = JSMin::minify($inner_str);

}else if($MINIFY == true && $type == 'css'){

$files[] = cssmin::minify($inner_str);

}else{

$files[] = $inner_str;

}

}else{

//非文本的处理

$files[] = $in_sta;

}

}

}

header("Expires: " . date("D, j M Y H:i:s", strtotime("now + 10 years")) ." GMT");

//文本的处理

header($header[$type]);//文件类型

if(preg_match('/js|css/',$type)){

$result = join("\n",$files);

}else{

//非文本的处理

$result = join("",$files[0]);

}

cache(md5($result));//etag,处理Etag是否多余?

echo $result;

?>

一键复制

编辑

Web IDE

原始数据

按行查看

历史

`COMBO.H` 是 wxWidgets (原称 wxWindows) 的一个头文件,它包含了 `wxComboBox` 类的声明。`wxComboBox` 是一个组合控件,它结合了文本输入框和下拉列表,允许用户从一组预定义的选项中选择一个,并可以在文本框中输入自定义内容。 `COMBO.H` 中的内容通常包括: 1. `wxComboBox` 类的结构定义,定义了它的属性、方法和事件处理器。 2. 构造函数,用于初始化组合框对象,可以指定初始值、大小、风格等参数。 3. 常量定义,如默认样式、焦点标志等。 4. 公开成员函数,例如 `Append` 添加选项到下拉列表,`SetStringSelection` 设置选中的字符串,以及 `GetValue` 获取当前选中的值。 5. 事件处理器,比如 `EVT_COMBOBOX`(当用户选择新项时触发) 和 `EVT_TEXT_ENTER`(当用户在文本框内按下回车键时触发)。 在使用 `wxComboBox` 时,你需要包含 `COMBO.H` 文件并在代码中实例化该类,并处理相应的事件来响应用户的交互。例如: ```cpp #include "wx/wx.h" #include "wx/combo.h" class MyFrame : public wxFrame { public: MyFrame() { wxComboBox *comboBox = new wxComboBox(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxCB_READONLY); comboBox->Append("Option 1"); comboBox->Append("Option 2"); // 更多选项添加... comboBox->Bind(wxEVT_COMBOBOX, &MyFrame::OnComboBoxEvent, this); SetSize(400, 100); } private: void OnComboBoxEvent(wxCommandEvent& event) { wxString selectedValue = event.GetString(); // 处理用户选择的操作 } }; // main函数启动应用程序 int main() { wxApp app; MyFrame frame; frame.Show(true); return app.MainLoop(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值