php入門小知識小結(jié)

一.Apache基礎(chǔ)

1.網(wǎng)站幾個的基本概念

  • 靜態(tài)網(wǎng)站:

不支持數(shù)據(jù)交互的網(wǎng)站,單純的靜態(tài)文件(HTML,CSS,Js組合),后綴一般html,htm.

  • 動態(tài)網(wǎng)站:

支持數(shù)據(jù)交互的網(wǎng)站,動態(tài)網(wǎng)站中是可以操作靜態(tài)網(wǎng)頁的.

  • 實現(xiàn)動態(tài)網(wǎng)站的技術(shù)

    實現(xiàn)技術(shù) 網(wǎng)站后綴
    ASP asp
    PHP php
    .NET aspx
    JAVA jsp
  • 網(wǎng)絡請求過程:

客戶端給服務器發(fā)送一個請求:(HTTP請求),服務器會把靜態(tài)資源(HTML代碼,圖片,js,css)發(fā)送到客戶端(HTTP response),客戶端通過瀏覽器解析返回的代碼,呈現(xiàn)頁面給用戶.

  • 端口和端口號:

端口號范圍0-65535, 1024一下的端口號一般都留給系統(tǒng). 80端口一般留給web服務用, 21端口留給FTP, 25端口留給郵件服務器用.

  • 查詢當前電腦打開的端口:

win: netstat -ano
mac: lsof -i

  • BS和CS架構(gòu)

B: Browser 瀏覽器

S: Server 服務器

C: Client 客戶端

BS架構(gòu):通過瀏覽器去訪問服務器

CS架構(gòu):通過客戶端軟件去訪問服務器

  • 前臺和后臺

前臺: 給瀏覽者看到的

后臺: 給管理者操作的,后臺是用來操作前臺的數(shù)據(jù)的.

站點:把和網(wǎng)站有關(guān)的素材都放到一個文件夾,此文件夾就叫站點.

  • Apache

語言的運行需要環(huán)境,Apache為PHP運行提供環(huán)境,(IIS)
亦可以為PHP提供環(huán)境,IIS是微軟開發(fā)的為ASP和aspx提供環(huán)境的.

自定義安裝Apache需要設(shè)置安裝路徑.
還可以設(shè)置配置.

一般操作有:start,stop,restart.

目錄結(jié)構(gòu):

bin: apache的命令文件夾
conf: 配置文件
htdocs: 虛擬目錄

httpd.conf, apache 重要的配置文件

PHP:自定義安裝要配置apache配置文件的目錄

  • 常見的數(shù)據(jù)庫

Access(MS,微軟),MySql(甲骨文),SQL Server(MS),Oracle(甲骨文)

  • lamp/wamp 更改虛擬目錄(htdocs)

在Apache的配置文件中配置PHP虛擬目錄的位置.

在httpd.conf配置文件中查找DocumentRoot,進行修改.指定新目錄后還要設(shè)置目錄的訪問權(quán)限
.在Directory,找到對應的文件夾,將權(quán)限設(shè)置為allow from all.

  • 虛擬目錄和站點的區(qū)別

站點:單純的一個文件夾

虛擬目錄:文件夾 + 權(quán)限

  • 更改首頁

在Apache的配置文件查找DirectoryIndex,添加相應的文件為默認首頁

更改監(jiān)聽端口號:

Listen port
可以監(jiān)聽多個端口號

listen 80

listen 90

  • DNS 解析

Domain Name System 域名解析系統(tǒng),將域名解析成 ip地址.互聯(lián)網(wǎng)上唯一標示一臺計算機的是ip地址.不方便記憶,所以用域名對應一個ip地址.

客戶端輸入域名,首先會請求最近的DNS服務器,將域名解析成ip地址.最近的DNS解析服務器是本機.在 /etc/hosts文件下,所以可以設(shè)置虛擬域名

  • 虛擬主機

一個Apache支持多個網(wǎng)站,從瀏覽者角度看,每個網(wǎng)站都是一個獨立的主機,稱為虛擬主機.

開啟虛擬主機的配置:

1.在Apache配置文件夾下 conf/extra/httpd-vhosts.conf 開啟.

2.打開虛擬主機配置文件

<VirtualHost*:80>
DocumentRoot "/usr/php" //主機地址
ServerName www.hahaha.com //綁定的域名
<Directory "/usr/php">
Allow from all //設(shè)置權(quán)限
</Directory>
</VirtualHost>

  • 虛擬主機 = 站點 + 站點的權(quán)限+域名+端口號

二.PHP基礎(chǔ)知識整理

PHP: Hypertext Preprocessor 超文本預處理器,是一種通用的開源腳本語言,PHP運行在服務器端.

  • PHP4種定界符

1.標準風格

<?php 
    //statement
?>

2.短標記風格:默認不支持,要在PHP配置文件中php.ini開啟支持短標記,short_open_tag = On

<? 
    //statement
?>

3.asp風格,asp_taps = On

<% 
    //statement
%>

4.script風格

<script language="php"> 
    //statement
</script>

  • PHP 語句以分號結(jié)尾;關(guān)鍵字不區(qū)分大小寫,變量名區(qū)分大小寫.

  • 變量命名: 變量是計算機內(nèi)存中的一段空間.PHP的變量名必須以$開頭,$不是變量名的組成部分,僅表示PHP變量名從此處開始.除了$符號,字母,下劃線開頭,后面緊跟字母數(shù)字下劃線.

//賦值
$a = 10;
$b = $a;
$c = &$a; //傳地址
$a++;
echo $b; //10
echo $c; //11
  • 銷毀變量

通過unset()來銷毀變量,銷毀的是變量名.值是由PHP垃圾回收機制銷毀的.

<?php 
    $a = 10;
    $b = &$a;
    unset($a);
    echo $b;    // 10
?>

  • 常量

當一個值在腳本執(zhí)行周期內(nèi)不發(fā)生變化,可以將值聲明為常量.用關(guān)鍵字 define()定義,常量名不能有$開頭

<?php 
    define("name","xiaoQQ");
    echo name;
?>

默認情況下常量名是區(qū)分大小寫的,可以設(shè)置define的第三個參數(shù)來設(shè)置是否區(qū)分大小寫的:TRUE不區(qū)分,FALSE區(qū)分大小寫.常量不能重復定義

//多人合作時要判斷
<?php 
    define("name","hahaha");
    if(!define("name")){
        define("name");
    }
?>

考慮和const定義常量的區(qū)別.

使用const使得代碼簡單易讀,const本身就是一個語言結(jié)構(gòu)褥琐,而define是一個函數(shù)哑了。另外const在編譯時要比define快很多丈攒。

(1).const用于類成員變量的定義镣陕,一經(jīng)定義变抽,不可修改彤敛。define不可用于類成員變量的定義牌借,可用于全局常量碍庵。

(2).const可在類中使用映企,define不能。

(3).const不能在條件語句中定義常量静浴。

  • PHP執(zhí)行的原理

客戶端向服務器發(fā)送一個請求,如果請求的是一個HTML頁面,服務器直接將HTML頁面發(fā)送到客戶端給瀏覽器解析.如果請求的是PHP頁面,服務器則會運行PHP頁面然后生成標準的HTML代碼發(fā)送到客戶端.

  • PHP的數(shù)據(jù)類型

1.基本類型

整型integer: -231~231-1

浮點型float(double)

布爾類型boolean:TRUE,FALSE.

字符串類型string

2.復合類型

array數(shù)組:

object對象:

3.特殊類型

resource資源:PHP的外部數(shù)據(jù)

NULL無類型,空值

  • 字符串

單引號字符串是真正的字符串,雙引號字符串要將變量給替換.單引號不需要運算,執(zhí)行效率相對高點.

變量如果在字符串的簽名或者中介,要用{}包含
否則會報錯:未定義變量

<?php 
    $name = "xiaoming";
    echo "{$name} is my name";
    //or
    echo "${name} is my name";
?>

  • 數(shù)組:計算機內(nèi)存中的一段連續(xù)空間,通過下標來區(qū)分數(shù)組.

數(shù)組分成:

索引數(shù)組:通過元素的位置做下標,默認從零開始,每次增長1,可以更改數(shù)組的起始下標

關(guān)聯(lián)數(shù)組: 字符串做下標

<?php
    //索引數(shù)組
    $names = array("tom","ted","color","rose");
    
    echo $names[0],'<br>';
    
    //關(guān)聯(lián)數(shù)組(字典)
    $emp = array("name"=>"xiaoming","gender"=>"male","age"=>23);
    
    echo $emp["name"],'<br>';
    
    $arr1 = array(1=>'a','b','c'); //修改起始下標
    //Array([1]=>a [2]=>b [3]=>c)
    
    $arr2 = array('a',2=>'b','c',5=>'d');
    
    //Array([0]=>a [2]=>b [3]=>c [5]=>d); //每次增長1
    
    $arr3 = array(1=>'a',1=>'b',1=>'c','d');
    //Array([1]=>c [2]=>d);  //會替換
?>
  • 輸出語句 echo和print,print_r,var_dump

echo :只能輸出數(shù)字,字符串,對于布爾類型,TRUE輸出1,FALSE輸出0,可以一次輸出多個參數(shù),沒有返回值

print :和echo很類似,一次只能輸出一個參數(shù),輸出成功返回1,失敗返回0

print_r :用來輸出數(shù)組,輸出的內(nèi)容包括 key 和value,不包括數(shù)據(jù)類型

var_dump :如果輸出普通變量,輸出的變量的值和變量的類型.如果輸出的是數(shù)組,包括值,鍵,值的數(shù)據(jù)和類型

  • PHP注釋 //單行注釋 ,/**/ 多行注釋

  • 運算符

一元運算符: 負號, ++(遞增1),--(遞減1)

二元運算: + , - , * ,/

  • 號在js,java中可以做數(shù)字的相加,也可以做字符串相連接,在PHP中,只能做數(shù)字運算

 <?php 
 
    echo '10' + '20';   //30
    
    echo '10aa' + '20bb';   //30
    
    echo 'aa' + 'bb';   //0
 
 ?>  
  • 比較運算符

, >=, <, <=, ==, !=, ===, !==

== 只比較值, === 比較值和數(shù)據(jù)類型

<?php 
   $a = 10;
   $b = 'b';
   if($a == $b){
       echo 'equal';
   }else {
       echo 'not equal';
   }
   //equal
   
   echo "<br>";
   
   if($a === $b){
       echo "全等";
   }else {
       echo "不全等";
   }
   //不全等
   
   echo "<br>";
   
   $a = "abc";
   $b = 0;
   
   if($a == $b){
       echo "equal";
   }else {
       echo "not equal";
   }
   
   //equal
   
?>
  • 邏輯運算符: &&(與) ||(或者) !(非)

  • 字符串拼接: .點號

  • 賦值運算符: =, +=, *=, /=, %=, .=

  • 三目運算符: 表達式?值1:值2

<?php 
   $sum = 20;
   echo $um%2==0?'偶數(shù)':'奇數(shù)';  //偶數(shù)
?>
  • 判斷語句

單分支: if(){}

雙分支:if(){} else {}

多分支: if(){} elseif(){} ... else{}

is_numeric()判斷是否是數(shù)字或者數(shù)字字符串;
is_int() 判斷是否是整型

把數(shù)字字符串轉(zhuǎn)換為數(shù)字 $num+=0;

  • 循環(huán)語句

for(初始值;條件;增量){};

while(條件){};

do{}while(條件);

foreach :用來遍歷數(shù)組

<?php

   $stu = array("tom","berry","haha","hi");
   foreach($stu as $value){
       echo $value;
   }
   
   foreach($stu as $key=>$value){
       echo $value;
   }
   
   $names = array("name"=>"xiaoming","gender"=>"male","age"=>23);
   
   foreach($names as $k=>$v){
       echo "{$v}=>{$v}<br>"
   }
?>
  • 函數(shù)

  • 預定義函數(shù): php已經(jīng)定義的函數(shù),如is_numeric(),var_dump(),is_int();

  • 自定義函數(shù)

<?php 
   function functionName(parameters){
       //function body
       [return];
   }
?>

  • 解決頁面亂碼

1.加meta標簽 <meta charset="utf-8">

2.php設(shè)置header: header('Content-Type:text/html;charset=utf-8');

  • 訪問全局變量
<?php 
   $num1 = 10;
   function fun(){
       $num2 = 20;
       echo $GLOBALS["num1"]+$num2222222;
   }
?>

三.數(shù)據(jù)庫

數(shù)據(jù)庫的發(fā)展: 文件系統(tǒng)(使用磁盤文件來存儲數(shù)據(jù))=>第一代數(shù)據(jù)庫(出現(xiàn)了網(wǎng)狀模型,層次模型的數(shù)據(jù)庫)=>第二代數(shù)據(jù)庫(關(guān)系型數(shù)據(jù)庫和結(jié)構(gòu)化查詢語言)=>新一代數(shù)據(jù)庫("關(guān)系-對象"型數(shù)據(jù)庫);

層次模型是一種導航結(jié)構(gòu)堰氓,
優(yōu)點:分類管理,如果查詢同一類的數(shù)據(jù)是很方便的苹享。
缺點:如果查詢很多不是同一類的數(shù)據(jù)双絮,效率就很低了
層次結(jié)構(gòu)可以造成數(shù)據(jù)無效,比如張經(jīng)理管理了一個員工叫張三得问,李經(jīng)理也管理了一個叫張三囤攀,我們無法區(qū)分張三是一個人還是兩個人。

網(wǎng)狀模型解決了層次模型數(shù)據(jù)無效的問題宫纬,但是沒有解決導航問題,深層率查詢,效率很低.

關(guān)系模型中焚挠,每個表都是獨立的,通過公共字段來建立關(guān)系漓骚。優(yōu)點:表是獨立的蝌衔,需要什么數(shù)據(jù)就到那個表中查詢。
缺點:多表查詢的時候效率低下蝌蹂。

關(guān)系:兩個表的公共字段叫關(guān)系

  • SQL語句

Structured Query Language 結(jié)構(gòu)化查詢語言,是用來操作關(guān)系型數(shù)據(jù)庫的.常用的關(guān)系型數(shù)據(jù)有:

Access,MySQL,Sql Server,Oracls.

標準的SQL是所有關(guān)系型數(shù)據(jù)庫都支持的操作語句,標準的SQL也叫作SQL-92.但是每個數(shù)據(jù)庫在標準的基礎(chǔ)上又擴展了自己的東西.所有,一個數(shù)據(jù)庫的拓展語句在在其他數(shù)據(jù)庫不能運行.

  • 連接數(shù)據(jù)庫

需要的參數(shù): Host (-h),username (-u), password (-p),port(默認3306) (-P)

mysql -u root -h localhost -p
  • 退出數(shù)據(jù)庫:exit,quit,\q

  • 數(shù)據(jù)庫操作:數(shù)據(jù)庫的本質(zhì)是一個文件.操作數(shù)據(jù)庫的軟件叫做數(shù)據(jù)庫管理系統(tǒng).

/**
*   創(chuàng)建數(shù)據(jù)庫
*   如果創(chuàng)建的數(shù)據(jù)庫已經(jīng)存在,會報錯.所以一般要進行判   斷.
*  同時,如果數(shù)據(jù)庫名是關(guān)鍵字或者純數(shù)字,需要加上反引    號,最好的辦法是任何時候都加反引號
*/
Create database db_name [charset=字符編碼]
Create database if not exists db_name [charset=字符編碼]


/** 
*/
2.  查詢數(shù)據(jù)庫
show database;

3.顯示數(shù)據(jù)庫的創(chuàng)建語句
show create database create db_name;

4. 更改數(shù)據(jù)庫
alter database db_name [option];

//eg:alter database haha charset=gbk;

5. 刪除數(shù)據(jù)庫:如果數(shù)據(jù)庫不存在會報錯
drop database if exists db_name;

6. 選擇數(shù)據(jù)庫
    use db_name;
  • 數(shù)據(jù)庫表的操作

幾個概念:

行row:也叫記錄,一行就是一條記錄

列(column) : 一列就是一個字段,字段也叫屬性,一個表中包含多個字段

1.創(chuàng)建表:(primary key)主鍵不能重復,不能為空,一個表只能有一個主鍵,主鍵可以由多個字段組成.

create table table_name(
    field1 data_type [null | not null][default][auto_increment][primary key],
    field2 data_type,
    ...,
);

2. 查看所有表
show tables;

3.顯示創(chuàng)建表的SQL語句
show create table table_name [\G];

4.顯示表結(jié)構(gòu)
describe [desc] table_name;

5.刪除表
drop tabel table_name1,table_name2,...;

數(shù)據(jù)類型:

int,decimal(總位數(shù),小數(shù)位數(shù)) 存小數(shù) decimal(10,3), char(1):定長, varchar(10):可變長度, text:大段文字

  • 數(shù)據(jù)操作
1.插入數(shù)據(jù):插入字段可以和數(shù)據(jù)庫中字段順序不一致,但是值和插入的字段順序必須一致. 如果插入字段省略掉,插入的值和數(shù)據(jù)庫表的字段的順序和個數(shù)都要一致.

insert into table_name (field1,field2) values (value1,value2);

//自動增長的插入
insert into student values (null,"name","female","shenzhen",22);

//默認值的插入
insert into student values (null,"name","female",default,33);


2.數(shù)據(jù)的修改
update table_name set field1=value1,field2=value2 [where 條件];

//eg:
update student set gender="male" where name="xiaoming";

update student set gender = "female";

3.刪除數(shù)據(jù)
delete from table_name [whre 條件];

delete from student where name = "haha";

delete from student;    //所有的數(shù)據(jù)都刪除了

4 .查詢數(shù)據(jù)
select 列名 from 表 [where 條件] [order by 排序字段 asc|desc] [limit [起始位置默認0],或者的記錄數(shù)量];
升序:asc
降序:desc
默認升序

select name,gender from student;
select * from;  //獲取所有
select * from student order by score desc;
select * from student limit 3;
select * from student limit 2,10;
select * from student order by score desc limit 3;

//取出第一位
select * from stu order by score desc limit 0,1
  • 運算符

比較運算符: > , >=, <, <=, = , <>(不等于)
邏輯運算符: and, or, not

聚合運算:

Sum(), Avg(), Min(), Count(), Max().

select max(score) from student;
select min(score) from student;
select sum(score) from student;
select avg(score) from student;
select count(*) from student;
select count(*) from student where gender="male";

4.PHP與MySQL

  • php開啟MySQL拓展,PHP本身是一個框架,它的功能是由PHP拓展而來的,要通過PHP連接數(shù)據(jù)庫,必須開啟PHP連接MySQL的功能,就是PHP的MySQL拓展. 在php.ini中,把extension=php_mysql.dll 開啟,重啟服務器.
1.php連接數(shù)據(jù)庫
$connect = mysql_connect("localhost",'root','password') or die("數(shù)據(jù)庫連接失敗");
/**
    通過@符號屏蔽信息
    $connect = @mysql_connect("localhost",'root','password') or die("數(shù)據(jù)庫連接失敗");
*/

2. 終止執(zhí)行:exit(),和die();
die()停止執(zhí)行,把生成的代碼發(fā)送到客戶端.

3. 選擇數(shù)據(jù)庫
方法1: 執(zhí)行 use db_name
mysql_query("use database_name") or die("數(shù)據(jù)選擇失敗");

方法二:
mysql_select_db("database_name") or die ("數(shù)據(jù)庫選擇失敗");

4. 設(shè)置字符編碼
mysql_query("set names utf8");

5.查詢數(shù)據(jù)庫 : 返回一個資源類型的數(shù)據(jù)

$results = mysql_query("select * from products");       //resource type

mysql_fetch_row: 取出結(jié)果集中數(shù)據(jù)
開始匹配,指針指向第一個記錄.取出資源中的當前記錄,匹配成索引數(shù)組,指針指向下一條記錄.

5.1.
while($rows = mysql_fetch_row($results)){
    echo $rows[0];
    echo "<br>";
    echo $rows[1];
    echo "<br>";
    echo $rows[2];
    echo "<br>";
    echo $rows[3];
    echo "<br>";
}

這種方法讀取數(shù)據(jù)缺點:數(shù)據(jù)庫字段發(fā)生變化,會影響數(shù)組的索引編碼.


5.2: mysql_fetch_assoc : 形成關(guān)聯(lián)數(shù)組
數(shù)組的鍵和數(shù)據(jù)表的字段名相關(guān)聯(lián)
while($rows = mysql_fetch_assoc($results)){
    echo $rows["name"];
    echo "<br>";
    echo $rows["gender"];
    echo "<br>";
    echo $rows["age"];
    echo "<br>";
    echo $rows["id"];
    echo "<br>";    
}

5.3: mysql_fetch_object: 匹配成對象,通過->訪問

while($obj=mysql_fetch_object($results)){
    echo $rows->name;
    echo "<br>";
    echo $rows->gender;
    echo "<br>";
    echo $rows->age;
    echo "<br>";
    echo $rows->id;
    echo "<br>";
}


6. 釋放資源 mysql_free_result($results);
7. 關(guān)閉連接 mysql_close($connect);

頁面執(zhí)行完畢后,所有變量全部銷毀,可以不用手動釋放資源.

數(shù)據(jù)的導入與導出噩斟,用phpMyAdmin工具

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市孤个,隨后出現(xiàn)的幾起案子剃允,更是在濱河造成了極大的恐慌,老刑警劉巖齐鲤,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斥废,死亡現(xiàn)場離奇詭異,居然都是意外死亡佳遂,警方通過查閱死者的電腦和手機营袜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丑罪,“玉大人荚板,你說我怎么就攤上這事凤壁。” “怎么了跪另?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵拧抖,是天一觀的道長。 經(jīng)常有香客問我免绿,道長唧席,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任嘲驾,我火速辦了婚禮淌哟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辽故。我一直安慰自己徒仓,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布誊垢。 她就那樣靜靜地躺著掉弛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪喂走。 梳的紋絲不亂的頭發(fā)上殃饿,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音芋肠,去河邊找鬼乎芳。 笑死,一個胖子當著我的面吹牛业栅,可吹牛的內(nèi)容都是我干的秒咐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼碘裕,長吁一口氣:“原來是場噩夢啊……” “哼携取!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起帮孔,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤雷滋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后文兢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晤斩,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年姆坚,在試婚紗的時候發(fā)現(xiàn)自己被綠了澳泵。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡兼呵,死狀恐怖兔辅,靈堂內(nèi)的尸體忽然破棺而出腊敲,到底是詐尸還是另有隱情,我是刑警寧澤维苔,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布碰辅,位于F島的核電站,受9級特大地震影響介时,放射性物質(zhì)發(fā)生泄漏没宾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一沸柔、第九天 我趴在偏房一處隱蔽的房頂上張望循衰。 院中可真熱鬧,春花似錦勉失、人聲如沸羹蚣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至咽弦,卻和暖如春徒蟆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背型型。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工段审, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人闹蒜。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓寺枉,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绷落。 傳聞我的和親對象是個殘疾皇子姥闪,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

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