php用于處理數(shù)據(jù)生成html代碼,但是你要明白它是在服務器端的腳本,你要改變html代碼就需要不斷的跟服務器端交互,頁面也不斷被刷新。而javascript是客戶端腳本,它不需要與服務器端交互即可完成html代碼的改變,也就是不需要刷新頁面,你還可以通過ajax在不刷新頁面的情況下與服務器端交互獲取數(shù)據(jù)。

創(chuàng)新互聯(lián)建站服務項目包括應縣網(wǎng)站建設、應縣網(wǎng)站制作、應縣網(wǎng)頁制作以及應縣網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,應縣網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到應縣省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
因工作需要,客戶端軟件的一些界面用HTML+CSS+Javascript實現(xiàn),這些文件放在客戶端本地,以本地文件形式加載,但是有些情況下,需要連接服務器取得一些信息,如果不做任何處理,則請求失敗,返回的信息如下:
No
'Access-Control-Allow-Origin'
header
is
present
on
the
requested
resource.
Origin
'null'
is
therefore
not
allowed
access.
這是因為瀏覽器跨域策略起作用,阻止了跨域的請求。看看HTTP請求過程就知道。第一次請求后端時候,瀏覽器意識到是訪問一個跨與資源,沒有直接發(fā)送GET請求獲取數(shù)據(jù),而是發(fā)送了一個OPTIONS請求詢問是否可以訪問該資源。我們稱之為Preflight請求,默認因為同源策略的存在,該請求返回的Header中沒有'Access-Control-Allow-Origin'屬性,所以訪問失敗。
如果要實現(xiàn)跨域,關鍵在于服務器,客戶端的代碼按照正常的方式編寫即可。對于服務器,只需要在收到OPTIONS請求的地方,返回的頭信息中增加該屬性即可,代碼如下:
header("Access-Control-Allow-Origin:
*");
注意,一定要在所有信息輸出到客戶端之前設置。
以上所述是小編給大家介紹的PHP如何實現(xiàn)跨域的相關內(nèi)容,希望對大家有所幫助!
你所涉及的問題有兩方面。
1、php列表程序;把文章標題、作者、日期、點擊率等列表顯示。
2、php分頁程序;對當所有的列表項進行分面,并按照分頁進行顯示。
因為列表程序可以說是項目中比較重要的程序,就像電腦主板一樣,上面承載有很多的鏈接,相對有點復雜。簡單一點跟你說,又怕你弄不清楚,說詳細一點,你可能又更糊涂了。下面把思路跟你說一下吧:
(1)從數(shù)據(jù)庫中循環(huán)讀出符合要求的記錄,不斷賦值給數(shù)組,如$title[$i];
在這期間,要獲取記錄總數(shù)、總頁數(shù)、當前頁數(shù)等內(nèi)容;
(2)做靜態(tài)頁面,循環(huán)做表格(行),從數(shù)組中不斷取值;
(3)顯示分頁的鏈接和跳轉行;
程序并不是很難,只是比較繁瑣。如果你急需現(xiàn)成的,就把數(shù)據(jù)庫相關信息發(fā)到我郵箱,幫你定制一個,你自己再改。
#######?基本的數(shù)據(jù)結構?########
//二分查找(數(shù)組里查找某個元素)
function?bin_sch($array,?$low,?$high,?$k){?
if?($low?=?$high){?
$mid?=?intval(($low+$high)/2);?
if?($array[$mid]?==?$k){?
return?$mid;?
}elseif?($k??$array[$mid]){?
return?bin_sch($array,?$low,?$mid-1,?$k);?
}else{?
return?bin_sch($array,?$mid+1,?$high,?$k);?
}?
}?
return?-1;?
}?
//線性表的刪除(數(shù)組中實現(xiàn))
function?delete_array_element($array,?$i)
{
$len?=?count($array);?
for?($j=$i;?$j$len;?$j++){
$array[$j]?=?$array[$j+1];
}
array_pop($array);
return?$array;
}
//冒泡排序(數(shù)組排序)
function?bubble_sort($array)
{
$count?=?count($array);
if?($count?=?0)?return?false;
for($i=0;?$i$count;?$i++){
for($j=$count-1;?$j$i;?$j--){
if?($array[$j]??$array[$j-1]){
$tmp?=?$array[$j];
$array[$j]?=?$array[$j-1];
$array[$j-1]?=?$tmp;
}
}
}
return?$array;
}
//快速排序(數(shù)組排序)
function?quicksort($array)?{
if?(count($array)?=?1)?return?$array;
$key?=?$array[0];
$left_arr?=?array();
$right_arr?=?array();
for?($i=1;?$icount($array);?$i++){
if?($array[$i]?=?$key)
$left_arr[]?=?$array[$i];
else
$right_arr[]?=?$array[$i];
}
$left_arr?=?quicksort($left_arr);
$right_arr?=?quicksort($right_arr);
return?array_merge($left_arr,?array($key),?$right_arr);
}
#######?自實現(xiàn)函數(shù)?#######
//插入一段字符串
function?str_insert($str,?$i,?$substr)
{
for($j=0;?$j$i;?$j++){
$startstr?.=?$str[$j];
}
for?($j=$i;?$jstrlen($str);?$j++){
$laststr?.=?$str[$j];
}
$str?=?($startstr?.?$substr?.?$laststr);
return?$str;
}
//刪除一段字符串
function?str_delete($str,?$i,?$j)
{
for?($c=0;?$c$i;?$c++){
$startstr?.=?$str[$c];
}
for?($c=($i+$j);?$cstrlen($str);?$c++){
$laststr?.=?$str[$c];
}
$str?=?($startstr?.?$laststr);
return?$str;
}
//復制字符串
function?strcpy($s1,?$s2)
{
if?(strlen($s1)==NULL?||?!isset($s2))?return;
for?($i=0;?$istrlen($s1);?$i++){
$s2[]?=?$s1[$i];
}
return?$s2;
}
//連接字符串
function?strcat($s1,?$s2)
{
if?(!isset($s1)?||?!isset($s2))?return;
$newstr?=?$s1;
for($i=0;?$icount($s);?$i++){
$newstr?.=?$st[$i];
}
return?$newsstr;
}
//簡單編碼函數(shù)(與php_decode函數(shù)對應)
function?php_encode($str)
{
if?($str==''??strlen($str)128)?return?false;
for($i=0;?$istrlen($str);?$i++){
$c?=?ord($str[$i]);
if?($c31??$c107)?$c?+=?20;
if?($c106??$c127)?$c?-=?75;
$word?=?chr($c);
$s?.=?$word;
}?
return?$s;?
}
//簡單解碼函數(shù)(與php_encode函數(shù)對應)
function?php_decode($str)
{
if?($str==''??strlen($str)128)?return?false;
for($i=0;?$istrlen($str);?$i++){
$c?=?ord($word);
if?($c106??$c127)?$c?=?$c-20;
if?($c31??$c107)?$c?=?$c+75;
$word?=?chr($c);
$s?.=?$word;
}?
return?$s;?
}
//簡單加密函數(shù)(與php_decrypt函數(shù)對應)
function?php_encrypt($str)
{
$encrypt_key?=?'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key?=?'ngzqtcobmuhelkpdawxfyivrsj2468021359';
if?(strlen($str)?==?0)?return?false;
for?($i=0;?$istrlen($str);?$i++){
for?($j=0;?$jstrlen($encrypt_key);?$j++){
if?($str[$i]?==?$encrypt_key[$j]){
$enstr?.=?$decrypt_key[$j];
break;
}
}
}
return?$enstr;
}
//簡單解密函數(shù)(與php_encrypt函數(shù)對應)
function?php_decrypt($str)
{
$encrypt_key?=?'abcdefghijklmnopqrstuvwxyz1234567890';
$decrypt_key?=?'ngzqtcobmuhelkpdawxfyivrsj2468021359';
if?(strlen($str)?==?0)?return?false;
for?($i=0;?$istrlen($str);?$i++){
for?($j=0;?$jstrlen($decrypt_key);?$j++){
if?($str[$i]?==?$decrypt_key[$j]){
$enstr?.=?$encrypt_key[$j];
break;
}
}
}
return?$enstr;
}?
到此為止吧:)
你做好程序以后,把數(shù)據(jù)庫導出成sql文件
1、連接數(shù)據(jù)庫
2、讀取這個sql文件里的sql語句,并執(zhí)行
3、生成一個數(shù)據(jù)庫連接參數(shù)的php文件
?php
$con?=?mysql_connect("localhost","peter","abc123");
if?(!$con)
{
die('Could?not?connect:?'?.?mysql_error());
}
if?(mysql_query("CREATE?DATABASE?my_db",$con))
{
echo?"Database?created";
}
else
{
echo?"Error?creating?database:?"?.?mysql_error();
}
mysql_close($con);
?
?php
class?ReadSql?{
//數(shù)據(jù)庫連接
protected?$connect?=?null;
//數(shù)據(jù)庫對象
protected?$db?=?null;
//sql文件
public?$sqlFile?=?"";
//sql語句集
public?$sqlArr?=?array();
public?function?__construct($host,?$user,?$pw,?$db_name)?{
$host?=?empty($host)???C("DB_HOST")?:?$host;
$user?=?empty($user)???C("DB_USER")?:?$user;
$pw?=?empty($pw)???C("DB_PWD")?:?$pw;
$db_name?=?empty($db_name)???C("DB_NAME")?:?$db_name;
//連接數(shù)據(jù)庫
$this-connect?=?mysql_connect($host,?$user,?$pw)?or?die("Could?not?connect:?"?.?mysql_error());
$this-db?=?mysql_select_db($db_name,?$this-connect)?or?die("Yon?can?not?select?the?table:"?.?mysql_error());
}
//導入sql文件
public?function?Import($url)?{
$this-sqlFile?=?file_get_contents($url);
if?(!$this-sqlFile)?{
exit("打開文件錯誤");
}?else?{
$this-GetSqlArr();
if?($this-Runsql())?{
return?true;
}
}
}
//獲取sql語句數(shù)組
public?function?GetSqlArr()?{
//去除注釋
$str?=?$this-sqlFile;
$str?=?preg_replace('/--.*/i',?'',?$str);
$str?=?preg_replace('/\/\*.*\*\/(\;)?/i',?'',?$str);
//去除空格?創(chuàng)建數(shù)組
$str?=?explode(";\n",?$str);
foreach?($str?as?$v)?{
$v?=?trim($v);
if?(empty($v))?{
continue;
}?else?{
$this-sqlArr[]?=?$v;
}
}
}
//執(zhí)行sql文件
public?function?RunSql()?{
foreach?($this-sqlArr?as?$k?=?$v)?{
if?(!mysql_query($v))?{
exit("sql語句錯誤:第"?.?$k?.?"行"?.?mysql_error());
}
}
return?true;
}
}
//范例:
header("Content-type:text/html;charset=utf-8");
$sql?=?new?ReadSql("localhost",?"root",?"",?"log_db");
$rst?=?$sql-Import("./log_db.sql");
if?($rst)?{
echo?"Success!";
}
?
PHP 中的fgets() 函數(shù)可以實現(xiàn)
fgets() 函數(shù)從文件指針中讀取一行。
fgets(file,length)
參數(shù)說明
file 必需。規(guī)定要讀取的文件。
length 可選。規(guī)定要讀取的字節(jié)數(shù)。默認是 1024 字節(jié)。
詳細說明
從 file 指向的文件中讀取一行并返回長度最多為 length - 1 字節(jié)的字符串。碰到換行符(包括在返回值中)、EOF 或者已經(jīng)讀取了 length - 1 字節(jié)后停止(要看先碰到那一種情況)。如果沒有指定 length,則默認為 1K,或者說 1024 字節(jié)。
若失敗,則返回 false。
注釋:length 參數(shù)從 PHP 4.2.0 起成為可選項,如果忽略,則行的長度被假定為 1024 字節(jié)。從 PHP 4.3 開始,忽略掉 length 將繼續(xù)從流中讀取數(shù)據(jù)直到行結束。如果文件中的大多數(shù)行都大于 8 KB,則在腳本中指定最大行的長度在利用資源上更為有效。
從 PHP 4.3 開始本函數(shù)可以安全用于二進制文件。早期的版本則不行。
如果碰到 PHP 在讀取文件時不能識別 Macintosh 文件的行結束符,可以激活 auto_detect_line_endings 運行時配置選項。
例如:
test.txt 文本內(nèi)容如下:
Hello, this is a test file.
There are three lines here.
This is the last line.
?php
//讀取一行
$file = fopen("test.txt","r");
echo fgets($file);
fclose($file);
?
輸出:
Hello, this is a test file.
?php
//循環(huán)讀取每一行
$file = fopen("test.txt","r");
while(! feof($file)) {
echo $str = fgets($file). "br /";
//這里可以逐行的寫入數(shù)據(jù)庫中
//mysql_query("insert into table(id,contents) values(NULL,'".$str."')");
}
fclose($file);
?
輸出:
Hello, this is a test file.
There are three lines here.
This is the last line.
當前文章:數(shù)據(jù)域PHP實現(xiàn),php 作用域
網(wǎng)頁URL:http://chinadenli.net/article35/dsieesi.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序、定制網(wǎng)站、網(wǎng)站內(nèi)鏈、企業(yè)網(wǎng)站制作、網(wǎng)站維護、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)