A. php开发怎么学习PHP学习有没有什么方法
一、学前准备
1、建议首先要对网站有个整体的认识,对做网站需要学习的知识要有个认识,从而确定自己的学习方向,不要学一半,又觉得自己似乎不适合学这个,而半途改道,这样很浪费时间,也不是学技术的人该有的心态。
2、PHP是什么网上有很多资料这里不多说了,自己一定要好好看看。由于它是开源的可以从一些网站上下载很多源码,甚至整站源码。但是如果你想要学的好的话,很多东西东西都是自己设计,而不是二次开发。
3、强调一下php并不是想网上一些人说的那样简单,它只是语法简单,深入还是要努力。
二、学习顺序
(1)熟悉HTML/CSS/JS等网页基本元素
(2)理解动态语言的概念,运做机制,熟悉PHP语法
(3)学习如何将PHP与HTML结合起来完成简单动态页面
(4)接触MYSQL,开始设计数据库程序,学会基本对数据库的操作
(5)学会一个模版(建议是smarty),会话控制session和cookie,ajax
(6)继续深入学会怎么设计一个优秀的数据库
三、学习方法总结
1,学习资料:一本好的书籍+配套的视频+几个常用的网站
2,开发工具:记事本,eclipse,ZendStudio 。
学习阶段可以使用记事本,但是它的开发效率低,开发的时候要用到其他开发工具,eclipse,Zend
Studio是两款最常用的工具。Eclipse是完全免费的产品,Zend
Studio(是一款集成开发软件)是收费,但是它的破解方法很简单。当然还有其他的开发软件,自己可以挑选一个适合自己的。
3, 刚开始学习的时候基本上都会要学习lamp或者是wamp的环境的搭建,搭建环境的过程不是很多,但是可能会遇到很多问题(也可能你运气好一次搭建好),千万不要灰心,一定会解决的。
4, 在学习php的前期虽然用不到那么多数据库的知识,但是懂得怎么使用它是很有必要的。等你可以开发网站后,设计一个好的数据库就会成为一个成功的网站关键。
5,在学习的过程中还要准备各种开发手册,php手册,mysql手册,以及一些框架的手册。
6,php是一种后台语言,但是在学习后台之前还需要学习前台语言,DIV+CSS,HTML,javaScript,以及实现异步传输的ajax。
7,学习ajax基本上是必须,但是学习它之前最好学习了javascript和xml,这样才能从本质上了解原理。
8,有很多软件专门用来管理和设计数据库,这个很方便但是你一定要懂得sql语言,才能更好的设计数据库,以及在php中用对数据库进行相关的操作。
9,eclipse默认是不能开发php的,需要你对它进行扩展。扩展后要安装Xdebugger或者是Zend_Debugger,安装以后才能进行调试,调试和java调试基本一样。
10,在学习php的过程中一定会遇到很多问题,你一定会去查找各种资料或者是别人,但是很有可能你下次遇到还是不懂,所以这就需要你要把遇到过的问题和解决方法记录下来。
学习IT类,不论是哪一类不能仅靠理论知识,实战和项目(也就是多练习)是重点!
B. 想自学PHP哪里有免费的PHP教程
php中文网,w3cschool,慕课网,腾讯课堂等等 淘宝上也有很多视频教程,很便宜
C. windows下开发并编译PHP扩展的方法
现在就简单说一在WINDOWS下开发PHP扩展的步骤:
首先需要准备的软件有:
cygwin
安装路径e:\app\cygwin
visual
studio
C++
6.0,
修改环境变量,把已经安装好的PHP路径设置为环境变量。在这里,假设我的PHP安装目录是:e:\app\php5.2.5,那么我把WINDOWS环境变量后面加上这个安装目录。方便一会儿使用php.exe。
PHP源代码,这里假设为e:\c_source_code\php-5.2.5
1、修改文件
“PHP源文件目录/ext/ext_skel_win32.php”,在这里就是:E:\c_source_code\php-5.2.5\ext,其中主要是修改其中的cygwin路径。$cygwin_path
=
'e:\app\cygwin\bin';
把$cygwin_path修改为你实际安装cygwin的路径。
2、在源代码ext目录也就是e:\c_source_code\php-5.2.5\ext下,执行
php
ext_skel_win32.php
--extname=<EXT_NAME>,此时会在ext目录下生成<EXT_NAME>目录,这个目录就是我们将要进行PHP扩展开发的框架。比如你运行php.exe
ext_skel_win32.php
--extname=foo,会在ext目录下生成foo目录。
3、将php-root\dev\php5ts.lib拷贝至
“ext/<EXT_NAME>”中。比如你要开发的PHP扩展名为foo,那么就需要把php-root\dev\php5ts.lib拷贝到PHP源文件目录\ext\foo中。
4、修改foo.c内容,编写我们需要的C代码。
5、进入<EXT_NAME>目录,打开<EXT_NAME>.dsp。
设置VC6工程,
设置菜单“组建”->“移除工程配置”,选中“Win
32
Release_TS”,
设置菜单“工程”,选中“Win
32
Release_TS”
打开Tab“连接”,设置“输出文件名”中的目录,
[可选]打开Tab“C/C++”,增加“预处理器定义”“,COMPILE_DL_<EXT_NAME>”(注意全大写,默认加入的),取消预定义“LIBZEND_EXPORTS”(否则不可引入zend函数)。
6、设置好以后,进行编译,会生成一个dll文件,文件名是<EXT_NAME>.dll,比如在我们的例子中就为foo.dll
把foo.dll拷到e:\app\ext目录下,并在php.ini里加上一行extension=foo.dll,重启一下apache,查看phpinfo();,会发现我们的PHP扩展foo()已经加载进来,已经可以使用这个foo扩展了。
D. PHP安装以及教程
tomcat ?
据说tomcat配PHP效果不是很好..还是换apache吧....
apache吗..反正几乎是一路next就可以装好了..不过你如果装了IIS..就要注意端口问题..可能会有冲突..mysql也是.一路next,php吗..我是这么样的..
1.下载下来的php包解压..文件夹最好直接命名成php.
2.将php.ini-recommended改名为php.ini(这个是php的配置文件).放到c:\windows下(不放这里好像会有问题)
3.php.ini设置:extension_dir = "c:\php\ext"设置成你的ext文件夹的目录,去掉extension=php_mysql.dll前面的分号(加载mysql扩展).需要什么扩展可以根据需要修改.
4.apache的设置:apache安装目录下的conf文件夹下.找到httpd.conf,DocumentRoot "d:/wwwroot"
这里是你的网站的目录,
在最后添加
LoadMole php5_mole "c:/php/php5apache2_2.dll"(加载php模块)
AddType application/x-httpd-php .php (可解析的php扩展名)
AddType application/x-httpd-php-source .phps (这个不记得了.反正肯定要的)
如果发现权限不够.找到这里
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
options indexes
</Directory>
原来是deny from all改成allow from all.
最好打开apache的目录显示.
Options Indexes FollowSymLinks去掉前面的#,如果还不可以.就在上面的allow from all下面加上options indexes就OK了.
这是win下面的apache+php的配置..
mysql安装比较简单..我就不说了...
PHP的电子教程网上非常多..在这里也不可能给你贴出来吧..
还有关于框架..框架网上的教程也很多..网络一下吧..
着名的框架有zend Framework,cakephp,国产的fleaphp,thinkphp等等...
E. 如何用C语言编写PHP扩展的详解
1:预定义
在home目录,也可以其他任意目录,写一个文件,例如caleng_mole.def
内容是你希望定义的函数名以及参数:
int a(int x,int y)
string b(string str,int n)
2:到php源码目录的ext目录
#cd /usr/local/php-5.4.0/ext/
执行命令,生成对应扩展目录
#./ext_skel --extname=caleng_mole --proto=/home/hm/caleng_mole.def
3:修改config.m4
去掉dnl的注释
PHP_ARG_ENABLE(caleng_mole, whether to enable caleng_mole support,
Make sure that the comment is aligned:
[ --enable-caleng_mole Enable caleng_mole support])
4:修改caleng_mole.c
代码如下:
/* {{{ proto int a(int x, int y)
*/
PHP_FUNCTION(a)
{
int argc = ZEND_NUM_ARGS();
int x;
int y;
int z;
if (zend_parse_parameters(argc TSRMLS_CC, "ll", &x, &y) == FAILURE)
return;
z=x+y;
RETURN_LONG(z);
}
/* }}} */
/* {{{ proto string b(string str, int n)
*/
PHP_FUNCTION(b)
{
char *str = NULL;
int argc = ZEND_NUM_ARGS();
int str_len;
long n;
char *result;
char *ptr;
int result_length;
if (zend_parse_parameters(argc TSRMLS_CC, "sl", &str, &str_len, &n) == FAILURE)
return;
result_length = str_len * n;
result = (char *) emalloc(result_length + 1);
ptr = result;
while (n--) {
memcpy(ptr, str, str_len);
ptr += str_len;
}
*ptr = '