iOS-進階整理09 - PHP后端基礎(chǔ)

PHP后端基礎(chǔ)

PHP(Hypertext Preprocessor)超文本預(yù)處理器向叉,開源腳本語言嗦董,我們用它來連接后臺服務(wù)器和前端顯示

安裝XAMPP(XML,Apache奇唤,MySQL,PHP甲葬,Perl)集成環(huán)境
安裝Coda2懈贺,一款適用于Mac電腦的網(wǎng)頁編程工具,支持(HTML画侣,PHP堡妒,JavaScript,CSS等)
打開XAMPP皮迟,啟動MySQL和Apache服務(wù)器
服務(wù)器的地址默認(rèn)為127.0.0.1万栅,應(yīng)用程序---XAMPP---htdocs是web的根目錄
HTML就不說了,php可以寫在html里面
php需要學(xué)個框架

PHP基本語法
PHP輸出

<?php  
    //中文支持  
    header("Content-type:text/html;charset=utf-8");  
      
    //輸出語句  
    echo("后面是換行"."<br/>");  
      
    //PHP中定義變量時不需要指定變量的類型烦粒,他會根據(jù)賦值動態(tài)判斷  
    $num = 1;  
    $name = "a";  
        //獲取變量長度  
        echo($name.strlen($name)."<br/>");  
      
        //strpos函數(shù)查找字符串在另一字符串中第一次出現(xiàn)的位置  
    echo (strpos("Hello world!","world")."< br/>");  
      
    //隨機數(shù)  
    $random = rand(1,100);  
    echo($random);  
      
    //表達式  
    $var_int = 100;  
    $var_int_b = 1000;  
    $sum = $var_int + $var_int_b;  
    echo($sum."<br>");  
      
    //得到變量的類型  
    echo(gettype($var_int));  
  
    //字符串  
    $var_str = "嘻嘻嘻";  
    $var_str_b = "重中之重";  
  
    //字符串拼接  
    $sum_str = $var_str.$var_str_b;  
      
    echo($sum_str);  
        
    //數(shù)組和字典  
    //數(shù)組是可變的  
    $var_array = array();  
    //給數(shù)組添加元素  
    $var_array[0] = rand(1,100);  
    echo($var_array[0]);  
      
    //給數(shù)組添加隨機數(shù)  
    for($i = 0;$i < 10;$i++)  
    {  
        $var_array[$i] = rand(1,100);  
    }  
  
    //輸出數(shù)組的結(jié)構(gòu)  
    echo(var_dump($var_array)."<br>");  
            
    //字典  
    $var_dic = array("one"=>"12","two"=>3,"three"=>43);  
    echo($var_dic["one"]."< br>");  
    echo(var_dump($var_dic)."<br>");  
      
    //輸出所有的鍵和值  
    foreach($var_dic as $key=>$value)  
    {  
        echo($key."=".$value."<br>");  
    }  
?>  

PHP從數(shù)據(jù)庫請求數(shù)據(jù)
通過瀏覽器訪問下面的URL可以進行登錄判斷
127.0.0.1/getAndPost.php?name=nameStr&pwd=12

<?php  
//接收從瀏覽器發(fā)送過來的用戶名等參數(shù)  
//  $name = $_GET["name"];  
//  $pwd = $_GET["pwd"];  
      
    $name = $_REQUEST["name"];//REQUEST同時支持post和get方法  
    $pwd = $_REQUEST["pwd"];  
  
//鏈接數(shù)據(jù)庫  
    $link = mysql_connect("127.0.0.1","root","");  
    if($link&&mysql_select_db("newDB",$link))  
    {  
//      echo("db ok");  
        //根據(jù)用戶名查詢數(shù)據(jù)庫表  
        $result = mysql_query("select *from user_list where name = '$name'");  
        //得到查詢結(jié)果的行數(shù)(記錄的個數(shù))  
        $num = mysql_num_rows($result);  
        //得到所有的查詢信息  
        $sum_array = mysql_fetch_array($result);  
        if($num!=0)//說明用戶存在,再判斷密碼等參數(shù)是否匹配  
        {  
            if($sum_array["pwd"]==$pwd)//密碼也相同就登錄成功  
            {  
                echo(json_encode(array("flag"=>"登錄成功login OK","name"=>$name,"pwd"=>$pwd)));  
            }  
            else  
            {  
                echo(json_encode(array("flag"=>"密碼錯誤")));  
            }  
        }  
        else  
        {  
            echo(json_encode(array("flag"=>"用戶不存在")));  
        }  
    }  
?>  

通過PHP進行注冊操作
訪問該PHP帶上參數(shù)進行注冊操作
http://127.0.0.1/register.php?name=user1&pwd=123456

<?php  
//從客戶端獲得注冊的用戶信息  
    $name = $_REQUEST["name"];  
    $pwd = $_REQUEST["pwd"];  
      
    //鏈接數(shù)據(jù)庫  
    $link = mysql_connect("127.0.0.1","root","");  
    if($link&&mysql_select_db("cMyDB",$link))  
    {  
        //$result非零代表成功  
        $result1 = mysql_query("select *from register where name ='$name'");  
        //返回結(jié)果行數(shù)  
        $rows = mysql_num_rows($result1);  
          
        if($rows)  
        {  
            echo(json_encode(array("flag"=>"已存在","result"=>"$rows")));  
        }  
        else  
        {  
            //將數(shù)據(jù)插入表中  
            $result = mysql_query("insert into register (name,pwd)values('$name','$pwd')");  
            if($result)  
            {  
                echo(json_encode(array("flag"=>"reg ok")));  
            }  
            else  
            {  
                echo(json_encode(array("flag"=>"reg fs")));  
            }  
        }  
          
        //返回操作影響的行數(shù)  
        mysql_affected_rows($result);  
        //返回查詢結(jié)果的一條數(shù)據(jù),數(shù)組類型  
        //再次執(zhí)行會順序讀取下一條記錄  
        $array = mysql_fetch_array($result);  
          
        //返回字段個數(shù)  
        $count = mysql_num_fields($result);  
        //返回第個$i字段名  
        echo(mysql_field_name($result, $i));  
          
        //使用后釋放資源  
        mysql_free_result($result);  
          
    }  
    else  
    {  
        echo(json_encode(array("flag"=>"網(wǎng)絡(luò)異常")));  
    }  
    //操作完成后關(guān)閉連接  
    mysql_close($link);  
?>  

在OC中可以通過網(wǎng)絡(luò)請求,與php通信徒役,從而進行數(shù)據(jù)庫的讀寫
登錄方法

-(void)userLogin  
{  
    //url  
    NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/getAndPost.php?name=gangcheng&pwd=no"];  
    //session  
    NSURLSession *session = [NSURLSession sharedSession];  
      
    NSURLSessionDataTask *task = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {  
          
        //解析數(shù)據(jù)  
        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];  
        NSString *dic2 = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];  
        NSLog(@"flag--%@",dic[@"flag"]);  
        NSLog(@"%@",dic2);  
    }];  
    [task resume];  
}  

注冊方法

//注冊按鈕  
- (IBAction)regiterAction:(UIButton *)sender {  
      
        //創(chuàng)建url對象  
        NSString *urlStr = @"http://127.0.0.1/register.php";  
        //得到網(wǎng)址  
        NSURL *url = [NSURL URLWithString:urlStr];  
          
        //創(chuàng)建參數(shù)  
        NSString *pStr = [NSString stringWithFormat:@"name=%@&pwd=%@",_nameLabel.text,_pwdLabel.text];  
      
        NSData *pData = [pStr dataUsingEncoding:NSUTF8StringEncoding];  
          
        NSMutableURLRequest *mReq = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30];  
  
        //設(shè)置request的請求方式  
        [mReq setHTTPMethod:@"POST"];  
        [mReq setHTTPBody:pData];  
          
        //建session  
        NSURLSession *session = [NSURLSession sharedSession];  
          
        //加載任務(wù)的數(shù)據(jù)對象  
        NSURLSessionTask *task = [session dataTaskWithRequest:mReq completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {  
            NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];  
            NSString *dic2 = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];  
            NSLog(@"flag--%@",dic[@"flag"]);  
            NSLog(@"%@",dic2);  
        }];  
        //開啟任務(wù)  
        [task resume];  
}  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末杉女,一起剝皮案震驚了整個濱河市鸳吸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌坎拐,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件都伪,死亡現(xiàn)場離奇詭異积担,居然都是意外死亡,警方通過查閱死者的電腦和手機磅轻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門聋溜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人撮躁,你說我怎么就攤上這事⊙蠲保” “怎么了嗤军?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長老客。 經(jīng)常有香客問我震叮,道長,這世上最難降的妖魔是什么苇瓣? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任击罪,我火速辦了婚禮,結(jié)果婚禮上外邓,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布光涂。 她就那樣靜靜地躺著拧烦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪齐佳。 梳的紋絲不亂的頭發(fā)上债沮,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音硅蹦,去河邊找鬼闷煤。 笑死,一個胖子當(dāng)著我的面吹牛鲤拿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播生音,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼幕庐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了异剥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤歹苦,失蹤者是張志新(化名)和其女友劉穎督怜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蚪腋,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年立帖,在試婚紗的時候發(fā)現(xiàn)自己被綠了悠砚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡绑咱,死狀恐怖枢泰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情稼稿,我是刑警寧澤讳窟,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站谋右,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏改执。R本人自食惡果不足惜坑雅,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望终蒂。 院中可真熱鬧遥诉,春花似錦、人聲如沸矮锈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至葱弟,卻和暖如春猜丹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背射窒。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工脉顿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人艾疟。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓蔽莱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親盗冷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理柑司,服務(wù)發(fā)現(xiàn)锅劝,斷路器,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 架構(gòu)師必須知道的26項PHP安全實踐 PHP是一種開源服務(wù)器端腳本語言玻粪,應(yīng)用很廣泛稠集。Apache web服務(wù)器提供...
    meng_philip123閱讀 6,053評論 1 161
  • Welcome 目前網(wǎng)絡(luò)上充斥著大量的陳舊信息,讓PHP新手誤入歧途痹籍,傳播著錯誤的實踐和糟糕的代碼,這必須得到糾正...
    layjoy閱讀 21,657評論 7 118
  • 坐在辦公室里蹲缠,心思早就不知道飛到了哪片海
    玫瑰花名未知閱讀 179評論 0 0
  • 不知從什么時候起斤讥,不再是那個吵吵鬧鬧,倔強的小女孩芭商。或許是長大了近迁,經(jīng)歷多了簸州。人生就是這樣鉴竭,從嬰孩到少年到中年直至老...
    咘嚕耳語閱讀 172評論 0 0