Entries by Robinson

在php中如何用代码执行linux操作语句

在开发项目过程中,我们经常会遇到有些比较复杂的功能操作,例如,压缩解压文件,文件下载,或者文件移动等,如果用php代码去实现的话会发现比较麻烦,代码量比较大,而我们知道这些功能用linux语句的话的其实只是一个很简单的命令而已,所以,在这里,我给大家简单介绍下如何在php中去执行linux操作命令,让有些功能变得更容易。 首先先要给大家介绍PHP执行linux系统命令的几个基本函数。我曾经很长一段时间都分不清下面几个函数的具体用法区别。 system函数 说明:执行外部程序并显示输出资料。 语法:string system(string command, int [return_var]); 返回值: 字符串 详细介绍: 本函数就像是 C 语中的函数 system(),用来执行指令,并输出结果。若是 return_var 参数存在,则执行 command 之后的状态会填入 return_var 中。同样值得注意的是若需要处理用户输入的资料,而又要防止用户耍花招破解系统,则可以使用 EscapeShellCmd()。若 PHP 以模块式的执行,本函数会在每一行输出后自动更新 Web 服务器的输出缓冲暂存区。若需要完整的返回字符串,且不想经过不必要的其它中间的输出界面,可以使用 PassThru()。 实例代码: < ?php $last_line = system(‘ls’, $retval); echo ‘Last line of the output: ‘ . $last_line; echo ‘Return value: ‘ . $retval; ?> exec函数 说明:执行外部程序。 语法:string exec(string […]

php中正则表达式的使用

正则表达式在我们的日常代码中使用概率还是很高的,在一些常规代码解决不了的情况下使用正则表达式往往会达到很好的效果 基本说来,正则表达式是一种用来描述一定数量文本的模式。Regex代表Regular Express。本文将用<>来表示一段具体的正则表达式。 1、文字符号 最基本的正则表达式由单个文字符号组成。如<>,它将匹配字符串中第一次出现的字符“a”。如对字符串“Jack is a boy”。“J”后的“a”将被匹配。而第二个“a”将不会被匹配。正则表达式也可以匹配第二个“a”,这必须是你告诉正则表达式引擎从第一次匹配的地方开始搜索。在文本编辑器中,你可以使用“查找下一个”。在编程语言中,会有一个函数可以使你从前一次匹配的位置开始继续向后搜索。 类似的,<>会匹配“About cats and dogs”中的“cat”。这等于是告诉正则表达式引擎,找到一个<>,紧跟一个<>,再跟一个<>。 要注意,正则表达式引擎缺省是大小写敏感的。除非你告诉引擎忽略大小写,否则<>不会匹配“Cat”。 对于文字字符,有12个字符被保留作特殊用途。他们是: [ ] ^ $ . | ? * + ( ) 这些特殊字符也被称作元字符。 如果你想在正则表达式中将这些字符用作文本字符,你需要用反斜杠“”对其进行换码 (escape)。例如你想匹配“1+1=2”,正确的表达式为<>. 需要注意的是,<>也是有效的正则表达式。但它不会匹配“1+1=2”,而会匹配“123+111=234”中的“111=2”。因为“+”在这里表示特殊含义(重复1次到多次)。 在编程语言中,要注意,一些特殊的字符会先被编译器处理,然后再传递给正则引擎。因此正则表达式<>在C++中要写成“1\+1=2”。为了匹配“C:temp”,你要用正则表达式<>。而在C++中,正则表达式则变成了“C:\\temp”。 可以使用特殊字符序列来代表某些不可显示字符: <>代表Tab(0×09) <>代表回车符(0x0D) <>代表换行符(0x0A) 要注意的是Windows中文本文件使用“rn”来结束一行而Unix使用“n”。 2 字符集 字符集是由一对方括号“[]”括起来的字符集合。使用字符集,你可以告诉正则表达式引擎仅仅匹配多个字符中的一个。如果你想匹配一个“a”或一个“e”,使用<>。你可以使用<>匹配gray或grey。这在你不确定你要搜索的字符是采用美国英语还是英国英语时特别有用。相反,<>将不会匹配graay或graey。字符集中的字符顺序并没有什么关系,结果都是相同的。 你可以使用连字符“-”定义一个字符范围作为字符集。<>匹配0到9之间的单个数字。你可以使用不止一个范围。<>匹配单个的十六进制数字,并且大小写不敏感。你也可以结合范围定义与单个字符定义。<>匹配一个十六进制数字或字母X。再次强调一下,字符和范围定义的先后顺序对结果没有影响。 以为是字符集的一些应用: 查找一个可能有拼写错误的单词,比如<<sep[ae]r[ae]te>> 或 <<li[cs]en[cs]e>>。 查找程序语言的标识符,<<A-Za-z_][A-Za-z_0-9]*>>。(*表示重复0或多次) 查找C风格的十六进制数<<0[xX][A-Fa-f0-9]+>>。(+表示重复一次或多次) 好了,今天就给大家介绍正则表达式的几个介绍及用点,下一截接着给大家介绍正则表达式~

wordpress插件打造多语言网站

我们公司的IT项目多为国外项目,因此客户网站时常需要做多语言版本,而一般的企业网站或推广网站的话,我们一般是用wordpress去做,所以做多语言这块的话我们就理所当然的想到应用wordpress强大的多语言插件了,接下来robinson就给大家介绍几个我们项目中常用的wordpress多语言插件。 1、首先介绍的第一个插件叫做transposh-translation-filter-for-wordpress翻译插件,这个插件我个人认为是非常好用的,而且目前的多语言我也基本上是用这个插件去做,这个插件使用起来也很简单,首先是安装,你可以在wordpress插件搜索中去搜索,也可以直接在网上下载插件的zip包,然后用后台的上传安装功能安装即可,安装完成以后,在插件栏中将该插件开启,然后在你的后台设置里面可看到一个translation的设置栏,点进去,可看到许多的语言格子,请在你需要的语言格子上点击左键,点亮格子既表示已启用该语言,并且用左键拖动一个语言默认首置到Default Language中,这样,你的网站默认进去就是你选中的默认语言了,在小工具里会有一个transposh工具条,将其拖动到你的工具栏中,这个是显示语言选择栏的,选择栏的显示还有多种风格,你可以选择喜欢的。另外说的一点是,该插件的翻译功能主要是用的谷歌翻译,因此翻译出来的内容很多可能不是很准确,甚至很别扭,当然,这个它是有考虑的,当你发现你的翻译不准确的时候,你可以的在前台语言选择栏的下边看到一个Edit Translation的选择框,选中它,然后会发现所有有文字的地方都出现了一个黄色图标,点击你觉得不正确的翻译边上的图标,他会弹出一个让你翻译层,然后修改为你正确的翻译内容保存即可实现翻译的纠正。当然在你网站已修改完成以后,请关闭该编辑功能,在后台插件中编辑,然后注释掉该代码即可,好了,第一个插件就介绍到这里了。 2、下面介绍第二个插件:Global Translator插件,该插件的安装方法就不多说了,和上面一样,该翻译也包含41种语言,Google Translator插件的主要特性有: Four different Translation Engines四种翻译引擎任选: Global Translator插件可以使用Google翻译引擎,Babel Fish,Promt还有FreeTranslations. Search Engine Optimized搜索引擎优化: Global Translator会添加语言代码到你所有URI的开头来创建永久链接。比如你的Blog的地址是www.mydomain.com/mycategory/mypost, Global Translator插件生成的对应英文版地址就是www.domain.com/en/mycategory/mypost。 Fast Caching System快速缓存系统: 全新的快速,智能,优化,自清理和内建的缓存系统。它可以显著减少翻译请求被翻译引擎暂时禁止的风险 Fully configurable layout完全可设置的布局: ,通过选择基于“Table”,””DIV”或“IMAGE MAP”布局的旗帜条,和选择翻译语种的数量,你可以很容易地自定义翻译条的显示方式 无数据库修改: Global Translator是“绿色”插件。它并不创建或修改任何数据库表,这个特性可以使其获得更好的性能。 实际上如果你不做更多的调整的话,使用非常简单,只需上传插件,启用,然后从你的“外观”-“Widget”里将Global Translator插件的 widget挂到你喜欢的位置就可以了。如果你不想使用它的Widget,或者想把旗帜条放到任何地方,你也可以使用下面的代码: view sourceprint?1. 该插件的用法也比较简单把,今天就介绍这两款好用的翻译插件了,wordpress的插件功能是十分强大的,为我们开发人员省了不少的时间。

php程序无乱码截取中文字符串

在我们做项目过程中经常会要用到字符串截取功能,主要是因为数据库长度引起与页面文字显示引起,如果字符串过长,保存入库的时候则会造成保存失败,而页面显示时文字过长则会造成页面排版混乱不好看,那么,我们应该怎么解决这些问题呢,下面我给大家介绍一种方法来实现字符串的截取功能。 /* 功能:截取全角和半角混合的字符串以避免乱码 参数: $str_cut 需要截断的字符串 $length 允许字符串显示的最大长度 */ function substr_cut($str_cut,$length = 30){ if (strlen($str_cut) > $length){ for($i=0; $i 128) $i++; $str_cut = substr($str_cut,0,$i) . “…”; } return $str_cut; } 这个程序的关键语句是: for($i=0; $i 128) $i++; $str_cut = substr($str_cut,0,$i) . “…”; 如果字符的ASCII码大于128,说明当前字符和下一个字符是属于一个汉字的。 则,$i++ 跳过对下一个字符的判断。 再结合循环中的 $i++ ,实际上,当遇到一个汉字时,$i 就会加 2 ,从而正确的跳过汉字。 最终实现的效果是,$i 变量指向的要么是半角的字符,要么是全角汉字的首字符,不会指向 全角汉字的第二个字符,所以,当$i >= $length 时,循环结束,使用 […]

一个比较实用的分页代码

在我们做开发的过程中,经常会遇到需要分页的地方,如,文章分页,产品列表分页等等,那么,用没有一个分页是既简单又实用的呢,回答是有的,下面我就给大家介绍一个比较实用的自动分页代码,在任何分页情况都可以用哦。 不多说了,下面来看代码: 以上就是该分页的全部代码了,需要用的亲们可以直接弄过去,修改一下里面的数据内容就可以了哦!

几个非常不错的wordpress数据操作

wordpress作为我们公司主要的开发框架之一,我们对其数据的操作应用肯定是比较多的,wordpress的数据库应用的是mysql数据库,有时候经常会遇到需要修改wordpress的数据的而不知道如何下手的情况,在这里,我就给大家介绍几个wordpress比较常遇到的wordpress的数据操作语句。当然,在这之前,你需要有一个mysql的操作工具,我做项目的时候比较喜欢用的是SQLyog Enterprise,这个工具主要有点是操作比较简单,没有phpmyadmin那么麻烦。 1:重置后台用户登录密码 这个是经常会用到的操作了,因为在我们与客户交接完成之后,需要设置一个客户自己的密码,如果嫌麻烦就可以用到这个语句直接修改:UPDATE wp_users SET user_pass = MD5( ‘newpassword’ ) WHERE user_login = ‘username’; 2: 更改wordpress中媒体图片的路径 这个一般是在搬迁网站的时候需要用到,因为wp的媒体地址一般是保存在数据库中的完整地址,而不是相对地址,所以搬迁时需要我们修改为新的地址,这里可用到的sql操作是: UPDATE wp_posts SET post_content = REPLACE (post_content,’src=”http://project.ccjk.com”, ‘src=”http://www.newurl.com’); 3:更改 Siteurl 与 Homeurl 这一点跟第2点比较接近,同样是在搬迁网站需要修改整体url的时候用到,修改网站与主页地址: UPDATE wp_options SET option_value = replace(option_value,’http://project.ccjk.com, ‘http://www.newurl.com’) WHERE option_name =’home’ OR option_name = ‘siteurl’; 4:修改默认管理员admin的名称 这个当我需要修改修改wordpress后台用户名的名称时候可以用到(可能许多客户不喜欢这种程序化简单的用户名): UPDATE wp_users SET user_login = ‘New Username’ WHERE […]