通过数据表 “pre_forum_post”的“message”字段中可以找到 “[attach]1[/attach]” 这样上传后经过discuz处理的标记,
通过这个attach标记,可以到“pre_forum_attachment”表中找到“aid”,这个表是附件的索引表,往后看就可以看到“tableid”,可以通过这个锁定到 pre_forum_post_0~9,
这个时候大家可以看到“attachment”字段中存放着真实的url路径,但是这个路径到底是怎么样的呢?
比如我里存放的url地址是:201311/25/154704jpxjchmcj5bc4b0b.png
那么真实的目录就是:http://www.yourdomain.com/data/attachment/forum/201311/25/154704jpxjchmcj5bc4b0b.png
作者:Magic
将数字转成货币字符串 ¥123,456,7.00
function setCurrency(num) { if(isNaN(num)) return ''; num = parseFloat(num); var sign = ''; var s; if (num < 0) { sign = '-'; num *= -1; } s = num.toFixed(2).toString(); s = s.replace(".", ","); var re = /(\d)(\d{3},)/; while (re.test(s)) s = s.replace(re, "$1,$2"); s = s.replace(/,(\d\d)$/, ".$1"); return sign + '¥' + s.replace(/^\./, "0."); } function currencyValue(str) { var num = parseFloat(str.replace(/[,¥]/g, '')); if (isNaN(num)) num = 0; return num; }
Mac下用alias自定义命令
由于在终端里用命令alias ll=”ls -l”只能是当时起到效果,等重新启动mac的时候就提示命令不在了,也就是说是临时的,所以就在.bash_profile文件里面设置一下:
1. 启动终端Terminal
2. 进入当前用户的home目录
输入cd ~
3. 创建.bash_profile
输入touch .bash_profile
4. 编辑.bash_profile文件
输入open -e .bash_profile
在打开的文件中输入: alias ll=”ls -l”
5. 保存文件,关闭.bash_profile
6. 更新刚配置的环境变量
输入source .bash_profile
7. 验证配置是否成功
在终端输入ll查看效果,重启mac试试
Display only few desired colors in a CKEditor palette
CKEditor 只显示需要的颜色、关闭更多颜色
CKEDITOR.config.colorButton_colors = "000,f60"; CKEDITOR.config.colorButton_enableMore = false;
Mac完整移除Dropbox
在Mac Air使用Dropbox,對於空間本來就不大的SSD,是一個不容忽視的存在,
因此決定把它移除,有需要再透過網頁去下載需要的檔案。
# 首先先把Dropbox的App從應用程式拖進垃圾桶,再刪除以下檔案及資料夾 rm -rf /Applications/Dropbox.app/* rm -rf ~/Dropbox/
mac port安装redis
sudo port -v install redis
开机自动启动
建立automator app,添加/opt/local/bin/redis-server
php端管理用phpredisadmin
如何使用 Linux screen 教程
系统管理员经常需要远程登录服务器,然后在服务器上跑一些程序,有时候得跑很长时间(超过12小时)这是如果程序没结束就退出远程管理终端远程跑的程序很有可能就此当掉,以前常用的解决方式是用命令nohup,但是nohup也有很多的问题。当有了screen,这一切便都迎刃而解了:
>>敲入命令screen 会创建一个跑着shell的单一窗口
在这里面,你可以跑你所需要的程序
然后Ctrl+a d退出刚创建的窗口(回到进入screen前的环境)
然后再敲入命令screen创建新的终端窗口
就这样
你可以建立多个有shell的窗口(这些窗口里都可以跑你自己的应用)
这样就是你退出远程管理窗口(进入screen的环境)
你的screen窗间的窗口都不会关闭
里面跑得应用自然也不会当掉
用screen -ls可以看所有的screen sessions
用screen -r sessionid可以进sessionid指定的特定的screen session
用Ctrl+a [ 将当前的windows变成copy modes, 可以翻页,回滚,复制.
screen session不再使用的时候
screen -r sessionid进去
exit退出即可
功能说明:
使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的session.screen命令可以解决这个问题。Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用。
语 法:
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]
补充说明:
screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。
参 数:
-A 将所有的视窗都调整为目前终端机的大小。
-d <作业名称> 将指定的screen作业离线。
-h <行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s 指定建立新视窗时,所要执行的shell。
-S <作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或–list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
常用screen参数:
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session
在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。
C-a ? -> Help,显示简单说明
C-a c -> Create,开启新的 window
C-a n -> Next,切换到下个 window
C-a p -> Previous,前一个 window
C-a 0..9 -> 切换到第 0..9 个window
Ctrl+a [Space] -> 由視窗0循序換到視窗9
C-a C-a -> 在两个最近使用的 window 间切换
C-a x -> 锁住当前的 window,需用用户密码解锁
C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里 每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。
C-a z -> 把当前session放到后台执行,用 shell 的 fg 命令則可回去。
C-a w -> Windows,列出已开启的 windows 有那些
C-a t -> Time,显示当前时间,和系统的 load
C-a K -> kill window,强行关闭当前的 window
总结:
screen常用命令
一个session可以创建多个screen,一个screen可以创建多个window
进:
screen #创建一个默认命名的session,并进入该session窗体
screen -S name #创建一个名为name的session, 并进入该session窗体
screen -ls #列出当前screen所有的sessions.
退:
screen -d name #远程让name作业离线
session> exit #关闭当前session
session> Ctrl+A d #退出当前session,回到screen前window
Session中对Window的操作:
C-a c -> Create,开启新的 window
C-a n -> Next,切换到下个 window
C-a p -> Previous,前一个 window
C-a 0..9 -> 切换到第 0..9 个window
C-a [Space] -> 由視窗0循序換到視窗9
C-a C-a -> 在两个最近使用的 window 间切换
C-a x -> 锁住当前的 window,需用用户密码解锁
C-a w -> Windows,列出已开启的 windows 有那些
C-a K -> kill window,强行关闭当前的 window
转自:http://hi.baidu.com/kenrome/item/f2b7be0e35ff40036c9048bc
discuz去除帖子内容里的bbcode代码标签
$message=preg_replace('/\[[^\[\]]{1,}\]/','',$message);
Nginx solution for Apache ProxyPassReverse
Let’s say we want to establish simple proxy between myhost:80 and myapp:8080. The Apache rule is simple:
APACHE
<VirtualHost myhost:80> ServerName myhost DocumentRoot /path/to/myapp/public ProxyPass / http://myapp:8080/ ProxyPassReverse / http://myapp:8080/ </VirtualHost>
But Nginx does not have ProxyPassReverse…The solution is adding few missing HTTP headers.
Please also see http://wiki.nginx.org/HttpProxyModule#proxy_redirect , This wiki is partly incorrect. If you need to do location header rewriting. You will need to use proxy_redirect as well.
NGINX:
server { listen myhost:80; server_name myhost; location / { root /path/to/myapp/public; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://myapp:8080; } }
git push 相关
$ git push ssh://git@dev.lemote.com/rt4ls.git master // 把本地仓库提交到远程仓库的master分支中
$ git remote add origin ssh://git@dev.lemote.com/rt4ls.git
$ git push origin master
这两个操作是等价的,第二个操作的第一行的意思是添加一个标记,让origin指向ssh://git@dev.lemote.com/rt4ls.git,也就是说你操 作origin的时候,实际上就是在操作ssh://git@dev.lemote.com/rt4ls.git。origin在这里完全可以理解为后者 的别名。
需要说明的是,默认情况下这条语句等价于提交本地的master仓库到远程仓库,并作为远程的master分支。
如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,那么可以这么做。
$ git push origin test:master // 提交本地test分支作为远程的master分支
$ git push origin test:test // 提交本地test分支作为远程的test分支
如果想删除远程的分支呢?类似于上面,如果:左边的分支为空,那么将删除:右边的远程的分支。
$ git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心
$ git checkout –orphan name //创建一个空分支