?
2、 請(qǐng)?jiān)趌ocal環(huán)境,編譯PHP,要求:版本5.4, 5.5, 5.6,每個(gè)版本要涵蓋3個(gè)編譯版本,包括nts \ zts \ debug
/usr/lib/apache2/modules
/etc/apache2/mods-enabled/
vim php5.load?
.編譯php的ztf,ntf,debug模式 ? ??
? ? a.安裝apsx工具 ? apt-get install apache-dev
? ? b.在php源碼包下運(yùn)行 ./configure ?--prefix=/home/merlin/make_php_version/php-5.4-zts-debug/ ? --enable-maintainer-zts ?--with-apxs2=/usr/bin/apxs2 ? --enable-debug
? ? c.make&&make install ?在/usrb/apache2/modules下生成libphp5.so文件
? ? d.在/etc/apache2/mods-enabled下php5.load中添加模塊文件.so
編譯報(bào)錯(cuò) 解決?undefined reference to `libiconv_open'
配置文件:
在安裝包中找到php.ini.development 拷貝到安裝后的目錄下的lib里
每次執(zhí)行該版本的php 要指定目錄
例如:/home/merlin/php_version/php-5.5.21-zts-debug/bin/php -i|grep php.ini
解決方法:
#wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
#tar -zxvf libiconv-1.13.1.tar.gz
#cd libiconv-1.13.1
# ./configure --prefix=/usr/local/libiconv
# make
# make install
再檢查php,指定 iconv的位置 ?--with-iconv=/usr/local/libiconv
3、 編寫一個(gè)簡(jiǎn)單的PHP擴(kuò)展,實(shí)現(xiàn)3個(gè)PHP方法,分別接收參數(shù),并完成結(jié)果輸出:
? ? a. 數(shù)字a與數(shù)字b的,加、減、乘、除
? ? b. 字符串a(chǎn),在字符串b中的重復(fù)次數(shù)
? ? c. 數(shù)組a與數(shù)組b的交集與差集
參考?http://www.laruence.com/2009/04/28/719.html
源碼包執(zhí)行
-
./ext_skel --extname=myfunctions --proto=myfunctions.def
?????? ? ?make clean && make && make install
????????/etc/php5 ? 操作ini 以及移動(dòng)so文件
類型指定符 | 對(duì)應(yīng)的C類型 | 描述 |
l | long | 符號(hào)整數(shù) |
d | double | 浮點(diǎn)數(shù) |
s | char *, int | 二進(jìn)制字符串,長(zhǎng)度 |
b | zend_bool | 邏輯型(1或0) |
r | zval * | 資源(文件指針,數(shù)據(jù)庫(kù)連接等) |
a | zval * | 聯(lián)合數(shù)組 |
o | zval * | 任何類型的對(duì)象 |
O | zval * | 指定類型的對(duì)象。需要提供目標(biāo)對(duì)象的類類型 |
z | zval * | 無任何操作的zval |
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sdd",&str,&str_len,&a,&b) == FAILURE){
? ? return;
? }
設(shè)置返回值并且結(jié)束函數(shù) | 設(shè)置返回值 | 宏返回類型和參數(shù) |
RETURN_LONG(l) | RETVAL_LONG(l) | 整數(shù) |
RETURN_BOOL(b) | RETVAL_BOOL(b) | 布爾數(shù)(1或0) |
RETURN_NULL() | RETVAL_NULL() | NULL |
RETURN_DOUBLE(d) | RETVAL_DOUBLE(d) | 浮點(diǎn)數(shù) |
RETURN_STRING(s, dup) | RETVAL_STRING(s, dup) | 字符串。如果dup為1,引擎會(huì)調(diào)用estrdup()重復(fù)s,使用拷貝。如果dup為0,就使用s |
RETURN_STRINGL(s, l, dup) | RETVAL_STRINGL(s, l, dup) | 長(zhǎng)度為l的字符串值。與上一個(gè)宏一樣,但因?yàn)閟的長(zhǎng)度被指定,所以速度更快。 |
RETURN_TRUE | RETVAL_TRUE | 返回布爾值true。注意到這個(gè)宏沒有括號(hào)。 |
RETURN_FALSE | RETVAL_FALSE | 返回布爾值false。注意到這個(gè)宏沒有括號(hào)。 |
RETURN_RESOURCE(r) | RETVAL_RESOURCE(r) | 資源句柄。 |
? ? ? ? ? php -i | grep php.ini
1、 請(qǐng)具體敘述PHP的運(yùn)行機(jī)制(細(xì)到多深看你心情, 呵);
PHP從下到上是一個(gè)4層體系:
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

PHP ?? ??? ?? ???? ?? ? ????? ??? ?????. 1. ?? ??? ??? ??? ??? ? ? ??? ??? ??? ?? ?? ??? ???? ???????. 2. ?? ??? ???? ???? ? ?? ????? ?? ?? ?? ??? ?????. 3. $ _get ? $ _post? ?? Hyperglobal ??? ?? ???? ?? ??? ? ??? ??? ??????? ???????. 4. ?? ?? ?? ???? ?? ?? ?? ??? ?????? ?? ??? ??? ?? ??? ???????. ??? ??? ????? ??? ??? ?? ???? ????? ? ??? ? ? ????.

PHP ?? ???? ???? ????? ?? ? ??? ???? ?? ?? ? ??? ???? ?? ??? ?????? ??? ??? ? ? ???????. 1. ??? ?? CSRF? ???? ?? ??? ??? ???? ?????? ??? ???? FINFO_FILE? ?? ?? MIME ??? ?????. 2. ??? ??? ??? ???? ??? ?? ??? ?? ? WEB ????? ??? ???? ??????. 3. PHP ?? ??? ?? ? ?? ???? NGINX/APACHE? ??? ????? ?? ???? ?????. 4. GD ?????? ??? ? ?? ???? ??? ?? ??? ?? ????.

PHP ?? ???? ? ?? ???? ??? ????. 1. // ?? #? ???? ? ?? ??? ???? // ???? ?? ????. 2. ?? /.../ ?? ?? ?? ??? ????? ?? ? ?? ??? ?? ? ? ????. 3. ?? ?? ?? / if () {} /? ?? ?? ??? ????? ??? ?? ?? ?? ??? ???? ????? ???? ??? ?? ???? ???? ??? ? ??? ??????.

PHP ??? ???? ??? ??? ??? ????? ????. ??? ????? ?? ???? ??? "?? ? ?"??? "?"? ???????. 1. ??? ? ??? ??? DocBlock (/*/)? ?? ?? ??? ???? ??? ? ?? ???? ??????. 2. JS ??? ???? ?? ???? ??? ?? ??? ??? ?????. 3. ??? ?? ?? ?? ??? ???? ????? ????? ???? ?? ????? ???? ? ??????. 4. Todo ? Fixme? ????? ???? ? ? ??? ??? ???? ?? ?? ? ??? ???????. ??? ???? ?? ??? ??? ?? ?? ?? ???? ???? ? ????.

Ageneratorinphpisamemory- ???? Way-Erate-Overgedatasetsetsbaluesoneatimeatimeatimeatimallatonce.1.generatorsuseTheyieldKeywordTocroadtOpvaluesondemand, RetingMemoryUsage.2

tolearnpheffectical, startBysetTupaloCalserErverEnmentUsingToolslikexamppandacodeeditor -likevscode.1) installxamppforapache, mysql, andphp.2) useacodeeditorforsyntaxsupport.3)) 3) testimplephpfile.next, withpluclucincludechlucincluclucludechluclucled

PHP??? ???? ??? ?? ?? ????? ???? ??? ?? ??? ??? ?? ? ??? ??? ???? ?????. ???? 0?? ???? ?? ??? ???? ? ?? ???? ?? ?? ? ? ????. MB_SUBSTR? ?? ??? ??? ???????. ? : $ str = "hello"; echo $ str [0]; ?? H; ??? MB_SUBSTR ($ str, 1,1)? ?? ??? ??? ??? ??????. ?? ???????? ???? ??? ???? ?? ???? ?? ?? ???? ?????? ??? ????? ?? ??? ?? ??? ???? ???? ?? ????.

toinstallphpquickly, usexampponwindowsorhomebrewonmacos.1. ??, downloadandinstallxAmpp, selectComponents, startApache ? placefilesinhtdocs.2
