http://blog.sina.com.cn/s/blog_48c95a1901018nq1.html

libssh2:(configure: error: The required libssh2 library was not found.  You can obtain that package from http://sourceforge.net/projects/libssh2/,可通过yum install libssh2-devel.x86_64 解决,不用下源码包)
https://www.libssh2.org/download/

ssh2:
http://pecl.php.net/package/ssh2

读取公钥的脚本:


摘自:http://www.4wei.cn/archives/1002295

php中的ssh2模块学习
阅读全文
问题:北京东单-东邪 15:14:04
问一个问题
中间我让运维给几十个服务器的cron,加了新的cron,他们是咋批量加的啊(我自己加的话,的手动一个一个服)

【点击】Chris  15:18:21
有个工具是在一台服务器上执行命令,其他服务器都跟着执行
方案:
1.有批量运行的工具如上面:有个工具是在一台服务器上执行命令,其他服务器都跟着执行
2.有一个zoomkeeper来实现多个服务器同步执行。(集群)
这儿主要讲:
puppet运维自动化之cron管理:
http://www.w3ccollege.org/puppet/operation-and-maintenance-automation-puppet-resources-management-cron-instance.html
阅读全文
参见手册 date()与strtotime()
date("Y-m-d H:i:s")
CURRENT_TIMES*****P()  or  NOW()
DATE_FORMAT(date,format)
now()  curtime() datetime()

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2010-11-29 11:14:55 |
+---------------------+
1 row in set (0.00 sec)

mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 11:14:31  |
+-----------+
1 row in set (0.00 sec)

实例
下面的脚本使用 DATE_FORMAT() 函数来显示不同的格式。我们使用 NOW() 来获得当前的日期/时间:

DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
DATE_FORMAT(NOW(),'%m-%d-%Y')
DATE_FORMAT(NOW(),'%d %b %y')
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
结果类似:

Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635


题目内容:


1、MySQL取得当前时间的函数是?,格式化日期的函数是
2、写出 SQL语句的格式 : 插入 ,更新 ,删除
表名User
Name Tel Content Date
张三 13333663366 大专毕业 2006-10-11
张三 13612312331 本科毕业 2006-10-15
张四 021-55665566 中专毕业 2006-10-15
(a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中
(b) 请用sql语句把张三的时间更新成为当前系统时间
(c) 请写出删除名为张四的全部记录
3、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别
4、MySQL自增类型(通常为表ID字段)必需将其设为(?)字段
5、以下请用PHPMYADMIN完成
(一)创建新闻发布系统,表名为message有如下字段

id 文章id
title 文章标题
content 文章内容
category_id 文章分类id
hits 点击量

(二)同样上述新闻发布系统:表comment记录用户回复内容,字段如下

comment_id 回复id
id 文章id,关联message表中的id
comment_content 回复内容
现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面
文章id 文章标题 点击量 回复数量
用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0

(三)上述内容管理系统,表category保存分类信息,字段如下

category_id int(4) not null auto_increment;
categroy_name varchar(40) not null;
用户输入文章时,通过选择下拉菜单选定文章分类
写出如何实现这个下拉菜单

  经过两个月的时间,简单做(ZTD)系列终于完结。希望这一套系统确实使你有所帮助。简单做(ZTD)系列主要介绍了时间管理的十个好习惯的培养,在这篇文章中,将对每个习惯做一个简介,具体的请参考全文。
点击在新窗口中浏览此图片阅读全文
要限制 網站/網頁/檔案 下載速度,  Apache 有提供 bw 的模組, 可以設定最大下載速度.
阅读全文
首先安装完php后最好保留当时安装的文件,比如我的路径/export1/soft
  cd php-5.1.6/ext/soap
  /usr/local/php/bin/phpize
  ./configure –with-php-config=/usr/local/php/bin/php-config –enable-soap
  make
  make install
  编译后的soap.so文件保存在了/usr/local/php/lib/php/extensions/no-debug-non-zts-20050922目录下
  修改php.ini文件
  手工修改:查找/usr/local/webserver/php/etc/php.ini中的extension_dir = “./”
  修改为extension_dir = “/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20050922/”
  并在此行后增加如下,然后保存:
  extension = “soap.so”
  重新启动apache,ok 我们就已经能看到扩展的soap模块了。
  如果还要扩展别的模块可以一次类推,这里还有点要说明,如果做了zend,php.ini文件是在/usr/local/php/etc下的,但是我们这边重新编译后,它回放到/usr/local/php/lib下。所以这里要注意一下。
来源:http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2010/1014/6598.html
自1999年起我就开始发掘一些科技公司,并帮助它们运营。我最近的一个公司是 fabulis.com 。下面是从干这行中得到的57条经验。我可以列出更多,但恐怕会令你厌烦。 阅读全文

Banshee 是一个 PHP 开发 Web 网站的框架,主要特点是安全和易用,使用 MVC 模式,使用 XSLT 的模板,支持 MySQL 数据库。

该版本升级了  CKEditor 到3.4.1 版本,使用  SlimStat  来替换 Google Analytics,同时还包含一些bug的修复。

下载 地址  http://www.banshee-php.org/download
Tokyo Cabinet的tcutil.c提供了一套不错的C语言Utility API函数库,可以作为标准C函数库的一个增强。其中的一部分函数增加了申请内存失败、非数值等异常处理,例如tcmalloc()、tccalloc()、tcatoi(),另一部分提供了增强字符串处理、内存池、正则、文件操作、编码转换、压缩、Array List、Hash Map等。

上午和《独孤九剑》游戏的程序经理开会,约定了我们开发的KE游戏运营平台及中间件,与独孤九剑服务器端进程,进行各种功能交互的详细通信协议。C开发的中间件daemon,采用HTTPS/SSL REST协议与Nginx+PHP游戏运营平台通信,采用TCP二进制协议、信号与游戏进程通信。


昨晚,移动硬盘连接电脑的USB线突然被碰掉,再插入,提示移动硬盘的分区未格式化,上面的重要数据差点丢失,还好用CHKDSK /F修复了。得定时做个备份了,是再买块硬盘,还是用云存储?如果能找到一款能够便捷地进行本地加密后再上传,下载后再解密的软件,保护数据隐私,云存储或许也是个不错的选择。

3月28日,戴志康释出了传说以久的内部代号为UltraX的体验版。大概是希望借用discuz已有的巨大号召力,UltraX在发布之前还是改成了discuz!X。阅读全文
最近做网站有一个站要用到WEB网页采集器功能,当一个PHP脚本在请求URL的时候,可能这个被请求的网页非常慢慢,超过了mysql的 wait-timeout时间,然后当网页内容被抓回来后,准备插入到MySQL的时候,发现MySQL的连接超时关闭了,于是就出现了“MySQL server has gone away”这样的错误提示,解决这个问题,我的经验有以下两点,或许对大家有用处:

第 一种方法:

当然是增加你的 wait-timeout值,这个参数是在my.cnf(在Windows下台下面是my.ini)中设置,我的数据库负荷稍微大一点,所以,我设置的值 为10,(这个值的单位是秒,意思是当一个数据库连接在10秒钟内没有任何操作的话,就会强行关闭,我使用的不是永久链接 (mysql_pconnect),用的是mysql_connect,关于这个wait-timeout的效果你可以在MySQL的进程列表中看到 (show processlist) ),你可以把这个wait-timeout设置成更大,比如300秒,呵呵,一般来讲300秒足够用了,其实你也可以不用设置,MySQL默认是8个小 时。情况由你的服务器和站点来定。

第二种方法:

这也是我个人认为最好的方法,即检查 MySQL的链接状态,使其重新链接。

可能大家都知道有mysql_ping这么一个函数,在很多资料中都说这个mysql_ping的 API会检查数据库是否链接,如果是断开的话会尝试重新连接,但在我的测试过程中发现事实并不是这样子的,是有条件的,必须要通过 mysql_options这个C API传递相关参数,让MYSQL有断开自动链接的选项(MySQL默认为不自动连接),但我测试中发现PHP的MySQL的API中并不带这个函数,你重新编辑MySQL吧,呵呵。但mysql_ping这个函数还是终于能用得上的,只是要在其中有一个小小的操作技巧:

这是我的的数据库操 作类中间的一个函数
function ping(){
    if(!mysql_ping($this->link)){
        mysql_close($this->link); //注意:一定要先执行数据库关闭,这是关键
        $this->connect();
    }
}
我需要调用这个函数的代码可能是这样子的

$str = file_get_contents(’http://www.tianqiyugao.net’);
$db->ping();//经过前面的网页抓取后,或者会导致数据库连接关闭,检查并重新连接
$db->query(’select * from table’);
ping()这个函数先检测数据连接是否正常,如果被关闭,整个把当前脚本的MYSQL实例关闭,再重新连接。

经 过这样处理后,可以非常有效的解决MySQL server has gone away这样的问题,而且不会对系统造成额外的开销。
来源:http://www.sablog.net/blog/MySQL-server-has-gone-away/
Apache日志不记录图片文件设置方法是

httpd.conf 设置如下:

<FilesMatch "\.(ico|gif|jpg|png|bmp|swf|css|js)">
SetEnv IMAG 1
</FilesMatch>
CustomLog logs/access_log combined env=!IMAG

虚拟机的日志也一样配置。

来源:http://www.sablog.net/blog/apache-donot-log-images/
C++可以用string
头文件
#include <string>
using namespace std;

string a,b;
string c;
c=a+b;
c就是a连接b的结果了
1 #include <string>
string str="12345";
int b=atoi(str.c_str());

2
【转】C++ int,char,string,CString类型转换(整理总结)
#include <string> //使用C++标准库的string类时

using namespace std; //同上

#include <sstream>

#include <iostream>

#include <stdlib.h> //要将string类和int类型直接转换最好有这些包含,

//因为自己写一个转换函数比较方便,函数定义参考如下

string getstring ( const int n )

{

std::stringstream newstr;
newstr<<n;
return newstr.str();

}

string 转 CString
CString.format(”%s”, string.c_str());

char 转 CString
CString.format(”%s”, char*);

char 转 string
string s(char *);

string 转 char *
char *p = string.c_str();

CString 转 string
string s(CString.GetBuffer());

1,string -> CString
CString.format(”%s”, string.c_str());
用c_str()确实比data()要好.
2,char -> string
string s(char *);
只能初始化,在不是初始化的地方最好还是用assign().
3,CString -> string
string s(CString.GetBuffer());
GetBuffer()后一定要ReleaseBuffer(),否则就没有释放缓冲区所占的空间.

《C++标准函数库》中说的
有三个函数可以将字符串的内容转换为字符数组和C—string
1.data(),返回没有”\0“的字符串数组
2,c_str(),返回有”\0“的字符串数组
3,copy()

—————————————————————

CString与int、char*、char[100]之间的转换- -

CString与int、char*、char[100]之间的转换- -

CString互转int

将字符转换为整数,可以使用atoi、_atoi64或atol。
而将数字转换为CString变量,可以使用CString的Format函数。如
CString s;
int i = 64;
s.Format(”%d”, i)
Format函数的功能很强,值得你研究一下。

void CStrDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CString
ss=”1212.12″;
int temp=atoi(ss);
CString aa;
aa.Format(”%d”,temp);
AfxMessageBox(”var is ” + aa);
}

sart.Format(”%s”,buf);

CString互转char*

///char * TO cstring
CString strtest;
char * charpoint;
charpoint=”give string a value”;
strtest=charpoint;

///cstring TO char *
charpoint=strtest.GetBuffer(strtest.GetLength());

标准C里没有string,char *==char []==string

可以用CString.Format(”%s”,char *)这个方法来将char *转成CString。要把CString转成char *,用操作符(LPCSTR)CString就可以了。

CString转换 char[100]

char a[100];
CString str(”aaaaaa”);
strncpy(a,(LPCTSTR)str,sizeof(a));

3 string 转int

itoa(i,num,10);
i 需要转换成字符的数字
num 转换后保存字符的变量
10 转换数字的基数(进制)10就是说按照10进制转换数字。还可以是2,8,16等等你喜欢的进制类型

为了您的安全,请只打开来源可靠的网址
打开网站    取消

来自: http://hi.baidu.com/buptyoyo/blog/item/de1d94c6060429a38226ac37.html
 11月19日上午消息,在腾讯与360大战趋于平静时,奇虎360董事长周鸿祎首次在公开场合出现出席2010创业家年会,他在演讲中总结本次大战的两个感悟,一是用户支持,二是行业应团结合作,并表示如果能让行业开放付出什么代价都值得。
  
  周鸿祎在谈及近日大战时,表示目的是希望让中国互联网更加开放。“互联网已经形成的行业巨头,他们总希望格局50年不变,他们永远在赚大钱,大公司跟创新是矛盾的,只有小的创业者不愿意遵循已有的游戏规则,所才有动力去创新。”
  
  对于这一次前所未有的大战,周鸿祎说有两个感悟。“第一个感悟是用户支持了我们。关键的时候用户的力量对你的支持,是一个创新公司当面对垄断巨头,这是唯一所能依靠最大的力量。因为比钱比人比资源,我们依然是一个创业公司,还是一句话,只有重视用户才能脚踏实地。”
  
  “第二个感悟,很多创业者,我们每一个人要做微创新,每一个人都微不足道,但我认为我们各个行业,特别是互联网的创业者,我希望大家一定要能够多相互合作、相互团结起来。”周鸿祎说。
  
  周鸿祎指出,如果很多创业公司、创业者都能够呼吁创新、反对抄袭、反对垄断,如果通过这个事件让行业有所反思,每个公司都能够改变,让这个行业更加开放,有更多的新的创业公司能够成功,“这次我们付出什么样的代价都是值得。”阅读全文
我觉得首先还是看这位兄弟的两篇文章后实践Ok后再接着看吧,那两篇文章写得很好,如下:

http://hi.baidu.com/doyoueat/blog/item/2593153a88604b3371cf6c65.html
http://hi.baidu.com/doyoueat/blog/item/f3b48320f13f2e0f4d088d5a.html

以上两篇文章,博主是实践Ok了的。。。。:)


下载php源码

进入源码路径假如说是 /data/soft/php-5.2.5/

进入ext 目录

./ext_skel --extname=cpptest

进入 cpptest 目录 修改 config.m4

变化主要是这几行
PHP_ARG_ENABLE(cpptest, whether to enable cpptest support,
Make sure that the comment is aligned:
[ --enable-cpptest           Enable cpptest support])

以下几行主要用来指定源代码是 c++的

PHP_REQUIRE_CXX()
PHP_ADD_LIBRARY(stdc++, "", EXTRA_LDFLAGS)
PHP_NEW_EXTENSION(cpptest, cpptest.cpp, $ext_shared)



然后 mv cpptest.c cpptest.cpp

修改 cpptest.cpp

20 extern "C" {
21 #ifdef HAVE_CONFIG_H
22 #include "config.h"
23 #endif
24
25 #include "php.h"
26 #include "php_ini.h"
27 #include "ext/standard/info.h"
28 #include "php_cpptest.h"
29 }

用 extern c 把原来的c 的 头文件包起来 让其兼容c++

#ifdef COMPILE_DL_CPPTEST
ZEND_GET_MODULE(cpptest)
#endif
修改为如下:
72 BEGIN_EXTERN_C()
73 ZEND_GET_MODULE(cpptest)
74 END_EXTERN_C()

用 BEGIN_EXTERN_C() 还有 END_EXTERN_C() 把 ZEND_GET_MODULE(cpptest) 包起来,最关键是:
#include "cpptest.h"
这个cpp的头文件要放在:
extern "C" { 的花括号里!!!
using std::string;
extern "C" {
#ifdef HAVE_CONFIG_H
#include "config.h"
#include "cpptest.h"
否则会出现编译错误:错误:‘char* PHP_HELLO()’的早先声明有‘C++’链接 错误:与带有‘C’链接的新声明冲突,
再加入:
#ifdef COMPILE_DL_EXT_NAME
  BEGIN_EXTERN_C()
  ZEND_GET_MODULE(ext_name)
  END_EXTERN_C()
#endif
为此,特别注意!!!
------------------------------------------------------------------------------------------------------------
然后可以 随便测试进入几个c++的 头文件

30 #include <iostream>
31 #include <string>
32 #include "cpptest.h"
33 using std::string;

修改一下示例

160 PHP_FUNCTION(confirm_cpptest_compiled)
161 {
174     int len;
175     char *strg;
176     strg=estrdup(PHP_HELLO());
177     std::cout<<strg<<std::endl;
178     len=strlen(strg);
179     RETURN_STRINGL(strg, len, 0);
180    // std::cout<<"hello world"<<std::endl;
181 }
182 char * PHP_HELLO()
183 {
184   string str("aaaaaa");
186   char * cp;
187   cp=estrdup(str.c_str());
188   return cp;
190
191 }

然后添加 cpptest.h

定义 PHP_HELLO()
char * PHP_HELLO();

然后 phpize

./configure --with-php-config=/data/app/php/bin/php-config

make

makeinstall

在 phpini中 引用 so文件

下边就可以测试啦
阅读全文
我想找一个类似于java中split那样的函数,支持C++字符串分割
比如
aabe(bbb)iefjij(bbb)(bbb)
用(bbb)分割得到
aabe
iefjij
fjdkfji

注:不用CString


今天用c++写了个分割字符串的函数,老是内存报错。在网上搜搜发现c的一个函数就可以搞定。

汗啊

c++

==========



#include "stdafx.h"

#include <windows.h>
//查找字符串中的制定字符,并返回字符的位置
int strstrFindPos(char srcstr[],char deststr[] )
{
int j=0;
for (int i=0;srcstr[i]!='\0';i++)
{
   if (deststr[0]==srcstr[i])
   {
    while (deststr[j]!='\0'&&srcstr[i+j]!='\0')
    {
     j++;
     if (deststr[j]!=srcstr[i+j])
     {
      break;
     }
    }
   }
        if (deststr[j]=='\0')
   {
    return i;
   }
}
return -1;
}
//截取字符串中的位置1到位置2的字符串
char* substr(char *des, char *src, int start, int end)  
{
int i =0;
while(*src   !=   '\0')
{
   if((i >= start)&&(i<=end))  
   {
    *des= *src; //[*]
    des++;
   };
   i++;
   src++;
};
*des= '\0';
return des;
}


int main(int argc, char* argv[])

{
   char *cCode = "XXXXXX000000000000000000000001XXXXXX1111111111111111111111111112XXXXXX2222222222222222222223XXXXXX";
char *cAllCode = new char[];
char *cTempCode = new char[];
char *cNeedCode= new char[];
char *cOnlyCode ="XXXXXX";
char *cMyData = NULL;
int iPos = -1;
   if ( cCode != NULL)
{
   strcpy(cAllCode,cCode);

}


do{
   substr(cTempCode, cAllCode,6,lstrlen(cAllCode));
   iPos = strstrFindPos(cTempCode,cOnlyCode);
   if (iPos > -1)
   {
    substr(cNeedCode,cTempCode,0,iPos -1);
    printf("cNeedCode : %s \n" , cNeedCode);
    substr(cAllCode, cTempCode,iPos,lstrlen(cTempCode));
   }
}while (iPos > -1);

//    delete cTempCode;
//    delete cNeedCode;

delete cAllCode;


   return 0;

}

find实现方法:函数参数类型:int =sting.find(string);
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
        string a = "aaaAlice";
        int pos = a.find("Alice");//pos = 3;
        printf("%d\n",pos);
}


c++ substr的用法问题:

我的代码是这样的:
#include <iostream>
#include<string>
using namespace std;
void main()
{
string a;
getline(cin,a);
cout<<a.length()<<endl;

cout<<a.substr(1,1);
}
输出结果为输入的第二个字符,我很好奇substr中的两个参数是怎么截取中间部分的,还有这个函数的起始字符是用0来表示么?
最佳答案
下面给出解释:
substr 方法
  返回一个从指定位置开始,并具有指定长度的子字符串。
  参数
  start
  必选。所需的子字符串的起始位置。字符串中第一个字符的索引为 0。
  length
  可选项。返回的子字符串中包含的字符数。
  备注
  如果 length 为 0 或负数,将返回一个空字符串。如果没有指定该参数,则子字符串将延续到字符串的结尾。
看了上面这些应该就会明白了!!
来源:http://group.gimoo.net/review/60574
分页: 137/272 第一页 上页 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 下页 最后页 [ 显示模式: 摘要 | 列表 ]