php中include require utf-8文件时出现空格

 更新时间:2016年11月25日 15:05  点击:1550
php中使用require函数加载utf8文件的时候会产生一个空行,这是由于在windows环境下编辑文件的时候会产生几个识别utf8的字符,这些字符称为Unicode签名(BOM)。

require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。


特别是用记事本将网页文件由ANSI另存为UTF-8时易出现!

解决办法:

1. 可以通过在Dreamweaver中按Ctrl+J,在标题与编码中去除此选项;
2. 用EditPlus将文件另存为UTF-8(无BOM)文件。

本文章主要求介绍了利用php自带的函数来实现数组进行排序,包括了一维数组排名,多维数组排序,随机排序等。

array_multisort($a,$b),$a,$b是两个数
•sort() 函数用于对数组单元从低到高进行排序。
•rsort() 函数用于对数组单元从高到低进行排序。
•asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
•arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
•ksort() 函数用于对数组单元按照键名从低到高进行排序。
•krsort() 函数用于对数组单元按照键名从高到低进行排序。

对多个数组排序

array_multisort($a,$b),$a,$b是两个数组,如果排序之后,$a数组的第3个元素被排到了第一位,那么$b的第三个元素不管他在$b中的大小都会排在第一位。看看下边的程序运行结果:

 

 代码如下 复制代码

<?php
$ar1 = array("10", 100, 100, "a");
$ar2 = array(1, 3, "2", 1);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);
?>

随机排序

 代码如下 复制代码

$array = array('A','2','3','4','5','6','7','8','9','10','J','Q','K');
shuffle($array);//随机排序数组
print_r($array);//输出数组

. 对多维数组排序

 代码如下 复制代码

<?php
$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
array_multisort ($ar[0], SORT_ASC, SORT_STRING,
                 $ar[1], SORT_NUMERIC, SORT_DESC);
?>


数组排序最常用的函数就是 sort($arr); 它的作用是按数组的键值升序排列,并且排序后的数组键名不再是原来的键名,是按新数组来重新设置的键名。

而有时我们要求更复杂的排序。如按键名排序,这里用到 ksort($arr); 函数,它会根据数组的键名排序,并维持原有的键值关系。相对应的 asort($arr); 函数,是按键值排序,且维持原有的键值关系


同样原理,rsort(); arsort(); krsort(); 函数除了排序是按降序排列外,其它与sort(); rsort(); ksort(); 相同。
数组操作是PHP很重要的基础

在php中我们可以利用apache来实现伪静态也可以利用php来操作,但是目前我只知道 apache的伪静态和php代码的伪静态。

 

Apache伪静态html(URL Rewrite)设置法

phpma一 打开 Apache 的配置文件 httpd.conf 。

phpma二 将#LoadModule rewrite_module modules/mod_rewrite前面的#去掉


1、apache

现在我们可以实现伪静态页面了,写下一下的规则:

 代码如下 复制代码

<ifmodule mod_rewrite.c> #liunx下需要写

rewriteengine on

rewriterule ([a-za-z]{1,})-([0-9]{1,}).html$ index.php?action=$1&id=$2

</ifmodule>


([a-za-z]{1,})-([0-9]{1,}).html$是规则,index.php?action=$1&id=$2是要替换的格式,$1代表第一个括号匹配的值,$2代表第二个

 

然后重启动apache

2、.htaccess 在目录里新建个文件命名为 .htaccess

、.htaccess文件的书写

在网站根目录下建立一个文件,名称是.htaccess,书写方式:

 代码如下 复制代码

RewriteEngine on  #开启重写
RewriteRule ^/$ index.php  #表示用“/”就可以访问index.php
RewriteRule ^about_(d*)/$ about/about.php?id=$1  #表示可以使用about_22/访问到about/about.php?id=22页面。注意$前面的“/”
RewriteRule ^about_(d*).html$ about/about.php?id=$1  #表示可以使用about_22.html访问到about/about.php?id=22页面RewriteRule ^news_(d*)_(d*).html$ news/news.php?id=$1&page=$2  #表示可以使用news_11_2.html访问到news/news.php?id=11&page=2页面。$1表示第一个参数,$2表示第二个参数


从上面可以看出,如果我们有下面的链接

<a href="/about_22/">关于我们</a>

那么我们访问到的页面与使用下面访问的页面一样

<a href="/about/about.php?id=22">关于我们</a>


2.php代码

比如:http://www.xxxx.com/soft.php/1,100,8630.html

 代码如下 复制代码

< ?php
//利用server变量 取得PATH_INFO信息 该例中为 /1,100,8630.html 也就是执行脚本名后面的部分
if(@$path_info =$_SERVER["PATH_INFO"]){
//正则匹配一下参数
if(preg_match("//(d+),(d+),(d+).html/si",$path_info,$arr_path)){
$gid =intval($arr_path[1]); //取得值 1
$sid =intval($arr_path[2]); //取得值100
$softid =intval($arr_path[3]); //取得值8630
}else die("Path:Error!");
//相当于soft.php?gid=1&sid=100&softid=8630
}else die('Path:Nothing!');
//就是这么简单了。~)
?>

用php GD库 处理完图片后 只能将图片 用 imagejpeg() 输出 或者写入一个文件很多时候并不需要这么做 比如要将图片存入数据库 就需要把图片写入变量保存用 ob_start() 启用缓存 ob_get_contents()获取缓存就可以将图片写入变量
 代码如下 复制代码

<?php

$imgPath ="图片地址" ;
//获得图片信息 $imgPath 可以为远程地址

list( $srcWidth, $srcHeight, $type ) = getimagesize( $imgPath );
...
switch( $type ) {
case 1: $imgCreate = 'ImageCreateFromGIF'; break;
case 2: $imgCreate = 'ImageCreateFromJPEG'; break;
case 3: $imgCreate = 'ImageCreateFromPNG'; break;
default: return false;
}

$orig = $imgCreate( $imgPath );
...
//开启缓存
ob_start();

//生成图片
switch ($type)
{
case 1: imagegif($orig); break;
case 2: imagejpeg($orig); break; // best quality
case 3: imagepng($orig); break; // no compression
default: echo ''; break;
}

//将图片存入变量
$imageCode = ob_get_contents();

ob_end_clean();

个人不建义把图片保存在变量 了,这样会比较浪费资源 ,这里也是测试好玩的哦。

下面我们利用几个实例来总结了利用php fopen函数来实现文件的读写操作,有需要学习的朋友可参考参考。

简单的参考fopen函数

fopen() 函数打开文件或者 URL。

如果打开失败,本函数返回 FALSE。

语法
fopen(filename,mode,include_path,context)

实例1

创建一个文件的例子:

 代码如下 复制代码

<?php
if(!file_exists("test.txt")){     //如果文件不存在(默认为当前目录下)
    $fh = fopen("test.txt","w");
    fclose($fh);      //关闭文件
}
?>


实例 2

利用php的读写文本文档的功能来实现修改和编辑robots文件

 代码如下 复制代码

<?php
function get_txt($robots_file)
//定义函数,内容用{}括起来
{
if(file_exists($robots_file))
//如果文件存在,读取其中的内容
{
$fp=@fopen($robots_file,"r");
//r是read的缩写,代表读取的意思,以只读方式打开文件
if ($fp) {
while (!feof($fp)) { //如果没有到文件尾部
 $robots_txt = fgets($fp, 4096); //逐行读取
 $robots_all = $robots_all.$robots_txt; //将数据保存到$robots_all里面
}
return($robots_all); //返回所有内容
fclose($fp); //关闭文件
}
}
}
  
function put_txt($robots_txt)
{
$fp=fopen("robots.txt","w");
//w是write的缩写,代表写入的意思,以写入的方式打开文件
fputs($fp,$robots_txt);
//输出文本到文件
fclose($fp);
}
?>
  
<?php
$edit=$_GET["edit"];
$txt=$_POST["txt"];
$get_txt=get_txt("robots.txt");
 //调用刚才定义的函数打开robots文件。
  
if($edit=="write")
{
put_txt($txt);
echo "成功保存 <a href=robots-editer.php>返回</a>";
}
else
{
echo "成功读取<a href=robots.txt target=_blank>robots.txt</a> <a href=writer.php>返回</a>";
}
?>
  
<?php
if($edit=="")
{
?>
<form name="form1" action="?edit=write" method="post">
<textarea name="txt" cols="160" rows="30"><?php echo $get_txt; ?></textarea>
<br />
<input name="submit" value="保存" type="submit" />
</form>
<?php
}
?>

通过PHP读取文本文档counter.txt里的数据,并+1保存到文本文档中。

新建counter.php文档,输入如下代码,跟ASP不同的是PHP里的单行注释是用//或者#,多行注释用/* */来实现:

 

 代码如下 复制代码
<?php
function get_hit($counter_file)
//定义函数,内容用{}括起来,学过编程的人应该看出来了,跟C语言有点相似
{
$count=0;
//将计数器归零,Php里的变量前面加上$号
  
if(file_exists($counter_file))
//如果计数器文件存在,读取其中的内容
{
$fp=fopen($counter_file,"r");
//r是read的缩写,代表读取的意思,以只读方式打开文件
$count=0+fgets($fp,20);
/*读取前20位数赋值给count变量,由于fgets()函数读取的是字符串,所以需要在前面+0来转换为整数,
这一点跟ASP就不同了,ASP中字符串可以直接跟整型进行运算,而不用转换。*/
fclose($fp);
//关闭文件
}
$count++;
//增加计数,这一点跟C就非常相似了
$fp=fopen($counter_file,"w");
//w是write的缩写,代表写入的意思,以写入的方式打开文件
fputs($fp,$count);
//输出计数值到文件
fclose($fp);
return($count);
//返回计数值
}
?>
  
<?php
$hit=get_hit("counter.txt");
//调用刚才定义的函数处理counter.txt文档,并把结果赋值给hit变量。
echo "您是第<b>"."$hit"."</b>位访客!";
//输出结果。PHP与ASP的区别在于:ASP的连字符是“&”,而Php的连字符是“.”。
?>

同样在需要调用的PHP文档中插入这个文件:

<?php include("counter.php");?>

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • AI源文件转photoshop图像变模糊问题解决教程

    今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
  • C++万能库头文件在vs中的安装步骤(图文)

    这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • C#路径,文件,目录及IO常见操作汇总

    这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • C#使用StreamWriter写入文件的方法

    这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
  • ant design中upload组件上传大文件,显示进度条进度的实例

    这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29
  • php实现文件下载实例分享

    举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
  • 查找php配置文件php.ini所在路径的二种方法

    通常php.ini的位置在:复制代码 代码如下:/etc目录下或/usr/local/lib目录下。如果你还是找不到php.ini或者找到了php.ini修改后不生效(其实是没找对),请使用如下办法:1.新建php文件,写入如下代码复制代码 代码如下:<?phpe...2014-05-31
  • C# 向二进制文件进行读写的操作方法

    该例子使用 BinaryStream 和 BinaryWriter 对二进制文件进行读写操作先上代码再根据我理解的所分享给各位朋友...2020-06-25