1. php導出excel 怎麼做
方法一:特點,簡單,省心,
<?php
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");
$tx='表頭';
echo $tx."\n\n";
//輸出內容如下:
echo "姓名"."\t";
echo "年齡"."\t";
echo "學歷"."\t";
echo "\n";
echo "張三"."\t";
echo "25"."\t";
echo "本科"."\t";
?>
方法二: 引用google code中推薦的小類庫(大體同方法一,比較復雜點)
http://code.google.com/p/php-excel/downloads/list
方法三: PHPEXCEL 類庫,功能強大,支持win Excel2003 ,Win Excel2007.
http://www.codeplex.com/PHPExcel
<?
//設置PHPExcel類庫的include path
set_include_path('.'. PATH_SEPARATOR .
'D:\Zeal\PHP_LIBS' . PATH_SEPARATOR .
get_include_path());
/**
* 以下是使用示例,對於以 //// 開頭的行是不同的可選方式,請根據實際需要
* 打開對應行的注釋。
* 如果使用 Excel5 ,輸出的內容應該是GBK編碼。
*/
require_once 'PHPExcel.php';
// uncomment
////require_once 'PHPExcel/Writer/Excel5.php'; // 用於其他低版本xls
// or
////require_once 'PHPExcel/Writer/Excel2007.php'; // 用於 excel-2007 格式
// 創建一個處理對象實例
$objExcel = new PHPExcel();
// 創建文件格式寫入對象實例, uncomment
////$objWriter = new PHPExcel_Writer_Excel5($objExcel); // 用於其他版本格式
// or
////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用於 2007 格式
//$objWriter->setOffice2003Compatibility(true);
//*************************************
//設置文檔基本屬性
$objProps = $objExcel->getProperties();
$objProps->setCreator("Zeal Li");
$objProps->setLastModifiedBy("Zeal Li");
$objProps->setTitle("Office XLS Test Document");
$objProps->setSubject("Office XLS Test Document, Demo");
$objProps->setDescription("Test document, generated by PHPExcel.");
$objProps->setKeywords("office excel PHPExcel");
$objProps->setCategory("Test");
//*************************************
//設置當前的sheet索引,用於後續的內容操作。
//一般只有在使用多個sheet的時候才需要顯示調用。
//預設情況下,PHPExcel會自動創建第一個sheet被設置SheetIndex=0
$objExcel->setActiveSheetIndex(0);
$objActSheet = $objExcel->getActiveSheet();
//設置當前活動sheet的名稱
$objActSheet->setTitle('測試Sheet');
//*************************************
//設置單元格內容
//
//由PHPExcel根據傳入內容自動判斷單元格內容類型
$objActSheet->setCellValue('A1', '字元串內容'); // 字元串內容
$objActSheet->setCellValue('A2', 26); // 數值
$objActSheet->setCellValue('A3', true); // 布爾值
$objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式
//顯式指定內容類型
$objActSheet->setCellValueExplicit('A5', '847475847857487584',
PHPExcel_Cell_DataType::TYPE_STRING);
//合並單元格
$objActSheet->mergeCells('B1:C22');
//分離單元格
$objActSheet->unmergeCells('B1:C22');
//*************************************
//設置單元格樣式
//
//設置寬度
$objActSheet->getColumnDimension('B')->setAutoSize(true);
$objActSheet->getColumnDimension('A')->setWidth(30);
$objStyleA5 = $objActSheet->getStyle('A5');
//設置單元格內容的數字格式。
//
//如果使用了 PHPExcel_Writer_Excel5 來生成內容的話,
//這里需要注意,在 PHPExcel_Style_NumberFormat 類的 const 變數定義的
//各種自定義格式化方式中,其它類型都可以正常使用,但當setFormatCode
//為 FORMAT_NUMBER 的時候,實際出來的效果被沒有把格式設置為"0"。需要
//修改 PHPExcel_Writer_Excel5_Format 類源代碼中的 getXf($style) 方法,
//在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一
//行代碼:
//if($ifmt === '0') $ifmt = 1;
//
//設置格式為PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大數字
//被使用科學記數方式顯示,配合下面的 setAutoSize 方法可以讓每一行的內容
//都按原始內容全部顯示出來。
$objStyleA5
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
//設置字體
$objFontA5 = $objStyleA5->getFont();
$objFontA5->setName('Courier New');
$objFontA5->setSize(10);
$objFontA5->setBold(true);
$objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objFontA5->getColor()->setARGB('FF999999');
//設置對齊方式
$objAlignA5 = $objStyleA5->getAlignment();
$objAlignA5->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objAlignA5->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
//設置邊框
$objBorderA5 = $objStyleA5->getBorders();
$objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getTop()->getColor()->setARGB('FFFF0000'); // color
$objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//設置填充顏色
$objFillA5 = $objStyleA5->getFill();
$objFillA5->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objFillA5->getStartColor()->setARGB('FFEEEEEE');
//從指定的單元格復制樣式信息.
$objActSheet->plicateStyle($objStyleA5, 'B1:C22');
//*************************************
//添加圖片
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('ZealImg');
$objDrawing->setDescription('Image inserted by Zeal');
$objDrawing->setPath('./zeali.net.logo.gif');
$objDrawing->setHeight(36);
$objDrawing->setCoordinates('C23');
$objDrawing->setOffsetX(10);
$objDrawing->setRotation(15);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(36);
$objDrawing->setWorksheet($objActSheet);
//添加一個新的worksheet
$objExcel->createSheet();
$objExcel->getSheet(1)->setTitle('測試2');
//保護單元格
$objExcel->getSheet(1)->getProtection()->setSheet(true);
$objExcel->getSheet(1)->protectCells('A1:C22', 'PHPExcel');
//*************************************
//輸出內容
//
$outputFileName = "output.xls";
//到文件
////$objWriter->save($outputFileName);
//or
//到瀏覽器
////header("Content-Type: application/force-download");
////header("Content-Type: application/octet-stream");
////header("Content-Type: application/download");
////header('Content-Disposition:inline;filename="'.$outputFileName.'"');
////header("Content-Transfer-Encoding: binary");
////header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
////header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
////header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
////header("Pragma: no-cache");
////$objWriter->save('php://output');
?>
2. php可執行文件在哪裡(php編譯成可執行文件)
php文件如何在控制台運行?1、關鍵是要添加一個針對這個文件的運行配置。
2、先打開菜單Run-EditConfigurations選項。
3、然後在打開的窗口中點擊左上角的+號。
4、在打開的菜單中選擇PHPScript。
5、在打開的界面中找到Configuration-File。
6、選擇你要在控制台運行的文件。
7、填入工作目錄的路徑(可填可不填),完成配置後點擊右下角的OK。
8、回到主界面,點擊菜單Run-Run...。
9、會彈出一些運行選項,其中菜單2指的是從瀏覽器運行(看前面的圖標也能知道),菜單1則是我們想要的「在控制台運行」。只有前面配置好了的文件才能出現在菜單1里。此時點擊這個文件,就會在控制台看到結果啦!
在記事本里寫的PHP文件要在哪裡運行把PHP文件放在你的網頁目錄下(比如C:INETPUBWWWROOT),只要相應的WEB服務都啟動了的,那麼整個網路的人都可以用下面的地址在瀏覽器訪問你的PHP文件:
http://你的IP地址/文件目錄和名字.php
如何在linux安裝php開發環境
我一般會選用源碼安裝php,安裝php的過程指定要安裝的擴展,但是避免不了缺少某個擴展未安裝導致程序運行報錯的問題。以fileinfo為例,介紹一下怎麼添加php擴展。
1.准備
通常遇到報錯:xxxfunctionundefined,而這個函數是系統函數的話,那一定是你缺少某個擴展。添加擴展也非常簡單。首選要確認當前的php是哪個版本,不同版本的php擴展會有些許出入。然後找到Php源碼目錄,也就是從網上下載下來並且解壓的php文件包。添加擴展的時候需要在源碼包裡面去執行命令。
2.安裝fileinfo擴展
1.確認php版本
php-v
#PHP7.4.4(cli)
2.找到php可執行文件的位置
whereisphp
#php:/usr/local/php/usr/local/php/bin/php
可以看出php執行文件在/usr/local/php/bin目錄裡面
那麼嘗試執行phpize,保證這個文件存在,phpize命令在添加擴展的時候需要用到
/usr/local/php/bin/phpize-v
#Configuringfor:
#PHPApiVersion:20190902
#ZendMoleApiNo:20190902
#ZendExtensionApiNo:320190902
3.進入php源碼目錄
我的習慣是網路下載的軟體會放在/usr/local/src下面,
cd/usr/local/src/php-7.4.4
cd/etc
cdfileinfo
擴展都在源碼目錄的etc下面,裡面有curl,gd,ftp等等擴展目錄,我要安裝fileinfo,所以到fileinfo目錄裡面
4.開始安裝
確定目錄下面有config.m4文件,如果沒有,應該會有config0.m4文件,把config0.m4復制一份為config.m4,如果沒有這個文件,會報錯:cannotfoundconfig.m4
/usr/local/php/bin/phpize
./configure
makemakeinstall
如果這幾行命令運行下來都沒有報錯,那麼說明擴展文件已經生成,並且已經自動移入相應位置。接下來就是修改php.ini,追加extension=fileinfo.so到php.ini中。
5.修改php.ini,載入擴展文件
查看php.ini的位置
php-i|grepphp.ini
#ConfigurationFile(php.ini)Path=/usr/local/php/etc
#LoadedConfigurationFile=/usr/local/php/etc/php.ini
可以看到php.ini的位置:/usr/local/php/etc/php.ini
vim/usr/local/php/etc/php.ini
#添加extension=fileinfo.so,保存
php-m|grepfileinfo
#fileinfo
看到輸出fileinfo,至此,fileinfo擴展安裝完畢!另外可以使用pecl命令安裝,更方便快捷!
到哪兒去找php.exe默認在PHP主目錄下,如果找不到:1,看你裝在哪個盤區;2,到官方站點下完整的。
PHP(PHP:HypertextPreprocessor)即「超文本預處理器」,是在伺服器端執行的腳本語言,尤其適用於Web開發並可嵌入HTML中。
PHP語法學習了C語言,吸納java和Perl多個語言的特色發展出自己的特色語法,並根據它們的長項持續改進提升自己,例如java的面向對象編程,該語言當初創建的主要目標是讓開發人員快速編寫出優質的web網站。PHP同時支持面向對象和面向過程的開發,使用上非常靈活。
經過二十多年的發展,隨著php-cli相關組件的快速發展和完善,PHP已經可以應用在?TCP/UDP服務、高性能Web、WebSocket服務、物聯網、實時通訊、游戲、微服務等非Web領域的系統研發。
根據W3Techs2019年12月6號發布的統計數據,PHP在WEB網站伺服器端使用的編程語言所佔份額高達78.9%。在內容管理系統的網站中,有58.7%的網站使用WordPress(PHP開發的CMS系統),這占所有網站的25.0%。
開源免費
PHP是一個受眾大並且擁有眾多開發者的開源軟體項目,Linux+Nginx+Mysql+PHP是它的經典安裝部署方式,相關的軟體全部都是開源免費的,所以使用PHP可以節約大量的正版授權費用。
不過PHP作為一個開源軟體,它缺乏大型科技公司的支持背景,網路上對它的唱衰也是經久不衰,不過它的持續迭代和性能持續增強的現實卻是鼓舞人心的,PHP社區用實際行動給予各種質疑強有力的回擊。
PHP文件是什麼文件?怎麼打開?PHP是一種非常流行的WEB程序語言,超級文本預處理語言,其他的還有ASP,JSP等。簡單的說.PHP就是嵌入這種語言後的一個動態網頁文件。
四種打開php格式文件方法:
首先我們來看php文件是什麼文件,PHP是一個網頁腳本,文件後綴名為.php,
php文件打開方式一:用記事本打開
右擊.php文件,選擇記事本打開,就可以看到文件代碼啦!
php文件打開方式二:用Dreamweaver打開
Dreamweaver是網頁編輯器,比較流行的網站開發工具,你可以直接把文件拖進去就可以打開php文件了
php文件打開方式三:Notepad++工具打開
也是代碼編輯器,選擇文件打開就行
php文件打開方式四:SublimeText工具打開
和上面方法一樣,直接選擇文件打開就行
除了記事本,其它代碼編輯器工具都可以去php中文網php開發工具下載
若是想要.php文件進行運行則需要php環境。可以去php中文網QQ群374224296里去下載php環境搭建工具軟體(PHPToolClient)進行安裝,直接把文件放進根目錄下就可以用瀏覽器打開啦!
3. php 怎麼讀取mysql一條數據並輸出某一欄位
可以參考下面的代碼:
//連接資料庫伺服器
$link =mysql_connect(『host(伺服器ip地址,本地用localhost)』,'資料庫賬戶',『資料庫密碼』);
//選擇要連接的資料庫
mysql_select_db('資料庫名字');
//執行查詢,返回數據源
$query = mysql_query("SELECT * FROM test");
//遍歷數據源,並賦值給$r,當沒有數據時,變成false中斷循環
while($r = mysql_fetch_array($query)){
echo $r['field_name'];//輸出欄位
}
(3)php怎麼輸出源擴展閱讀:
mysql使用說明
1、如果是用 MySQL +Apache,使用的又是FreeBSD網路操作系統的話,安裝時候應按注意到FreeBSD的版本問題,在 FreeBSD 的 3.0 以下版本來說,MySQL Source 內含的 MIT-pthread 運行是正常的,但在這版本以上,必須使用 native threads,也就是加入一個 with-named-thread-libs=-lc_r 的選項。
2、如果在 COMPILE 過程中出了問題,請先檢查gcc版本是否在 2.81 版本以上,gmake 版本是否在3.75以上。
3、如果不是版本的問題,那可能是內存不足,請使用 ./configure--with-low-memory 來加入。
4、如果要重新做configure,那麼可以鍵入rmconfig.cache 和 make clean 來清除記錄。
5、把 MySQL 安裝在 /usr/local 目錄下,這是預設值,也可以按照需要設定所安裝的目錄。
4. 用PHP編寫的一行行代碼 是怎麼在伺服器端運行的
從圖上可以看到,PHP實現了一個典型的動態語言執行過程:拿到一段代碼後,經過詞法解析、語法解析等階段後,源程序會被翻譯成一個個指令 (opcodes),然後ZEND虛擬機順次執行這些指令完成操作。PHP本身是用C實現的,因此最終調用的也都是C的函數,實際上,我們可以把PHP看 做是一個C開發的軟體。
PHP的執行的核心是翻譯出來的一條一條指令,也即opcode。
Opcode是PHP程序執行的最基本單位。一個opcode由兩個參數(op1,op2)、返回值和處理函數組成。PHP程序最終被翻譯為一組opcode處理函數的順序執行。
常見的幾個處理函數:
1 ZEND_ASSIGN_SPEC_CV_CV_HANDLER : 變數分配 ($a=$b)
2 ZEND_DO_FCALL_BY_NAME_SPEC_HANDLER:函數調用
3 ZEND_CONCAT_SPEC_CV_CV_HANDLER:字元串拼接 $a.$b
4 ZEND_ADD_SPEC_CV_CONST_HANDLER: 加法運算 $a+2
5 ZEND_IS_EQUAL_SPEC_CV_CONST:判斷相等 $a==1
6 ZEND_IS_IDENTICAL_SPEC_CV_CONST:判斷相等 $a===1
5. 在PHP中怎麼接收post過來的JSON數據
在PHP中接收POST過來的JSON數據,通常有兩種方式。一種是直接使用file_get_contents函數獲取原始數據,然後利用json_decode將JSON字元串轉換為PHP數組或對象。例如:file_get_contents('php://input');獲取數據後,使用json_decode(file_get_contents('php://input'), true)進行解碼。另一種方式是通過$_POST超全局變數接收,這種方式需要在發送請求時設置Content-Type為application/json。例如:$_POST['data'],但這種方式並不推薦,因為$_POST通常用於接收表單數據。
下面是一個完整的示例,展示如何在PHP中處理POST過來的JSON數據:
首先,假設前端使用JavaScript發送JSON數據,代碼如下:
JavaScript代碼示例:
function sendData() {
var data = {'zhangsan':'lisi', 'age':18};
var xhr = new XMLHttpRequest();
xhr.open('POST', '/path/to/php/script', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
console.log(xhr.responseText);
}
};
xhr.send(JSON.stringify(data));
}
然後在PHP中接收並處理這些數據:
PHP代碼示例:
<?php
$jsonData = file_get_contents('php://input');
$data = json_decode($jsonData, true);
echo "接收到的數據:";
print_r($data);
?>
上面的PHP代碼首先使用file_get_contents('php://input')獲取原始數據,然後通過json_decode將其轉換為PHP數組。接著,使用print_r輸出數據內容。
這種方式不僅適用於POST請求,也適用於其他HTTP方法。通過這種方式,PHP能夠靈活地處理不同來源和格式的數據,增強應用的通用性和可維護性。
6. php網頁運行原理
轉載以下,希望對你有幫助:
你有沒有想過PHP是怎麼在瀏覽器里輸出「你好世界」的?我也是看了PHP內核和擴展後才知道的。也許有些朋友也想知道其中原理,那就讓我們開始吧。
在上一篇網志里我簡單介紹了「在我瀏覽這個頁面之前都發生了些什麼?」這個問題。如果你錯過了就點這里看看吧。現在我要討論的是「PHP是怎樣在瀏覽器里輸出內容」這個問題。
簡介
先看看下面這個過程:
1. 我們從未手動開啟過PHP的相關進程,它是隨著Apache的啟動而運行的;
2. PHP通過mod_php5.so模塊和Apache相連(具體說來是SAPI,即伺服器應用程序編程介面);
3. PHP總共有三個模塊:內核、Zend引擎、以及擴展層;
4. PHP內核用來處理請求、文件流、錯誤處理等相關操作;
5. Zend引擎(ZE)用以將源文件轉換成機器語言,然後在虛擬機上運行它;
6. 擴展層是一組函數、類庫和流,PHP使用它們來執行一些特定的操作。比如,我們需要mysql擴展來連接MySQL資料庫;
7. 當ZE執行程序時可能會需要連接若干擴展,這時ZE將控制權交給擴展,等處理完特定任務後再返還;
8. 最後,ZE將程序運行結果返回給PHP內核,它再將結果傳送給SAPI層,最終輸出到瀏覽器上。
深入探討
等等,沒有這么簡單。以上過程只是個簡略版,讓我們再深入挖掘一下,看看幕後還發生了些什麼。
1. Apache啟動後,PHP解釋程序也隨之啟動;
2. PHP的啟動過程有兩步;
3. 第一步是初始化一些環境變數,這將在整個SAPI生命周期中發生作用;
4. 第二步是生成只針對當前請求的一些變數設置。
PHP啟動第一步
不清楚什麼第一第二步是什麼?別擔心,我們接下來詳細討論一下。讓我們先看看第一步,也是最主要的一步。要記住的是,第一步的操作在任何請求到達之前就發生了。
1. 啟動Apache後,PHP解釋程序也隨之啟動;
2. PHP調用各個擴展的MINIT方法,從而使這些擴展切換到可用狀態。看看php.ini文件里打開了哪些擴展吧;
3. MINIT的意思是「模塊初始化」。各個模塊都定義了一組函數、類庫等用以處理其他請求。
一個典型的MINIT方法如下:
PHP_MINIT_FUNCTION(extension_name){
/* Initialize functions, classes etc */
}
PHP啟動第二步
1. 當一個頁面請求發生時,SAPI層將控制權交給PHP層。於是PHP設置了用於回復本次請求所需的環境變數。同時,它還建立一個變數表,用來存放執行過程中產生的變數名和值。
2. PHP調用各個模塊的RINIT方法,即「請求初始化」。一個經典的例子是Session模塊的RINIT,如果在php.ini中啟用了Session 模塊,那在調用該模塊的RINIT時就會初始化$_SESSION變數,並將相關內容讀入;
3. RINIT方法可以看作是一個准備過程,在程序執行之間就會自動啟動。
一個典型的RINIT方法如下:
PHP_RINIT_FUNCTION(extension_name) {
/* Initialize session variables, pre-populate variables, redefine global variables etc */
}
PHP關閉第一步
如同PHP啟動一樣,PHP的關閉也分兩步:
1. 一旦頁面執行完畢(無論是執行到了文件末尾還是用exit或die函數中止),PHP就會啟動清理程序。它會按順序調用各個模塊的RSHUTDOWN方法。
2. RSHUTDOWN用以清除程序運行時產生的符號表,也就是對每個變數調用unset函數。
一個典型的RSHUTDOWN方法如下:
PHP_RSHUTDOWN_FUNCTION(extension_name) {
/* Do memory management, unset all variables used in the last PHP call etc */
}
PHP關閉第二步
最後,所有的請求都已處理完畢,SAPI也准備關閉了,PHP開始執行第二步:
1. PHP調用每個擴展的MSHUTDOWN方法,這是各個模塊最後一次釋放內存的機會。
一個典型的RSHUTDOWN方法如下:
PHP_MSHUTDOWN_FUNCTION(extension_name) {
/* Free handlers and persistent memory etc */
}
這樣,整個PHP生命周期就結束了。要注意的是,只有在伺服器沒有請求的情況下才會執行「啟動第一步」和「關閉第二步」。
7. 用php製作兩個文本框銀行卡號和密碼用php輸出信息。求源代碼
使用DW排版,然後用PHP列印出來
echo '<input type="number" name="code" placeholder="請輸入銀行卡" /><input type="password" name="pwd" placeholder="請輸入密碼" />';die;