1.phpå¦ä½è¿è¡ä»£ç (phpè¿è¡)
2.1.8 HandyControl:80余种控件使用案例WPF案例代码解析
3.在Linux上使用Wine安装轻聊版的源码QQ的步骤讲解
phpå¦ä½è¿è¡ä»£ç (phpè¿è¡)
PHPç¨åºæä¹è¿è¡
è¿å ¥apache2.2åç®å½htdocsä¸ï¼æ°å»ºphpç¨åºï¼æ¯å¦index.php
代ç å¦ä¸
phpphpinfo();
ç¶åå¨æµè§å¨çªå£è¾å ¥å°±å¯ä»¥è®¿é®è¿ä¸ªäºï¼è¾åºäºæ´ä¸ªPHP.INIçé 置信æ¯åæå¡å¨ä¿¡æ¯ï¼
æä¹ç¨phpå½ä»¤æ§è¡php代ç PHPæ§è¡å½ä»¤çåç§æ¹æ³
æ¹æ³ä¸ï¼ä½¿ç¨execå½æ°æ§è¡ç³»ç»å¤é¨å½ä»¤
ååï¼functionexec(string$command,array[optional]$output,int[optional]
$return_value)
exec("dir",$outPut);
print_r($outPut);
说æï¼ååºåPHPæ§è¡æ件å级ç®å½ä¸çææç®å½åæ件信æ¯ã
ç¥è¯ç¹ï¼execæ§è¡ç³»ç»å¤é¨å½ä»¤æ¶ä¸ä¼è¾åºç»æï¼èæ¯è¿åç»æçæåä¸è¡ï¼å¦æä½ æ³å¾å°ç»æä½ å¯ä»¥ä½¿ç¨ç¬¬äºä¸ªåæ°ï¼è®©å ¶è¾åºå°æå®çæ°ç»ï¼æ¤æ°ç»ä¸ä¸ªè®°å½ä»£è¡¨è¾åºçä¸è¡ï¼å³å¦æè¾åºç»ææè¡ï¼åè¿ä¸ªæ°ç»å°±ææ¡è®°å½ï¼æ以å¦æä½ éè¦åå¤è¾åºè°ç¨ä¸åç³»ç»å¤é¨å½ä»¤çç»æï¼ä½ æ好å¨è¾åºæ¯ä¸æ¡ç³»ç»å¤é¨å½ä»¤ç»ææ¶æ¸ 空è¿ä¸ªæ°ç»ï¼ä»¥é²æ··ä¹±ã第ä¸ä¸ªåæ°ç¨æ¥åå¾å½ä»¤æ§è¡çç¶æç ï¼é常æ§è¡æåé½æ¯è¿å0ã
æ¹æ³äºï¼ä½¿ç¨systemå½æ°æ§è¡ç³»ç»å¤é¨å½ä»¤
ååï¼functionsystem(string$command,int[optional]$return_value)
1
2
3
system("dir");
ç¥è¯ç¹ï¼systemåexecçåºå«å¨äºsystemå¨æ§è¡ç³»ç»å¤é¨å½ä»¤æ¶ï¼ç´æ¥å°ç»æè¾åºå°æ¸¸è§å¨ï¼å¦ææ§è¡å½ä»¤æååè¿åtrueï¼å¦åè¿åfalseã第äºä¸ªåæ°ä¸exec第ä¸ä¸ªåæ°å«ä¹ä¸æ ·ã
æ¹æ³ä¸ï¼ä½¿ç¨å½æ°passthruæ§è¡ç³»ç»å¤é¨å½ä»¤
ååï¼functionpassthru(string$command,int[optional]$return_value)
ç¥è¯ç¹ï¼passthruä¸systemçåºå«ï¼passthruç´æ¥å°ç»æè¾åºå°æ¸¸è§å¨ï¼ä¸è¿åä»»ä½å¼ï¼ä¸å ¶å¯ä»¥è¾åºäºè¿å¶ï¼æ¯å¦å¾åæ°æ®ã
æ¹æ³åï¼åæå·`ï¼å~å¨åä¸ä¸ªé®ï¼æ§è¡ç³»ç»å¤é¨å½ä»¤
1
2
3
echo`dir`;
ç¥è¯ç¹ï¼å¨ä½¿ç¨è¿ç§æ¹æ³æ§è¡ç³»ç»å¤é¨å½ä»¤æ¶ï¼ä½ è¦ç¡®ä¿shell_execå½æ°å¯ç¨ï¼å¦åæ¯æ æ³ä½¿ç¨è¿ç§åæå·æ§è¡ç³»ç»å¤é¨å½ä»¤çã
ä¸è½½çphpæºç æä¹è¿è¡å¢?ä¸ä¸ªå¥½çæºç åç¨å¿çå¼åè æ¯ä¸ä¼è®©ä½ æåºä½¿ç¨é®é¢çï¼ä¸è¬é½ä¼æ详ç»ç说æææ¡£è¿è¡ä»ç»ã
é«è´¨é带说æææ¡£çæºç è·åæ¹æ³ï¼ï¼å ä¸è½½ï¼çæºç éæ±ï¼åæ建ç¯å¢å¾éè¦ï¼ï¼
1ãæå¼ç¾åº¦ï¼æç´¢âPopMars-ä¸æ³¨å ±äº«èµæºâå è´¹æç¨â
2ãæå¼å ¶ä¸åå为âPopMars-ä¸æ³¨å ±äº«èµæºâå è´¹æç¨|Phpæºç å è´¹ä¸è½½|IOSAppåºç¨...âçç½ç«
3ãéé¢å¯ä»¥æ¾å°å¤§éçphpæºç
åå¤ï¼æ¥çæºç éé¢ç说ææ件ï¼æºç è¿è¡çåºæ¬æ åµéæ±ãå¨æ¬æºå®è£ ç¸åºçç¯å¢å³å¯è¿è¡ãä¾å¦PHP7.0/Mysql5.5ççãå ³äºæ¬æºçç¯å¢ä½ å¯ä»¥ä½¿ç¨ç±»ä¼¼xamppçä¸é®é¨ç½²å
ä¸è½½çphpæºç æä¹è¿è¡?
è¦æ³è¿è¡PHP代ç ï¼ä½ å¾ç°æä¸ä¸ªæå¡å¨ç¯å¢ã
1.å¨ç½ä¸èªå·±ä¸è½½ä¸ä¸ªxamppï¼ç¶åå®è£ ã
2.æä½ ç代ç æ¾å°xampp\htdocs\éé¢ã
3.æå¼æµè§å¨ï¼è¾å ¥.0.0.1/æ件å.php
æ¯å¦ï¼ä½ å¾æ件æ个å«index.phpçï¼ç´æ¥è¾å ¥.0.0.1/index.php访é®ï¼å°±å¼å§æ§è¡äºã
4.建议å¨htdocséé¢æ·»å æ件夹ï¼é²æ¢æ··ä¹±ã
5.ä¹å¯ä»¥å°é»è®¤çhtdocsç®å½æ´æ¹å°å ¶ä»ä½ç½®ï¼è¿ä¸ªç½ä¸ä»ç»å¾å¤ã
ææ ·å¨æ¬å°è¿è¡PHP1ãé¦å éè¦å¨çµèä¸å®è£ PHPstudy软件ånotepadè¿ä¸¤ä¸ªä»£ç ç¼è¾è½¯ä»¶ï¼å¦ææ¾å°å¯ä»¥ä»£æ¿çå°±ç¨ä½ é£ä»£æ¿çï¼ï¼å¦å¾æ示红è²ç®å¤´æ示ï¼
2ãæ¥ä¸æ¥ç´æ¥è¿è¡PHPstudyï¼ç¹å»çº¢è²ç®å¤´ææçå¯å¨ï¼å½å·¦ä¾§ä¸¤ä¸ªè±æåè¯lightdåmysqlåé¢æ¾ç¤ºä¸¤ä¸ªç»¿ç¹æ¶ï¼è¯´æPHPstudyå·²ç»å¨çµèä¸æåè¿è¡ã
3ãéæ©å³ä¾§å± ä¸ç?âphpçæ¬âå°è¿å ¥ä¸å¾çé¢ï¼æå¡å¨éApacheå³å¯ã
4ãéæ©å¥½ä¹åï¼å¨å¼¹åºçphpstudy设置ä¸ï¼éæ©ç«¯å£å¸¸è§è®¾ç½®ã
5ãå¨â端å£æ£æµâå¤ï¼æ¥çæå¡å¨ç端å£æ¯å¦è¢«å ç¨ãç½ç«ç¼å好以åå°±æ¾ç½®å¨ç½ç«ç®å½ä¸ã
6ãæå¡å¨æ设å®æãæ°å»ºä¸ä¸ªææ¡£å¦åå¨ä¸é¢çç®å½éï¼æ件åä¿å为index.phpï¼èªç±åæ¥ï¼ãç¶ååä¸ä¸ªä½ 认为æç®åçç½é¡µè¿è¡ä¿åã
7ãå¨æµè§å¨ç½åå¤è¾å ¥.0.0.1ï¼å³å¯çå°åç¼åçç½ç«ä¸»é¡µï¼å³php代ç è¿è¡çææã
1.8 HandyControl:余种控件使用案例WPF案例代码解析
年月日,我终于升级到了HandyControl的源码最新版本3.4,并修复了一个x编译时的源码bug。同时,源码我将缺失的源码MvvmLight功能整合到项目中,无需再单独下载。源码mysql实现源码 在年7月日的源码更新中,HandyControl增加了代码显示功能,源码方便开发者更好地理解和使用。源码MVVM框架的源码共享项目已准备就绪,只需将其放在项目同级目录即可。源码 HandyControl是源码一个强大的开源WPF控件库,它重写了大部分原生样式,源码并集成了多种自定义控件,源码数量还在持续增加。源码它对于学习和实践WPF开发提供了丰富的案例资源。我的php源码转换测试项目包含了对所有控件的深入应用,包括数据绑定、语言切换、主题定制和样式调整,是极佳的学习资料。 如果你对源代码有任何疑问,可以参考我在GitHub上的测试项目,那里有详细的控件使用示例,如Button、CheckComboBox、DataGrid、Pagination等,还有GifImage、NumericUpDown、ProgressBar和StepBar等组件的展示。 以下是部分控件的样式示例,供你参考: Button CheckComboBox DataGrid和Pagination GifImage NumericUpDown ProgressBar StepBar在Linux上使用Wine安装轻聊版的同学网站源码QQ的步骤讲解
准备 Wine 环境
wine 版本要求,越新越好,我用的 1.7.,目前最新是1.8rc2。
删除或者备份你的 ~/.wine,如果你之前运行过 wine 的话。因为涉及到少量配置,尽量不要让以前的环境干扰你。
配置 Wine
运行 winecfg,在“应用程序”页签底部,“Windows版本”,选择为"8.1"。8.0可能也是可以的,但我选的是8.1。
设置为 windows 8.1,打开所有外部链接,比如 qq 空间等,易源码修复会使用内置的 IE 浏览器(gecko win 引擎)。如果不喜欢这个行为,可以用 winecfg 修改为"Windows XP",增加一个 QQProtect.exe 设置,将其单独设置为 "Windows 8.1" 即可。
安装 QQ 轻聊版
下载安装
下载 QQ7.7Light.exe,有官方去广告版我们就用官方去广告版好了。去官方网站下载。别人做的我信不过。
安装命令:
复制代码
代码如下:
WINEDEBUG=-all wine ./QQ7.7Light.exe
加 WINEDEBUG=-all 的目的是避免安装过程中的各种调试信息和 warning 信息,因为没必要看。
耐心等待,直到安装完成。(最后的组件注册时间会比较长,耐心等待)。安装过程无任何注意事项。夏源码网
安装完成,QQ 登录窗口出现,先退出即可,因为这时候是无法输入的(我们需要替换几个 DLL 才行)。
替换 DLL
首先下载 DLL :riched.dll 和 iphlpapi.dll。
riched.dll 下载win7版本的
iphlpapi.dll 下载 windows 版本的
然后替换 DLL:
代码如下:
cd .wine/drive_c/windows/system
mv iphlpapi.dll iphlpapi.dll.bak
mv riched.dll riched.dll.bak
将下载的两个dll拷贝到此处。
修改注册表
代码如下:
vi ~/.wine/user.reg
添加:
代码如下:
[SoftwareWineDllOverrides]
#time=1ddb6b
"*iphlpapi"="native"
"*riched"="native,builtin"
"*qcap"=""
"txplatform.exe"=""
"txupd.exe"=""
说明
禁用 qcap 的原因是“禁用本地摄像头”(如果有的话),因为 wine 目前的摄像头处理跟 QQ 所需要调用的接口仍有差距,本地摄像头打开会崩溃,结果是视频聊天时如果使用了本地摄像头会崩溃。禁用后,虽然不能使用本地的视频,但远程的视频可以正常使用。这个问题,可以通过修改wine的代码来搞定。(有时间再搞吧)。
替换 riched.dll,是为了让“登录对话框可以输入”。
替换 iphlpapi.dll,是避免登录后的崩溃退出。
禁用 txplatform.exe,是因为这个进程在 wine QQ 退出后不退出,对于 Windows 倒是无所谓,对于 Linux 来说,这意味着后台跑着一堆 wine 进程。
禁用 txupd.exe,是因为它在后台定期检查更新时会偶发崩溃,不影响使用,但总弹“wine 崩溃对话框”也是不好的。
替换字体
如果不使用 SimSun 字体,其实没必要使用 simsun,更没必要使用什么 CoreFont
wine 的字体位于 /usr/share/wine/fonts/ 我只保留了 DejaVu 系列 ttf 字体和 SourceHanSansCN-Normal.otf,对于中文环境来说已经足够了。
因为 Windows 下的软件字体调用比较乱,有时候会 fallback 到 SimSun 或者“宋体”,替换的目的是“当软件请求宋体时,使用我们的替代字体”,这可以解决到几乎所有的"中文方框问题"。如果不做替换(也没有使用 simsun),qq 的某些界面字体可能会显示成“方框”。
替换方法是:
找到 ~/.wine/user.reg 中的 [SoftwareWineFontsReplacements],如果没有就自己加入。
代码如下:
[SoftwareWineFontsReplacements]
#time=1dbaa
"NSimSun"="xdx6ex9ed1x4f CN Normal"
"SimSun"="xdx6ex9ed1x4f CN Normal"
"x5b8bx4f"="xdx6ex9ed1x4f CN Normal"
"xb0x5b8bx4f"="xdx6ex9ed1x4f CN Normal"
后面的字提名按照你的实际情况来写。记得以后不用再装 simsun 或者什么 winetricks corefont 了,这个方法适用于所有字体显示为“方框”的情况,比如“网易云音乐”客户端。
运行QQ
代码如下:
cd ~/.wine/drive_c/Program Files/Tencent/QQLite/Bin
WINEDEBUG=-all wine ./QQ.exe
如果你系统的 wine 会自建菜单项,也可以使用菜单项运行。
保留环境
wine 可以通过 WINEPREFIX 变量保留多个 wine 环境。
代码如下:
mv ~/.wine QQLite
cd QQLite
添加一个脚本“qq”,内容如下:
代码如下:
#!/bin/bash
EXEPATH=$(cd `dirname $0`; pwd)
export WINEPREFIX=$EXEPATH
export WINEDEBUG=-all
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
cd "$EXEPATH/drive_c/Program Files/Tencent/QQLite/Bin"
wine QQ.exe
自己保存好 QQLite 这个目录,以后可以放在任何地方运行。视频单向,语音双向,演示桌面等都是可以正常使用的。
残留问题
理论上这些可以通过修改 wine 代码解决
不能保存密码和自动登录。
密码输入框有点难点,用弹出小键盘输入或者轮换点击账号密码框1,2次就可以输入了。
本地摄像头被禁用(暂时的,以后都会好的)
某些窗口,比如“文件列表窗口”不接受窗口管理器管理,点开后可能“X”不掉,偶尔可以用“系统任务栏”关闭窗口,无碍,少点就可以了,如果 Hang 了可以退出重新登录。
离线后无法再上线,只能退出重新登录。
其他各种小问题。
如果只是正常的使用聊天功能,一整天加休眠等应该都没什么问题,我还没遇到拖慢系统,崩溃,无法退出等问题。
PS:Wine (“Wine Is Not an Emulator” 的递归缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,Mac OSX 及 BSD 等)上运行 Windows 应用的兼容层。另外英语单词wine是葡萄酒的意思。
Wine (Wine Is Not an Emulator)[即Wine不是一个模拟器]是一个在Linux和UNIX之上的,Windows 3.x和 Windows APIs的实现。注意,Wine不是Windows模拟器,而是运用API转换技术实做出Linux对应到Windows相对应的函数来调用DLL以运行Windows程序。Wine可以工作在绝大多数的UNIX版本下,包括Linux, FreeBSD, 和 Solaris。另外,也有适用于Mac OS X的Wine程序。Wine不需要Microsoft Windows, 因为这是一个完全由百分之百的免费代码组成的。如果有可利用的副本的话,它也可以随意地使用本地系统的DLLs。Wine的发布是完全公开源代码的,并且是免费发行的。(基于LGPL发布:GNU宽通用公共许可证)
关于Wine的真正含义,有人对“Wine Is Not an Emulator”的说法表示质疑,认为”非模拟器“的解释不过是一种娱乐性的说法,Wine的真实意思应当是是Windows Enviroment的缩写,即WinE。