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){
}
PHP启动第二步
1. 当一个页面请求发生时,SAPI层将控制权交给PHP层。于是PHP设置了用于回复本次请求所需的环境变量。同时,它还建立一个变量表,用来存放执行过程中产生的变量名和值。
2. PHP调用各个模块的RINIT方法,即“请求初始化”。一个经典的例子是Session模块的RINIT,如果在php.ini中启用了Session模块,那在调用该模块的RINIT时就会初始化$_SESSION变量,并将相关内容读入;3. RINIT方法可以看作是一个准备过程,在程序执行之间就会自动启动。
一个典型的RINIT方法如下:
PHP_RINIT_FUNCTION(extension_name) {
}
PHP关闭第一步
如同PHP启动一样,PHP的关闭也分两步:
1. 一旦页面执行完毕(无论是执行到了文件末尾还是用exit或die函数中止),PHP就会启动清理程序。它会按顺序调用各个模块的RSHUTDOWN方法。
2. RSHUTDOWN用以清除程序运行时产生的符号表,也就是对每个变量调用unset函数。
一个典型的RSHUTDOWN方法如下:
PHP_RSHUTDOWN_FUNCTION(extension_name) {
}
PHP关闭第二步
最后,所有的请求都已处理完毕,SAPI也准备关闭了,PHP开始执行第二步:
1. PHP调用每个扩展的MSHUTDOWN方法,这是各个模块最后一次释放内存的机会。
一个典型的RSHUTDOWN方法如下:
PHP_MSHUTDOWN_FUNCTION(extension_name) {
}
② php中输出文件的绝对路径
echo $_SERVER['DOCUMENT_ROOT']; //在我的电脑上输出地是D://website
如果还想输出名称 那就这样写:
echo $_SERVER['PHP_SELF']; //我电脑上输出时 /test/a.php
网络一下 php $_SERVER 你可以查看到很多信息。
③ PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
如果做一个在线的文件管理系统的话,那么首先必须知道怎么读取目录和文件,其实这个功能几行代码就可以实现了。
输出效果:
实现代码:
复制代码
代码如下:
<?php
$dir
=
"D:/";
//要获取的目录
echo
"**********
获取目录下所有文件和文件夹
***********<hr/>";
//先判断指定的路径是不是一个文件夹
if
(is_dir($dir)){
if
($dh
=
opendir($dir)){
while
(($file
=
readdir($dh))!=
false){
//文件名的全路径
包含文件名
$filePath
=
$dir.$file;
//获取文件修改时间
$fmt
=
filemtime($filePath);
echo
"<span
style='color:#666'>(".date("Y-m-d
H:i:s",$fmt).")</span>
".$filePath."<br/>";
}
closedir($dh);
}
}
?>
这只是最基础的效果,弄懂了,想做出其他的需求也很简单了。
④ php读取文件并输出
直接echo就可以了……
echo file_get_contents($requestUrl);
(各种错误处理啥的您自己看着办吧)
⑤ php怎么读取excel 文件数据并输出
PHPExcel
PHPExcel是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。
PHP读取示例代码
//获取上传的excel临时文件
$path=$_FILES["file"]["tmp_name"];
//将临时文件移动当前目录,可自定义存储位置
move_uploaded_file($_FILES["file"]["tmp_name"],$_FILES["file"]["name"]);
//将获取在服务器中的Excel文件,此处为上传文件名
$path=$_FILES["file"]["name"];
//调用readExcel函数返回一个
二维数组
$exceArray=readExcel($path);
//创建一个读取
excel函数
functionreadExcel($path){
//引入PHPExcel类库
include'Classes/PHPExcel.php';
include'Classes/PHPExcel/IOFactory.php';
$type='Excel5';//设置为Excel5代表支持2003或以下版本,
Excel2007代表2007版
$xlsReader=PHPExcel_IOFactory::createReader($type);
$xlsReader->setReadDataOnly(true);
$xlsReader->setLoadSheetsOnly(true);
$Sheets=$xlsReader->load($path);
//开始读取上传到服务器中的Excel文件,返回一个
二维数组
$dataArray=$Sheets->getSheet(0)->
toArray();
return$dataArray;
}
⑥ php读取文件夹并输出
<?php
$dir = "./images/"; //要获取的目录
echo "********** 获取目录下所有文件和文件夹 ***********<hr/>";
//先判断指定的路径是不是一个文件夹
if (is_dir($dir)){
if ($dh = opendir($dir)){
while (($file = readdir($dh))!= false){
//文件名的全路径 包含文件名
$filePath = $dir.$file;
echo "<img src='".$filePath."'/>";
}
closedir($dh);
}
}
?>
⑦ PHP文本文件输出问题
PHP文本文件输出,参考如下:
<?php
Header( "Content-type: application/octet-stream ");
Header( "Accept-Ranges: bytes ");
header( "Content-Disposition: attachment; filename=test.txt ");
header( "Expires: 0 ");
header( "Cache-Control: must-revalidate, post-check=0, pre-check=0 ");
header( "Pragma: public ");
echo "测试/r/n";
echo "测试/r/n";
echo 输入的内容为文本文件的内容。
?>
⑧ php遍历输出文件夹下所有txt文件
可以,使用glob函数可以非常容易搞定,支持通配符。
<?php
header('Content-type:text/html;charset=utf-8');
$i=1;
foreach(glob('/file/*.txt')as$txt)
{
echo'第'.$i.'个文件'.basename($txt).'的内容是:';
echofile_get_contents($txt);
$i++;
echo'<hr/>';
}
⑨ 怎么用php输出html文件
把你代码中,echo 背景颜色那里修改下,引号里面又包含了引号,还有就是,你确定你有使用fopen打开了一个存在的文档吗?下面是可以运行的。
<?php
$f = fopen("test.txt", "r");
while(!feof($f))
{
$line = fgets($f);
$pieces = explode(".", $line);
for ($i=0;$i<count($pieces)-1;$i++)
{
//echo "<pre>".$li++.':'.$pieces[$i].'.'."</pre>";
echo "<table><tr><th bgcolor=318bb0>";
echo $li++.':'.$pieces[$i].'.';
echo "</th></tr></table>";
}
}
?>
⑩ 请问怎么php输出一个文档
<tbody>
<?php
$f=file_get_contents("names.txt");
$a1=explode(PHP_EOL,$f);
forEach($a1 as $v1){
echo "<tr>";
$a2=explode("|",$v1);
forEach($a2 as $v2){
echo "<td>$v2</td>";
}
echo "</tr>";
}
?>
</tbody>