php数据库操作函数
mysql_affected_rows — 取得前一次 MySQL 操作所影响的记录行数
mysql_change_user — 改变活动连接中登录的用户
mysql_client_encoding — 返回字符集的名称
mysql_close — 关闭 MySQL 连接
mysql_connect — 打开一个到 MySQL 服务器的连接
mysql_create_db — 新建一个 MySQL 数据库
mysql_data_seek — 移动内部结果的指针
mysql_db_name — 取得结果数据
mysql_db_query — 发送一条 MySQL 查询
mysql_drop_db — 丢弃(删除)一个 MySQL 数据库
mysql_errno — 返回上一个 MySQL 操作中的错误信息的数字编码
mysql_error — 返回上一个 MySQL 操作产生的文本错误信息
mysql_escape_string — 转义一个字符串用于 mysql_query
mysql_fetch_array — 从结果集中取得一行作为关联数组,或数字数组,或二者兼有
php常用的数学函数以及数字处理函数
php常用的数学函数以及数字处理函数
abs — 绝对值
acos — 反余弦
acosh — 反双曲余弦
asin — 反正弦
asinh — 反双曲正弦
atan2 — 两个参数的反正切
atan — 反正切
atanh — 反双曲正切
base_convert — 在任意进制之间转换数字
bindec — 二进制转换为十进制
ceil — 进一法取整
cos — 余弦
cosh — 双曲余弦
decbin — 十进制转换为二进制
dechex — 十进制转换为十六进制
decoct — 十进制转换为八进制
deg2rad — 将角度转换为弧度
exp — 计算 e 的指数
expm1 — 返回 exp(number) – 1,甚至当 number 的值接近零也能计算出准确结果
floor — 舍去法取整
fmod — 返回除法的浮点数余数
getrandmax — 显示随机数最大的可能值
hexdec — 十六进制转换为十进制
hypot — 计算一直角三角形的斜边长度
is_finite — 判断是否为有限值
一个新drupal 模块的开发初步完成
模块主要用来替换node body里面的内容的。找了drupal 官网,貌似没找到类似的模块。只有个stringoverrides模块,但是看说明,只能替换t()函数内的内容。这个自然不能满足需求。
自己写的模块,只在本地使用,等稳定了,放出来共享下。
drupal theme info 文件
本文列出drupal 的theme info文件常用到的参数。经常写主题,每次都要到官网翻一下,麻烦。记录下,方便以后查阅,也方便大家。
决定走上网赚之路
开贴记录!
drupal arg, drupal_lookup_path用法及小结
drupal里面,有个arg函数,可以获得路径里面的相关参数.
比如当前路径是node/5,调用arg函数会有如下结果:
arg(0) : 返回 node;
arg(1) : 返回 5;
以此类推.
上面的情况,是针对路径没有alias的情况.
如果路径alias了,比如node/5,alias变成info.html,在这个页面调用arg函数会是什么结果呢?
关于这个,我亲自做过实验.
arg(1) 仍然返回 5.就是说arg返回的结果跟alias没关系.
下面讨论另外一个有趣的参数:
arg默认一般都是用一个参数.其实看arg函数原型,里面可以有两个参数.
arg($index,$path);只不过这个path默认就是当前路径了.
如果你要是用arg这个api,也很简单.
比如你自己的页面路径是product/apple/4.html
这样调用函数: arg(1,'product/apple/4.html');返回的结果就是apple.
所以arg是可以有两个参数的,我们可以用这个api来构建自己的应用.
php 表达式 两个等于号和三个等于号的区别 ==和===的区别
php 表达式 两个等于号和三个等于号的区别 ==和===的区别;
之所以要写下这个,在程序里面犯了一个低级错误.下面的语句
if($type='image'){ return 'xxx';}
这种情况,条件永远成立的.所以一定会被执行.
难怪一直找不到错误原因.
只要条件改成$type=='image'即可.
说到这里,顺便讨论写题目中的话题.
Php中三个等号与两个等号的区别:【PHP “===”与“==”区别】
==你知道吧,是比较两个值
===也是一样的功能,但是===要求的比较严格
==会在把两个值自动转换成同类型后再比较,而===在比较前不转换
这样的话,
FALSE==0是成立的.
FALSE===0是不成立的.因为数据类型不一样.一个是bool,一个是整型.
暂且记录到这里.
Drupal 7多站点机制新探秘
最近要研究点drupal 7方面的东西,基本构架跟drupal 6没多大变化,构架没变.
无意间在sites目录下面发现一个exaples.sites.php文件.说是用来做多站点的.刚开始没弄明白.按照drupal 6的机制做,居然行的通.
后来仔细阅读这个examples.sites.php文件,发现提供了另外一种思路.可以设置别名.
比如d6里面,sub.example.com必须使用sub.example.com这样的目录,drupal才能找到这个配置.这个目录名,很固定.不能改变.
但是在d7里面,可以改. 密码就在于这个examples.sites.php文件.仔细阅读发现一下步骤.
1:将这个example.site.php文件改名为sites.php;
2: 然后编辑sites.php文件加入这样一行:
$sites['sub.site.com'] = 'haha';
3:保存退出;在sites目录下建立一个haha文件夹.复制settings.php文件到haha文件夹下面.
剩下的那一套,熟悉d6多站点的,都明白了.
个人认为drupal 7这套机制提供了更多的灵活性.设计不错.相当于给sub.example.com这样的目录提供一个别名.
drupal 采集 开发札记
今天对drupal 采集模块进行一次升级.
升级之后,对链接的匹配更强了.之前不能匹配论坛网页里面的link,里面很多table结构.
升级思路实在simple_html_dom写了一个finda方法,调用这个方法后,对连接的匹配大大加强了.
另外就是感觉simple html dom的功能还不够强大.听说phpquery不错.
抽个时间试试phpquery,如果真的够强大,又要重构代码了....一个考验细心的活....
还有个yql.
yql 是yahoo出的一款使用类似SQL的语言,来获取相应的数据,也很强大,无须任何类 库,可以直接调用,支持xpath,如果对SQL语句比较熟悉的话,可以考虑yql。
有空都试试吧.
drupal 6 ahah 终于被搞定了
终于搞定drupal ahah了,两点注意
1: callback的menu type要是 MENU_CALLBACK;
2: #ahah属性的wrapper,必填.里面是一个id选择器,这个id选择器必须存在.
3: 最主要的实现原理还是drupal_json来拉取数据的.
Glossary
- October 2026 (5)
- September 2026 (3)
- August 2026 (4)
- July 2026 (2)
- June 2026 (2)
- March 2023 (1)
- October 2022 (1)
- October 2021 (2)
- August 2021 (3)
- June 2021 (2)
- May 2021 (1)
- April 2021 (2)
- November 2020 (1)
- June 2020 (2)
- December 2019 (2)
- November 2019 (1)
- August 2019 (1)
- February 2018 (1)
- October 2017 (1)
- September 2017 (1)
- July 2017 (1)
- June 2017 (2)
- May 2017 (1)
- March 2017 (3)
- December 2016 (2)
- November 2016 (4)
- October 2016 (3)
- June 2016 (1)
- December 2015 (1)
- November 2015 (6)
- October 2015 (2)
- September 2015 (1)
- August 2015 (1)
- July 2015 (1)
- June 2015 (1)
- May 2015 (1)
- March 2015 (1)
- January 2015 (1)
- December 2014 (3)
- October 2014 (4)
- September 2014 (2)
- August 2014 (1)
- July 2014 (1)
- June 2014 (1)
- May 2014 (1)
- April 2014 (2)
- March 2014 (2)
- February 2014 (2)
- January 2014 (4)
- December 2013 (1)
- March 2013 (2)
- February 2013 (2)
- December 2012 (2)
- November 2012 (4)
- October 2012 (1)
- September 2012 (6)
- August 2012 (15)
- July 2012 (5)
- June 2012 (13)
- May 2012 (9)
- April 2012 (8)
- March 2012 (9)
- February 2012 (3)
- January 2012 (1)
- December 2011 (1)
- November 2011 (6)
- October 2011 (2)
- September 2011 (17)
- August 2011 (4)
- July 2011 (4)
- June 2011 (5)
- May 2011 (4)