php中form表单同时使用POST和GET传递参数说明

 更新时间:2016年11月25日 15:43  点击:1625
在表单中我们有一个method属性,他可以让表单是post与get了,在php中就应该使用对应的get,post来接收了,下面我来介绍一下method参数说明

1.之前就是用过,在form表单post提交时,action的url传递get参数,服务器端是能获取到的:

 代码如下 复制代码

<?php
 print_r($_GET);
 print_r($_POST);
?>
 
<form action="get_post.php?id=100" method="post">
姓名:<input type="text" name="name" /><br>
年龄:<input type="text" name="age" /><br>
<input type="submit" value="提交" />
</form>

2.但是如果你的form提交类型为get,url中传递的参数却是获取不到的:

 代码如下 复制代码

<?php
 /**
  *测试get和post提交
  *@link(http://www.111cn.net)
  */
 print_r($_GET);
 print_r($_POST);
?>
 
<form action="get_post.php?id=100" method="get">
姓名:<input type="text" name="name" /><br>
年龄:<input type="text" name="age" /><br>
<input type="submit" value="提交" />
</form>

原理很简单,因为gb2312/gbk是中文两字节,这两个字节是有取值范围的,而utf-8中汉字是三字节,同样每个字节也有取值范围。而英文不管在何种编码情况下,都是小于128,只占用一个字节(全角除外)

在PHP处理页面的时候,我们对于字符集的转换都是采用了iconv或者mb_convert等函数,但,这其实是有一个前提的。即我们事先得知道in和out是什么样的编码,我们才能进行正确的转换。
下面这个函数,就可以在不知道源字符串编码的情况下,自动判断其编码并进行转换。虽然只支持UTF8编码和GB2312编码,但对于国内绝大多数网站来说,已经够用了。

 代码如下 复制代码


function safeEncoding($string,$outEncoding = 'UTF-8')
{
    $encoding = "UTF-8";
    for($i=0;$i<128)
            continue;

        if((ord($string{$i})&224)==224)
        {
            //第一个字节判断通过
            $char = $string{++$i};
            if((ord($char)&128)==128)
            {
                //第二个字节判断通过
                $char = $string{++$i};
                if((ord($char)&128)==128)
                {
                    $encoding = "UTF-8";
                    break;
                }
            }
        }
        if((ord($string{$i})&192)==192)
        {
            //第一个字节判断通过
            $char = $string{++$i};
            if((ord($char)&128)==128)
            {
                //第二个字节判断通过
                $encoding = "GB2312";
                break;
            }
        }
    }

    if(strtoupper($encoding) == strtoupper($outEncoding))
        return $string;
    else
        return iconv($encoding,$outEncoding,$string);
}

例2

 代码如下 复制代码


    //识别汉字编码,因为YBlog用的是utf-8,如果引用通告发过来的是gb2312的编码的话,需要可以识别并完成编码转换 
    function safeEncoding($string,$outEncoding = 'UTF-8') 
    { 
        $encoding = "UTF-8"; 
        for($i=0;$i<strlen($string);$i++) 
        { 
            if(ord($string{$i})<128) 
                continue; 
    
            if((ord($string{$i})&224)==224) 
            { 
                //第一个字节判断通过 
                $char = $string{++$i}; 
                if((ord($char)&128)==128) 
                { 
                    //第二个字节判断通过 
                    $char = $string{++$i}; 
                    if((ord($char)&128)==128) 
                    { 
                        $encoding = "UTF-8"; 
                        break; 
                    } 
                } 
            } 
            if((ord($string{$i})&192)==192) 
            { 
                //第一个字节判断通过 
                $char = $string{++$i}; 
                if((ord($char)&128)==128) 
                { 
                    //第二个字节判断通过 
                    $encoding = "GB2312"; 
                    break; 
                } 
            } 
        } 
         
        if(strtoupper($encoding) == strtoupper($outEncoding)) 
            return $string; 
        else
            return iconv($encoding,$outEncoding,$string); 
    }

本文章给大家介绍PHP判断用户浏览器是否安装alexa工具条程序,原理很简单我们只要获和用户User-Agent识别字符,然后加以判断即可得知用户是不是安装了alexa工具条哦。

众所周知,alexa工具条是常用的网站第三方统计工具,通常我们会自行定制alexa工具条用来让用户安装,通过用户对工具条内容的点击来提高网站在alexa的排名。如下图中河北新闻网的alexa工具条。

河北新闻网的alexa工具条

如果我们在一些必要的php应用中需要强制用户安装,这就涉及到了alexa工具条安装与否的判断。浏览器在访问网页时php可以获取用户的User-Agent识别字符。使用装有Alexa Toolbar的浏览器在请求网页的时候,User-Agent识别字符中会多出alexa标记。用这个特性就可以判断用户的浏览器是否安装ALEXA工具条。通过PHP的$_SERVER['HTTP_USER_AGENT']来获取浏览器的UA字符串信息。以下为PHP判断用户浏览器是否安装alexa工具条代码:

 代码如下 复制代码
if(!preg_match("#Toolbar#i", $_SERVER['HTTP_USER_AGENT'])){
                showmessage(L('alexa_failure'), 'https://www.111cn.net',8000);
            }
由于firefox和ie浏览器中的User-Agent识别字符是不同的,firefox中为Alexa Toolbar,ie中为My Toolbar。所以我们判断的时候只需要判断识别字符中是否包含Toolbar就可以了

注意:IE9的alexa工具条信息获取方式

微软官方开发博客中表示,IE9默认使用比较短的User-Agent识别字符,不再附加.NET及其他任何由软件或机器生成的信息到UA字符串中。所以如果我们想获取IE9用户是否安装了alexa工具条就必须让用户点击“兼容性视图”(如下图所示)

IE9用户是否安装了alexa工具条

下面本文章来给各位同学总结了几种php去除字符串首尾中英文空格程序实例,这里有用正则替换与trim系列函数删除,下面我们来看看。

例1.trim函数删除空格


trim()函数用于去除字符串开始位置以及结束位置的空格,并返回去掉空格后的字符串。语法如下:
string trim(string str[,string charlist]);
ltrim()函数用于去除字符串左边的空格或指定字符串。语法如下:
string ltrim(string str[,string charlist]);
rtrim()函数用于去除字符串右边的空格和特殊字符。语法如下:
string rtrim(string str[,string charlist]);

 代码如下 复制代码
<?php
 
$a="(a,b,c,)";
echo $a."<br/>"; //输出:(a,b,c,)
$b=trim($a,"()"); //去除字符串首尾含有的字符“(”或“)”
echo $b."<br/>"; //输出:a,b,c,
$c=trim($a,"(,)"); //去除字符串首尾含有的字符“(”、“,”或“)”
echo $c."<br/>"; //输出:a,b,c
 
?>

 
输出结果:
(a,b,c,)
a,b,c,
a,b,c
在sql中函数trim()用途为去除首尾空格,ltrim()为去除字符串左侧空格,rtrim()为去除字符串右侧空格。

 

例2.利用str_replace正则替换

 代码如下 复制代码

function  mbTrim($str) 

        return mb_ereg_replace('(^( | )+|( | )+$)', '', $str); 

例3.str_replace正则替换

 代码如下 复制代码

<?
$str="      www.111cn.net     ";
$str = mb_ereg_replace('^( | )+', '', $str);
$str = mb_ereg_replace('( | )+$', '', $str);
echo mb_ereg_replace('  ', "n  ", $str);
?>

在php中如果我们要把字符转换成大小写直接使用strtolower或者strtoupper即可,但是要首字母要转换大小写我们需要使用ucwords相关函数

首字母变大写:ucwords()

 代码如下 复制代码

<?php
$foo = 'hello world!';
$foo = ucwords($foo); // Hello World!

$bar = 'HELLO WORLD!';
$bar = ucwords($bar); // HELLO WORLD!
$bar = ucwords(strtolower($bar)); // Hello World!
?>

第一个词首字母变大写:ucfirst()

 代码如下 复制代码

<?php
$foo = 'hello world!';
$foo = ucfirst($foo); // Hello world!

$bar = 'HELLO WORLD!';
$bar = ucfirst($bar); // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
?>

第一个词首字母小写lcfirst()

 代码如下 复制代码

<?php
$foo = 'HelloWorld';
$foo = lcfirst($foo); // helloWorld

$bar = 'HELLO WORLD!';

[!--infotagslink--]

相关文章

  • 图解PHP使用Zend Guard 6.0加密方法教程

    有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
  • ps怎么使用HSL面板

    ps软件是现在很多人都会使用到的,HSL面板在ps软件中又有着非常独特的作用。这次文章就给大家介绍下ps怎么使用HSL面板,还不知道使用方法的下面一起来看看。 &#8195;...2017-07-06
  • Plesk控制面板新手使用手册总结

    许多的朋友对于Plesk控制面板应用不是非常的了解特别是英文版的Plesk控制面板,在这里小编整理了一些关于Plesk控制面板常用的使用方案整理,具体如下。 本文基于Linu...2016-10-10
  • 使用insertAfter()方法在现有元素后添加一个新元素

    复制代码 代码如下: //在现有元素后添加一个新元素 function insertAfter(newElement, targetElement){ var parent = targetElement.parentNode; if (parent.lastChild == targetElement){ parent.appendChild(newEl...2014-05-31
  • BootStrap栅格系统、表单样式与按钮样式源码解析

    这篇文章主要为大家详细解析了BootStrap栅格系统、表单样式与按钮样式源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-23
  • jQuery 1.9使用$.support替代$.browser的使用方法

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。 如果要全面支持 IE,并混合...2014-05-31
  • JS中artdialog弹出框控件之提交表单思路详解

    artDialog是一个基于javascript编写的对话框组件,它拥有精致的界面与友好的接口。本文给大家介绍JS中artdialog弹出框控件之提交表单思路详解,对本文感兴趣的朋友一起学习吧...2016-04-19
  • 使用percona-toolkit操作MySQL的实用命令小结

    1.pt-archiver 功能介绍: 将mysql数据库中表的记录归档到另外一个表或者文件 用法介绍: pt-archiver [OPTION...] --source DSN --where WHERE 这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将...2015-11-24
  • 使用GruntJS构建Web程序之构建篇

    大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
  • 如何使用php脚本给html中引用的js和css路径打上版本号

    在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css、js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候,浏览器就可以从浏览器的缓存中获取css、...2015-11-24
  • 使用JQuery实现Ctrl+Enter提交表单的方法

    有时候我们为了省事就操作键盘组合键去代替使用鼠标,我们今天就使用JQuery实现Ctrl+Enter提交表单。我们发帖时,在内容输入框中输入完内容后,可以点击“提交”按钮来发表内容。可是,如果你够“懒”,你可以不用动鼠标,只需按...2015-10-23
  • MySQL日志分析软件mysqlsla的安装和使用教程

    一、下载 mysqlsla [root@localhost tmp]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz--19:45:45-- http://hackmysql.com/scripts/mysqlsla-2.03.tar.gzResolving hackmysql.com... 64.13.232.157Conn...2015-11-24
  • C#注释的一些使用方法浅谈

    C#注释的一些使用方法浅谈,需要的朋友可以参考一下...2020-06-25
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24
  • php语言中使用json的技巧及json的实现代码详解

    目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言对它的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识...2015-10-30
  • 使用jquery修改表单的提交地址基本思路

    基本思路: 通过使用jquery选择器得到对应表单的jquery对象,然后使用attr方法修改对应的action 示例程序一: 默认情况下,该表单会提交到page_one.html 点击button之后,表单的提交地址就会修改为page_two.html 复制...2014-06-07
  • PHP实现无限级分类(不使用递归)

    无限级分类在开发中经常使用,例如:部门结构、文章分类。无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式; 查找分类A下面所有分类包含的文章。1.实现原理 几种常见的实现方法,各有利弊。其中...2015-10-23
  • 基于JavaScript实现表单密码的隐藏和显示出来

    为了网站的安全性,很多朋友都把密码设的比较复杂,但是如何密码不能明显示,不知道输的是对是错,为了安全起见可以把密码显示的,那么基于js代码如何实现的呢?下面通过本文给大家介绍JavaScript实现表单密码的隐藏和显示,需要的朋友参考下...2016-03-03
  • php类的使用实例教程

    php类的使用实例教程 <?php /** * Class program for yinghua05-2 * designer :songsong */ class Template { var $tpl_vars; var $tpl_path; var $_deb...2016-11-25
  • 双冒号 ::在PHP中的使用情况

    前几天在百度知道里面看到有人问PHP中双冒号::的用法,当时给他的回答比较简洁因为手机打字不大方便!今天突然想起来,所以在这里总结一下我遇到的双冒号::在PHP中使用的情况!双冒号操作符即作用域限定操作符Scope Resoluti...2015-11-08