輕松搭建PHP開發(fā)環(huán)境Win32

輕松搭建PHP開發(fā)環(huán)境Win32

概要

堅(jiān)果 Jimbowhy 前后端腳本編程輕松篇集合文章:

PHP就一個(gè)超文本處理程序語(yǔ)言,學(xué)習(xí)難度小,簡(jiǎn)單實(shí)用。對(duì)于想入門的人,要配置WEB服務(wù)器,要配置mysql什么的,搭建PHP運(yùn)行環(huán)境可能是個(gè)花時(shí)間的事。那么,這里給一個(gè)簡(jiǎn)單實(shí)用方法來(lái)運(yùn)行PHP。

基本工具

  • 下載WIN32版本PHP,如 php-5.3.5-Win32-VC6-x86.zip

  • 下載editplus編輯器,這是一個(gè)簡(jiǎn)單實(shí)用的小工具,5我從1.0版本一直用到現(xiàn)在的5.0,后面簡(jiǎn)單介紹一下它集成的zen coding。

安裝配置

  • 解壓PHP壓縮包到一個(gè)方便開發(fā)的目錄,如C:\php-5.3.5-Win32-VC6-x86。

  • 安裝editplus,完成后做點(diǎn)小配置。打開菜單 tools => configure user tools,在配置框中 Add tool 添加一個(gè)程序命令工具,并設(shè)置命令為PHP可執(zhí)行文件:

"C:\php-5.3.5-Win32-VC6-x86\php.exe" -f

在參數(shù)Arguments中將editplus編輯的文件信息輸入給php.exe:

$(FilePath)

選擇Action為Capture output選項(xiàng),這樣就可以捕捉PHP運(yùn)行的結(jié)果。確定后,就可以通過(guò)Ctrl+1來(lái)執(zhí)行php.exe解析php程序了。


configure

開始寫PHP程序

接下來(lái)試試寫個(gè)PHP測(cè)試程序,從PHP官方文檔中抄來(lái)一段代碼,保存后直接按Ctrl+1運(yùn)行它:

class Bar 
{
    public function test() {
        $this->testPrivate();
        $this->testPublic();
    }
    public function testPublic() {
        echo "Bar::testPublic\n";
    }
    private function testPrivate() {
        echo "Bar::testPrivate\n";
    }
}

class Foo extends Bar
{
    public function testPublic() {
        echo "Foo::testPublic\n";
    }
    private function testPrivate() {
        echo "Foo::testPrivate\n";
    }
}
$myFoo = new foo();
$myFoo->test(); // Bar::testPrivate
                // Foo::testPublic
?>
php parse

看結(jié)果,PHP輸出的內(nèi)容直接在editplus界面顯示了。

Bar::testPrivate
Foo::testPublic

zen coding 加速HTML錄入

zen coding是一個(gè)小工具也叫Emmet,很多優(yōu)秀的編輯器都有它的身影,在editplus中是通過(guò)腳本實(shí)現(xiàn)的。舉個(gè)小麗說(shuō)明一下它的作用,輸入一下代碼:

div#layer>ul.books>li*5>a.item$[href=to/page$.html]{Book $}

勾選editplus的Emmet菜單下 Use Emmet 和 Tab to expand,這樣按下Tab鍵就會(huì)調(diào)用Emmet功能了,它會(huì)將上面的內(nèi)容轉(zhuǎn)換為一下HTML標(biāo)記:

<div id="layer">
    <ul class="books">
        <li>
            <a class="item1" href="to/page1.html">Book 1</a>
        </li>
        <li>
            <a class="item2" href="to/page2.html">Book 2</a>
        </li>
        <li>
            <a class="item3" href="to/page3.html">Book 3</a>
        </li>
        <li>
            <a class="item4" href="to/page4.html">Book 4</a>
        </li>
        <li>
            <a class="item5" href="to/page5.html">Book 5</a>
        </li>
    </ul>
</div>

看見了么,一下就生成了一個(gè)列表,還設(shè)置好了DIV的ID,Anchor的class、href等屬性。上面的那條指令中的#和點(diǎn)號(hào)意思就是設(shè)置ID和class,方括號(hào)[]表示其他屬性的設(shè)置,花括號(hào){}表示文字內(nèi)容,*5表示要5次:),要10次20次也是可以的。

PS:這兩天剛到深圳,今天手機(jī)上了一個(gè)droidphp,計(jì)劃在手機(jī)上寫php的,連基本的class定義都說(shuō)syntax error unexpected {,寫點(diǎn)什么打發(fā)一下。

解決一個(gè)隱晦的問(wèn)題

這幾天在我的Le2安裝了DroidPHP和KSWEB,有了它們手機(jī)就可以跑PHP服務(wù)器了。此時(shí)我正在看PHP MANUAL 后期靜態(tài)綁定,其中有一段代碼,想拷貝下來(lái)測(cè)試運(yùn)行一下,這一試不得了,PHP竟然提示:

Parse error: syntax error, unexpected ‘{’

對(duì)應(yīng)代碼是:

<?php
class A {
    public static function foo() {
        static::who();
    }

    public static function who() {
        echo __CLASS__."\n";
    }
}

class B extends A {
    public static function test() {
        A::foo();
        parent::foo();
        self::foo();
    }

    public static function who() {
        echo __CLASS__."\n";
    }
}
class C extends B {
    public static function who() {
        echo __CLASS__."\n";
    }
}

C::test();
?>

錯(cuò)誤提示剛好是 class A { 這個(gè)花括號(hào),真是詭異的錯(cuò)誤!一點(diǎn)語(yǔ)法錯(cuò)誤沒有,我能想到的原因有一下幾個(gè):

  • 代碼文件編碼匹配問(wèn)題
  • PHP版本機(jī)及配置文件問(wèn)題
  • PHP在Android平臺(tái)編譯運(yùn)行問(wèn)題
  • Lighttped服務(wù)器配置問(wèn)題

經(jīng)過(guò)許久的探索,并沒有發(fā)現(xiàn)別人遇到類似問(wèn)題的信息,最后想到Hex一下文件,終于發(fā)現(xiàn)了線索,文件的空格處不是常見的 0x20,而是 0xC2A0,這是UTF字符集的東西,但她確確實(shí)實(shí)是空格,0xA0
字符名字叫 NO-BREAKSPACE,只是PHP處理不了,同時(shí)并不排除其他程序語(yǔ)言會(huì)出現(xiàn)同類問(wèn)題。一直以來(lái)都很注意編碼方面細(xì)節(jié)的,遇上這樣的問(wèn)題也真是運(yùn)氣。參考NO-BREAKSPACE

不過(guò)最后說(shuō)一句,這個(gè)問(wèn)題真的很惡心!不是嗎,它根本就不應(yīng)該是個(gè)問(wèn)題。

微信掃一掃打賞堅(jiān)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容