PHP Build and Basics
The 1.php development environment is built:
1. Build under Linux
linux+apache+mysql+php
2. Setting up under Window
Apache+php+mysql+phpmyadmin
View Port: Cmd-->netstat-an
Installation method:
1. Kit Installation:
Common kit: Appserv,wmap,phpstudy
Apache HTTP Server:apache Web server
MySQL Database:mysql Database
PHP Hypertext preprocessor:php Core
PhpMyAdmin: Graphical tool for managing MySQL database-->next
?
Server Name:localhost
Administrator ' s email address:53032104@qq.com--> admin Email
Apache HTTP port:8000--> Port number-->next
?
Please enter the Root password for MySQL server-->root user password
Enter Root Password:root
Re-enter Root Password:root
MySQL Server Setting
Characher Sets and Collations:utf-8 unicode--> Specify database encoding, recommended UTF-8
?
2. Custom Installation:
1.apache
Test: http://localhost
2.php Core Package: (PHP official website: http://www.php.net) decompression can be
Using apache+php under Windows, select VC6 version
Using iis+php under Windows, select VS9 version
?
Apache and PHP Integration:
1. In the D:\phpStudy\Apache2\conf\httpd.conf file, add 130 rows or so:
LoadModule php5_module "D:/phpstudy/php5/php5apache2_4.dll" #php安装目录下的php5apache2 -4.dll
Phpinidir "d:/phpstudy/php5/" #php安装目录
AddType application/x-httpd-php. php. phtml #指定若文件为. php or. phtml, will be handled by PHP
?
2. Under the PHP installation directory: Rename the php.ini-development file to PHP.ini
3. In php.ini search Extension_dir = "./", open this line, specify the path of the ext file under the PHP installation directory
Extension-dir = "D:/phpstudy/php5/ext"
?
Test:
Create a new test.php file in the Htdocs directory under the Apache installation directory with the following code
Phpinfo ();
?>
Restart apache:http://localhost/test.php
?
3.MySQL database: (MySQL website: http://www.mysql.com)
Test:
1. Write a PHP code to test for success
$conn = mysql_connect ("localhost", "root", "root");
if ($conn) {
echo "Connect MySQL database ok!";
}else{
echo "Connect MySQL database not ok!";
}
?>
2. Install a phpmyadmin to test availability (manage MySQL)
Installation method: Unzip to the Htdocs folder, enter the index.php file under this directory
Access mode: http://localhost:8000/phpMyAdmin/index.php
?
2.http://www.comsenz.com
1. Download Discus Forum Code
2. Unzip to the Htdocs folder
3. Modify the file config.inc.php:
$dbhost = ' localhost ';//Database server
$dbuser = ' root ';//database user name
$DBPW = ' root ';//Database Password
$dbname = ' discuz ';//Database name
$pconnect = 0;//Database Persistent connection 0 = off, 1 = Open
?
$database = ' mysql ';//Forum database type, do not modify
$dbcharset = ' UTF8 ';//MySQL character set, optional ' GBK ', ' big5 ', ' utf8 ', ' latin1 ', left blank for set by forum character set
?
$charset = ' utf-8 ';//forum page default character set, optional ' GBK ', ' Big5 ', ' utf-8 '
$headercharset = 0;//Force Forum page Use the default character set, you can avoid some server space page garbled, generally do not need to open. 0= off 1 = Open
?
$forumfounders = ' admin ';//Forum founder UID, can support multiple founders, between using "," delimited.
Note: You need to set php.ini in: Short_open_tag = On
4. Access the install.php file under Discus for database installation
After the installation is complete:
Ucenter's visit Address: http://localhost/upload/ucenter
Ucenter founder Password: admin
Discuz! 's visit Address: Http://localhost/upload/bbs
Administrator Access URL: http://localhost/upload/bbs/admincp.php
Admin Account: admin Admin Password: admin
Ucenter Home's visit URL: http://localhost/upload/home
Administrator Access URL: http://localhost/upload/home/admincp.php
Admin Account: admin Admin Password: admin
?
?
To configure a Web site in an Apache server:
1. To create a Web site in the Apache server, you need to enable the httpd-vhosts.conf file to be added:
Note: Make sure that the DNS Client service is in a startup state
2. The configured host must be registered with the DNS server or Windows system to be externally accessible
?
Ideas:
1. Differentiate different virtual hosts by port
One: Follow the method of binding a site to prepare
1. Development site D:/myblog
2. Configure our httpd.conf file?
Enable httpd-vhosts.conf
Note DocumentRoot "D:/apache/htdocs"
3. Locate the file conf/extra/http-vhosts.conf file
Template:
DocumentRoot "D:/myblog"
DirectoryIndex index.php index.html
Options FollowSymLinks
AllowOverride None
Order Allow,deny
Allow from all
4. Add an object relationship between the IP and the domain name in the Hosts file
Path: C:\Windows\System32\drivers\etc\hosts
Added: 127.0.0.1www.moluo.com
5. Test: Access http://www.moluo.com:80
?
Two. Add a new domain name to the IP binding
1. Development of a new website
2. Configure httpd-vhosts.conf to add a new virtual host
DocumentRoot "D:/myblog2"
DirectoryIndex index.php index.html
Options FollowSymLinks
AllowOverride None
Order Allow,deny
Allow from all
3. Allow Apache to listen on port 82 in the httpd.conf file
Listen 82
4. Add an object relationship between the IP and the domain name in the Hosts file
Path: C:\Windows\System32\drivers\etc\hosts
Added: 127.0.0.1www.fengpeng.com
5. Test: Access http://www.fengpeng.com:82
?
2. Differentiate different virtual hosts by servername
1. Development site D:/myblog
2. Add the configuration in the httpd-vhosts.conf file
DocumentRoot "D:/myblog"
ServerName www.moluo.com
DirectoryIndex index.php index.html
Options FollowSymLinks
AllowOverride None
Order Allow,deny
Allow from all
DocumentRoot "D:/myblog2"
ServerName www.fengpeng.com
DirectoryIndex index.php index.html
Options FollowSymLinks
AllowOverride None
Order Allow,deny
Allow from all
3. Add an object relationship between the IP and the domain name in the Hosts file
Path: C:\Windows\System32\drivers\etc\hosts
Added: 127.0.0.1www.moluo.com
4. Test: Access http://www.moluo.com
Visit http://www.fengpeng.com
?
What the Web site means: A collection of multiple Web resources, including PHP/HTML/JS/CSS
The basic syntax of PHP is introduced:
If you just want to display a variable:
PHP code Comments:
Single-line comment?
/* Multiline Comment */
Quotation marks difference:
Single quotes: output with intact data
Double quotes: Parsing data special characters, variables, etc.!
Constant definition:
Note: 1. Name: Uppercase, Underline
2. Does not require a $ start
3. Once assigned, cannot be changed
1.define ("Tax_rate", "0.02")
2.const tax_rate = 0.02;
Pyramid instance:
$n = 10;
for ($x =1; $x <= $n; $x + +) {
for ($z =1; $z <= $n-$x; $z + +) {
echo "";
}
for ($y =1; $y <= ($x-1) *2+1; $y + +) {
if ($x ==1| | $x = = $n) {
Echo ' * ';
}else{
if ($y ==1| | $y = = ($x-1) *2+1) {
Echo ' * ';
}else{
echo "";
}
}
}
Echo '
';
}
?>
?
Function Description: (Commonly used: require_once ())
Basic format:
function method ($a, $b) {
echo $a + $b;
}
?>
?
The a.php page invokes the function defined by b.php and can use the following directives
Require require_once? include Incliude_once
Example:
1.require ' b.php ';
2.require (' b.php ');
3. $filename = ' b.php ';
? require $filename;
?>
Require and require_once differences:
The former encounters the include file, the latter will determine whether it has been included, if it is included, no longer contains files, save resources, avoid repeating the definition of errors
Include and include_once differences:
The former encounters the include file, the latter will determine whether it has been included, if it is included, no longer contains files, save resources, avoid repeating the definition of errors
Require and include differences:
The former error, terminating the program execution. The latter error, continue the program execution.
?
Bit operations:
1. The highest bit of binary is the sign bit: 0 for positive, 1 for negative
2. Positive source code, anti-code, complement all the same
3. Negative number of the anti-code = Its original code sign bit is unchanged, the other bits take the reverse
4. The complement of negative number = Its anti-code +1
5.0 of the counter code, the complement is 0
6.php has no unsigned number, and the number in PHP is signed
7. In the computer operation, all in a complementary way to calculate
?
Array:
To create an array:
1. $arr [0] = 10;
2. $arr = Array (1, "Hello", true,3.14);
for ($i =0; $i<>< p=""><>
echo $arr [$i];
}
3. $arr = Array ("logo" = "Beijing", "name" = "sp", 5=>520);
Value method: $arr [' logo '], $arr ["name"], $arr [5]
1.foreach ($arr as $val) {
Echo $val;
}
2.foreach ($arr as $key = + $val) {
echo $key. ' = '. $val. '
';
}
Note: If an array is created and no subscript is assigned to an element, PHP automatically uses the current largest subscript value (integer) plus one as the subscript (keyword) for that element.
If you assign a value to an equally subscript element, the original value is overwritten
When accessing array elements, be aware that arrays are out of bounds
PHP Arrays can grow dynamically
Output array Condition: Print_r ($arr); or var_dump ($arr);
Array Common functions:
1.count (): Count ($arr);--> statistic array length
2.is_array (): Is_array ($arr);--> determine if the variable is an array
3.print_r () and Var_dump (): Displaying array information
4.explode ("", $str);--> splits the string into an array
Example:
$STR = "Beijing Shanghai Guangzhou Shenzhen Hong Kong Macau";
$arr = Explode ("", $str);
5.sort ():--> array sorting
6.unset ():--> deletes a key-value pair from an array, and the array does not rebuild the index
7.round (): Round (3.14)-->3 round (1.1415926,2)-->3.14
Tips on how to turn off notice levels:
Mode 1. Change in php.ini file Error_reporting-->error_reporting = e_all & ~e_notice
Mode 2. Add the following code to the page: error_reporting (E_all^e_notice);
Array sorting:
1. Bubble sort
function Bubblesort ($arr) {
$temp = 0;
for ($i =0; $i<>< p=""><>
for ($j =0; $j<>< p=""><>
if ($arr [$j]> $arr [$j +1]) {
$temp = $arr [$j];
$arr [$j]= $arr [$j +1];
$arr [$j +1]= $temp;
}
}
}
Print_r ($arr);
}
?>
2. Select sort
function Selectsort ($arr) {
$temp = 0;
for ($i =0; $i<>< p=""><>
$minValue = $arr [$i];
$minIndex = $i;
for ($j = $i +1; $j<>< p=""><>
if ($minValue > $arr [$j]) {
$minValue = $arr [$j];
$minIndex = $j;
}
}
$temp = $arr [$i];
$arr [$i]= $arr [$minIndex];
$arr [$minIndex]= $temp;
}
Print_r ($arr);
}
?>
3. Insert Sort
Function Insertsort (& $arr) {
for ($i =1; $i<>< p=""><>
$insertValue = $arr [$i];
$insertIndex = $i-1;
while ($insertIndex >=0&& $insertValue < $arr [$insertIndex]) {
$arr [$insertIndex +1]= $arr [$insertIndex];
$insertIndex--;
}
$arr [$insertIndex +1]= $insertValue;
}
Print_r ($arr);
}
?>
4. Quick Sort
function QuickSort ($left, $right,& $arr) {
$l = $left;
$r = $right;
$pivot = $arr [($left + $right)/2];
$temp = 0;
while ($l < $r) {
while ($arr [$l]< $pivot) $l + +;
while ($arr [$r]> $pivot) $r-;
if ($l >= $r) break;
$temp = $arr [$l];
$arr [$l]= $arr [$r];
$arr [$r]= $temp;
if ($arr [$l]== $pivot)--$r;
if ($arr [$r]== $pivot) + + $l;
}
if ($l = = $r) {
$l + +;
$r--;
}
if ($left < $r) QuickSort ($left, $r, $arr);
if ($right > $l) quickSort ($l, $right, $arr);
}
?>
Find:
1. Sequential Lookup
Function Search (& $arr, $findValue) {
$flag =false;
for ($i =0; $i<>< p=""><>
if ($findValue = = $arr [$i]) {
echo "Query to $findvalue, subscript for $i.";
$flag =true;
Break
}
}
if (! $flag) {
echo "not queried";
}
}
2. Two points Search
Function BinarySearch (& $arr, $findValue, $leftIndex, $rightIndex) {
Sort ($arr);
if ($leftIndex > $rightIndex) {
Echo ' not queried ';
Return
}
$middleIndex =round (($leftIndex + $rightIndex)/2);
if ($findValue > $arr [$middleIndex]) {
BinarySearch ($arr, $findValue, $middleIndex +1, $rightIndex);
}else if ($findValue < $arr [$middleIndex]) {
BinarySearch ($arr, $findValue, $leftIndex, $middleIndex-1);
}else{
echo "Query to $findvalue, subscript for $middleindex.";
}
}
?
Multidimensional Arrays:
Definition: $arr = array (array (), array () ...);