当前位置:  编程技术>php
本页文章导读:
    ▪PHP与MySQL开发中页面乱码的产生与解决       1、文件编码:指的是页面文件(.html,.php等)本身是以何种编码来保存的。记事本和Dreamweaver在打开页面时候会自动识别文件编码因而不太会出问题。而ZendStudio却不会自动识别编码,它只会根.........
    ▪php中cookie的作用域        setcookie("cookie名","值","作用域") 作用域“/”表示COOKIE作用在根目录下所有文件 作用域“/ROOT/”表示COOKIE作用在根目录下ROOT目录下的所有文件  ......
    ▪简单的PHP图片上传程序       第一种: php部分 代码如下:<?php  if($_FILES['file']['error'] > 0){     echo '!problem:';     switch($_FILES['file']['error'])     {       case 1: echo '文件大小超过服务器限制';          .........

[1]PHP与MySQL开发中页面乱码的产生与解决
    来源: 互联网  发布时间: 2013-11-30
1、文件编码:指的是页面文件(.html,.php等)本身是以何种编码来保存的。记事本和Dreamweaver在打开页面时候会自动识别文件编码因而不太会出问题。而ZendStudio却不会自动识别编码,它只会根据首选项的配置固定以某种编码打开文件,如果工作时候一不注意,用错误编码打开文件,做了修改之后一保存,乱码就出现了(我深有体会)。

2、页面申明编码:在HTML代码HEAD里面,可以用<meta http-equiv="Content-Type" content="text/html; charset="XXX" />来告诉浏览器网页采用了什么编码,目前中文网站开发中XXX主要用的是GB2312和UTF-8两种编码。

3、数据库连接编码:指的是进行数据库操作时候以哪种编码与数据库传输数据,这里需要注意的是不要与数据库本身的编码混淆,比如MySQL内部默认是latin1编码,也就是说Mysql是以latin1编码来存储数据,以其他编码传输给Mysql的数据会被转换成latin1编码。

知道了WEB开发中哪些地方涉及到了编码,也就知道了乱码产生的原因:上述3项编码设置不一致,由于各种编码绝大部分是兼容ASCII的,所以英文符号不会出现,中文就倒霉了。下面是一些常见的错误情况与解决:

1、数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。这时候在PHP脚本里面直接Select数据出来的就是乱码,需要在查询前先使用:

mysql_query("SET NAMES GBK"); 

来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。如果页面是UTF-8编码的话,可以用:

mysql_query("SET NAMES UTF8"); 

注意是UTF8而不是一般用的UTF-8。假如页面申明的编码与数据库内部编码一致可以不设定连接编码。
注:事实上MYSQL的数据输入输出比上面讲的更复杂一些,MYSQL配置文件my.ini中定义了2个默认编码,分别是[client]里的default -character-set和[mysqld]里的default-character-set来分别设定默认时候客户端连接和数据库内部所采用的编码。我们上面指定的编码其实是MYSQL客户端连接服务器时候的命令行参数character_set_client,来告诉MYSQL服务器接受到的客户端数据是什么编码的,而不是采用默认编码。

2、页面申明编码与文件本身编码不一致,这种情况很少发生,因为如果编码不一致美工做页面时候在浏览器看到的就是乱码了。更多时候是发布以后修改一些小BUG,以错误编码打开页面然后保存导致的。或者是用某些FTP软件直接在线修改文件,比如CuteFTP,由于软件编码配置错误而导致转换错了编码。

3、一些租用虚拟主机的朋友,明明上述3项编码都设置正确了还是有乱码。比方说网页是GB2312编码的,IE等浏览器打开却总是识别成UTF-8,网页HEAD里面已经申明是GB2312了,手动修改浏览器编码为GB2312后页面显示正常。产生原因是服务器Apache设定了服务器全局的默认编码,在httpd.conf里面加了AddDefaultCharset UTF-8。这时候服务器会首先发送HTTP头给浏览器,其优先级比页面里申明编码高,自然浏览器就识别错了。解决办法有2个,请管理员在配置文件自己的虚机里加上一条AddDefaultCharset GB2312来覆盖全局配置,或者在自己目录的.htaccess里配置。

    
[2]php中cookie的作用域
    来源: 互联网  发布时间: 2013-11-30
 
setcookie("cookie名","值","作用域")
作用域“/”表示COOKIE作用在根目录下所有文件
作用域“/ROOT/”表示COOKIE作用在根目录下ROOT目录下的所有文件 

    
[3]简单的PHP图片上传程序
    来源: 互联网  发布时间: 2013-11-30
第一种:
php部分

代码如下:

<?php 
if($_FILES['file']['error'] > 0){ 
   echo '!problem:'; 
   switch($_FILES['file']['error']) 
   { 
     case 1: echo '文件大小超过服务器限制'; 
             break; 
     case 2: echo '文件太大!'; 
             break; 
     case 3: echo '文件只加载了一部分!'; 
             break; 
     case 4: echo '文件加载失败!'; 
             break; 
   } 

   exit; 

if($_FILES['file']['size'] > 1000000){ 
   echo '文件过大!'; 
   exit; 

if($_FILES['file']['type']!='image/jpeg' && $_FILES['file']['type']!='image/gif'){ 
   echo '文件不是JPG或者GIF图片!'; 
   exit; 

$today = date("YmdHis"); 
$filetype = $_FILES['file']['type']; 
if($filetype == 'image/jpeg'){ 
  $type = '.jpg'; 

if($filetype == 'image/gif'){ 
  $type = '.gif'; 

$upfile = 'upfile/' . $today . $type; 
if(is_uploaded_file($_FILES['file']['tmp_name'])) 

   if(!move_uploaded_file($_FILES['file']['tmp_name'], $upfile)) 
   { 
     echo '移动文件失败!'; 
     exit; 
    } 

else 

   echo 'problem!'; 
   exit; 

echo '<h1>success!</h1><br>';  
echo '文件大小:' . $_FILES['file']['size'] . '字节' . '<Br>'; 
echo '文件路径:' . $upfile; 
echo '<hr with="100%" />' . '<p>'; 
$dirr = 'upfile/'; 
$dir = opendir($dirr); 
echo $dirr . '--Listing:<ul>'; 
while($file = readdir($dir)){ 
  echo "<li>$file</li>"; 

echo '</ul>'; 
closedir($dir); 
?> 


第二种:
代码如下:

<?php 

if(empty($_GET[submit])) 



?> 
<form enctype="multipart/form-data" action="/blog_article/</php $_SERVER[.html'PHP_SELF']?>?submit=1" method="post"> 
Send this file: <input name="filename" type="file"> 
<input type="submit" value="确定上传"> 
</form> 
<?php  
}else{ 
    $path="uploadfiles/";        //上传路径 

//echo $_FILES["filename"]["type"]; 


if(!file_exists($path)) 

    //检查是否有该文件夹,如果没有就创建,并给予最高权限 
    mkdir("$path", 0700); 
}//END IF 
//允许上传的文件格式 
$tp = array("image/gif","image/pjpeg","image/png"); 
//检查上传文件是否在允许上传的类型 
if(!in_array($_FILES["filename"]["type"],$tp)) 

    echo "格式不对"; 
    exit; 
}//END IF 
if($_FILES["filename"]["name"]) 

        $file1=$_FILES["filename"]["name"]; 
        $file2 = $path.time().$file1; 
        $flag=1; 
}//END IF 
if($flag) $result=move_uploaded_file($_FILES["filename"]["tmp_name"],$file2); 
//特别注意这里传递给move_uploaded_file的第一个参数为上传到服务器上的临时文件 
if($result) 

    //echo "上传成功!".$file2; 
    echo "<script language='javascript'>"; 
    echo "alert(\"上传成功!\");"; 
    echo " location='add_aaa.php?pname=$file2'"; 
    echo "</script>"; 
}//END IF 




?>

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3