php中模拟POST提交数据的方法

 更新时间:2016年11月25日 15:49  点击:1638
php中模拟POST提交数据的方法 有城要的朋友可参考一下。

1.通过curl函数

 代码如下 复制代码

$post_data = array();
$post_data['clientname'] = "test08";
$post_data['clientpasswd'] = "test08";
$post_data['submit'] = "submit";
$url='http://xxx.xxx.xxx.xx/xx/xxx/top.php';
$o="";
foreach ($post_data as $k=>$v)
{
    $o.= "$k=".urlencode($v)."&";
}
$post_data=substr($o,0,-1);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
//为了支持cookie
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$result = curl_exec($ch);

2.通过fsockopen

 代码如下 复制代码
$URL=‘http://xxx.xxx.xxx.xx/xx/xxx/top.php';
$post_data['clientname'] = "test08";
$post_data['clientpasswd'] = "test08";
$post_data['submit'] = "ログイン";
$referrer="";
// parsing the given URL
$URL_Info=parse_url($URL);
// Building referrer
if($referrer=="") // if not given use this script as referrer
$referrer=$_SERVER["SCRIPT_URI"];
 
// making string from $data
foreach($post_data as $key=>$value)
$values[]="$key=".urlencode($value);
 
$data_string=implode("&",$values);
// Find out which port is needed - if not given use standard (=80)
if(!isset($URL_Info["port"]))
$URL_Info["port"]=80;
// building POST-request:
$request.="POST ".$URL_Info["path"]." HTTP/1.1n";
$request.="Host: ".$URL_Info["host"]."n";
$request.="Referer: $referrern";
$request.="Content-type: application/x-www-form-urlencodedn";
$request.="Content-length: ".strlen($data_string)."n";
$request.="Connection: closen";
$request.="n";
$request.=$data_string."n";
$fp = fsockopen($URL_Info["host"],$URL_Info["port"]);
fputs($fp, $request);
while(!feof($fp)) {
    $result .= fgets($fp, 128);
}
fclose($fp);

其它的第三方插件

Snoopy 类(2)
sourceforge.net/projects/snoopy/

http://www.redalt.com/xref/trunk/nav.htm?wp-includes/class-snoopy.php.htm

HTTP类(1,2)

http://www.phpclasses.org/browse/download/1/file/5/name/http.php

PEAR HTTP_Request

http://pear.php.net/package/HTTP_Request

Popularity: 74%

curl参考

PHP中的CURL函数库(Client URL Library Function)

curl_close — 关闭一个curl会话
curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数
curl_errno — 返回一个包含当前会话错误信息的数字编号
curl_error — 返回一个包含当前会话错误信息的字符串
curl_exec — 执行一个curl会话
curl_getinfo — 获取一个curl连接资源句柄的信息
curl_init — 初始化一个curl会话
curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄资源
curl_multi_close — 关闭一个批处理句柄资源
curl_multi_exec — 解析一个curl批处理句柄
curl_multi_getcontent — 返回获取的输出的文本流
curl_multi_info_read — 获取当前解析的curl的相关传输信息
curl_multi_init — 初始化一个curl批处理句柄资源
curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源
curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"
curl_setopt_array — 以数组的形式为一个curl设置会话参数
curl_setopt — 为一个curl设置会话参数
curl_version — 获取curl相关的版本信息

curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址。
curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄。
curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄。

什么时候会用到递归正则表达式呢? 当然是待匹配的字串中递归地出现某种模式时(貌似废话). 最经典的例子, 就是递归正则处理嵌套括号的问题了.

例子如下.

假设你的文本中包含了正确配对的嵌套括号. 括号的深度可以是无限层. 你想捕获这样的括号组.

恕我剧透, 标准答案是这样的:

 代码如下 复制代码

<?php
$string = "some text (a(b(c)d)e) more text";
if(preg_match("/(([^()]+|(?R))*)/",$string,$matches))
{
    echo "<pre>"; print_r($matches); echo "</pre>";
}
?>
其输出结果是:


 Array
(
    [0] => (a(b(c)d)e)
    [1] => e   
)

可见, 我们所需要的文本, 已经捕获到$matches[0]中了.

原理
现在思考原理.

上面的正则表达式中的关键点是(?R). (?R)的作用就是递归地替换它所在的整条正则表达式. 在每次迭代时, PHP 语法分析器都会将(?R)替换为”(([^()]+|(?R))*)“.

因此, 具体到上述的例子, 其正则表达式等价于:

 代码如下 复制代码

"/(([^()]+|(([^()]+|(([^()]+)*))*))*)/"

但是上面的代码只适合深度为3层的括号. 对于未知深度的括号嵌套, 就只好使用这种正则了:

 代码如下 复制代码

"/(([^()]+|(?R))*)/"

它不但能够匹配无限深度, 还简化了正则表达式的语法. 功能强大, 语法简洁.

现在来细看一下"/(([^()]+|(?R))*)/"是怎样匹配"(a(b(c)d)e)"的:

1."(c)"这部分被正则式 "(([^()]+)*)" 匹配. 请注意, (c) 其实就相当于整个递归的一个缩影, 麻雀虽小五脏俱全, 因此它用到了整个正则表达式.
换言之, 下一步中的(c), 可以使用(?R) 来匹配.
2.(b(c)d)的匹配过程为:
1."("匹配"(";
2."[^()]+"匹配"b";
3. (?R)匹配"(c)";
4."[^()]+"匹配"d";
5.")"匹配")".
根据上面的匹配原理, 不难理解为什么数组的第2个元素$matches[1]与'e'等价. 子串'e'是在最后一次匹配迭代中被捕获. 匹配过程中, 只有最后一次的捕获结果才会保存到数组中.

rex注: 关于这个特性, 可以自行尝试一下, 看看使用正则式([a-z]+[0-9]+)+来匹配字串abc123xyz890, 其捕获结果$1是什么. 注意, 其结果与 Left Longest 原理并不冲突.

如果我们只需要捕获 $matches[0], 可以这样做:

 代码如下 复制代码

 <?php
    $string = "some text (a(b(c)d)e) more text";
    if(preg_match("/((?:[^()]+|(?R))*)/",$string,$matches))
    {
        echo "<pre>"; print_r($matches); echo "</pre>";
    }
?>
产生的结果相同:


 Array
    (
     [0] => (a(b(c)d)e)
    )

所做的改动是捕获括号()改为非捕获捕获括号(?:)了.

还可以进一步完善为:

 代码如下 复制代码
 <?php
    $string = "some text (a(b(c)d)e) more text";
    if(preg_match("/((?>[^()]+|(?R))*)/",$string,$matches))
    {
        echo "<pre>"; print_r($matches); echo "</pre>";
    }
?>

这里我们用到了所谓的一次性模式(rex注: 余晟先生译的《精通正则表达式v3.0》中, 谓之”固化分组”. 可参考该书.) PHP手册也推荐只要条件允许, 就尽可能使用这种模式, 以便提升正则表达式的速度.

PHPExcel用法有需要的朋友可以参考一下。

PHPExcel下载地址:http://phpexcel.codeplex.com/

导入PHPExcel.php或者其他文件

 代码如下 复制代码

require_once 'PHPExcel.php'; 

////require_once'PHPExcel/Writer/Excel5.php';     // 用于其他低版本xls 

// or 

////require_once'PHPExcel/Writer/Excel2007.php'; // 用于excel-2007 格式 

// 创建一个处理对象实例 

$objExcel = new PHPExcel(); 

// 创建文件格式写入对象实例, uncomment 

////$objWriter = newPHPExcel_Writer_Excel5($objExcel);     // 用于其他版本格式  

// or 

////$objWriter = newPHPExcel_Writer_Excel2007($objExcel); // 用于2007 格式 

$objProps = $objExcel->getProperties ();

//设置创建者

$objProps->setCreator ( 'XuLulu');

//设置最后修改者

$objProps->setLastModifiedBy("XuLulu");

//描述

$objProps->setDescription("摩比班级");

//设置标题

$objProps->setTitle ( '管理器' );

//设置题目

$objProps->setSubject("OfficeXLS Test Document, Demo");

//设置关键字

$objProps->setKeywords ( '管理器' );

//设置分类

$objProps->setCategory ( "Test");

//工作表设置

$objExcel->setActiveSheetIndex( 0 );

$objActSheet = $objExcel->getActiveSheet ();

//单元格赋值   例:

$objActSheet->setCellValue ( 'A1', 'ID');

$objActSheet->setCellValue ( 'B1', 'HashCode');

$objActSheet->setCellValue ( 'C1', 'ModelName');

$objActSheet->setCellValue ( 'D1', 'IndexName');

 

$objActSheet->setCellValue('A1', '字符串内容');  // 字符串内容  

$objActSheet->setCellValue('A2', 26);            // 数值 

$objActSheet->setCellValue('A3', true);          // 布尔值 

$objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式

//自动设置单元格宽度   例:

$objActSheet->getColumnDimension('A')->setAutoSize(true);

//手动设置单元格的宽度   例:

//$objActSheet->getColumnDimension('A')->setWidth(10);

//导出的文件名

$outputFileName = iconv ( 'UTF-8', 'gb2312', 'XuLulu_'. time() . '.xlsx' );

 

//直接导出文件

$objWriter->save ( $outputFileName );

 

//文件直接输出到浏览器

header ( 'Pragma:public');

header ( 'Expires:0');

header ( 'Cache-Control:must-revalidate,post-check=0,pre-check=0');

header ( 'Content-Type:application/force-download');

header ( 'Content-Type:application/vnd.ms-excel');

header ( 'Content-Type:application/octet-stream');

header ( 'Content-Type:application/download');

header ( 'Content-Disposition:attachment;filename='. $outputFileName );

header ( 'Content-Transfer-Encoding:binary');

$objWriter->save ( 'php://output');

 

其他设置:

//显式指定内容类型  

$objActSheet->setCellValueExplicit('A5','847475847857487584',

PHPExcel_Cell_DataType::TYPE_STRING); 

//合并单元格  

$objActSheet->mergeCells('B1:C22'); 

//分离单元格  

$objActSheet->unmergeCells('B1:C22');

//得到单元格的样式

$objStyleA5 = $objActSheet->getStyle('A5');

//设置字体 

$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->duplicateStyle($objStyleA5,'B1:C22'); 

//************************************* 

 

//添加图片 

$objDrawing = new PHPExcel_Worksheet_Drawing(); 

$objDrawing->setName('ZealImg'); 

$objDrawing->setDescription('Image inserted byZeal'); 

 

$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');

 

PHPExcel在cakephp中应用:

在Vendors/下创建一个文件夹Excel,将PHPExcel的目录如下:

 在要调用的Controller下的方法写如下代码:

 代码如下 复制代码
App::import ( 'Vendor', 'Excel', array ('file' =>'PHPExcel.php' ) );

后,就可以实例化PHPExcel;具体跟以上情况一样。

(这只是其中的一种方法,还有其他一些方法!)

另:导出excel表格的还有其他一些形式,如php自带的函数fputcsv();也可以导出csv格式的表格。

举一个简单的date例子
 
我将使用echo命令把内容输出到我们的客户端(浏览器)。我将使用下面的代码做为基础代码。
 

 代码如下 复制代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Getting started with dates in php5</title>
</head>
<body>
<?php
date_default_timezone_set('Asia/Shanghai');
echo "Today is ",date('l');
?>
</body>
</html>

 

你将在你的浏览器里看到如下的内容。

Today is Friday
这个函数输出星期几的文本格式。date函数至少需要一个字符参数(这个参数告诉我们怎样格式化当前日期)。

 

尝试不同的格式
 
如果你看了php手册中PHP date function,那么你将发现有很多格式化日期的方式。
 

 代码如下 复制代码
?<?php echo "Today is ",date('Y-m-d'); ?>

将得到

Today is 2012-08-17
 

有一些日期是很普遍地被使用,所以PHP提供了一些常量供你使用。举例,你可以使用Cookie获取到客户端日期。

 代码如下 复制代码
 <?php echo "Today is ",date(DATE_COOKIE); ?>

你将得到如下面的内容

Today is Friday, 17-Aug-12 11:34:38 CST
注意当使用常量的时候不要使用引号。

 

现在是什么时候?
 
如果你想要输出当前时间,你能使用date(不同格式化字符参数)。

 代码如下 复制代码
 <?php echo "The time is ",date('g:i:sa'); ?>

你将得到

The time is 11:39:59am
 

本地化你的时区
 
如果你发现以上的代码没有给出正确的时间,很有可能是因为你的服务器设置了与你本地不同的时区。你需要在服务器上指定时区,那么你用下面的代码:
 <?php date_default_timezone_set('Asia/Shanghai'); ?>
这个将设置中国上海时区。这是php5的函数(注意旧版本的php),有很多供你选择时区。如果你想永久生效,你可以修改你的php.ini文件。

 

获取其他时间
 
你经常需要其他时间,而不是现在的时间。当你用date()函数创建时间的时候,系统会使用Unix系统时间。这个时间表示从1970年1月1日 00:00:00 GMT(Unix 纪元时间),到现在的秒数。
 
为了详细说明怎样获取指定时间的日期,你可以提供秒数做为date(0函数的第二个参数。

 代码如下 复制代码
<?php echo "Today is ",date('Y-m-d', 1309133434); ?>

结果是:

Today is 2011-06-27
这个看起来没什么用途,但它意味着你能用date()函数做计算。这之前,你需要简单的创建一个时间戳。

 

创建时间戳
 
有很多创建时间戳的方式。我们能够使用mktime()函数得到我们需要的时间戳。
 

 代码如下 复制代码
<?php
    $mytime=mktime(9, 23, 33, 6, 26, 2011);
    echo "Today is ",date('Y-m-d g:i:sa', $mytime);
?>

得到的结果是:

Today is 2011-06-26 9:23:33am
 mktime()函数需要你依次传递小时,分钟,秒,月,日,年。这是获取时间戳的好的方式,但是有更酷的方式。

 

通过字符获取时间戳
 
你可以使用strtotime()函数获取时间戳,php把可读的字符转换成Unix时间戳。PHP在把字符转换成时间戳方面是相当灵活的,因此你可以插入各种各样的值来获取你想要的时间戳。
 
这是一个简单例子:

 代码如下 复制代码

<?php
    $mytime=strtotime("7:50pm June 26 2011");
    echo "Today is ",date('Y-m-d g:i:sa', $mytime);
?>
输出:

Today is 2011-06-26 7:50:00pm

 

PHP在解释字符方面是相当灵巧的,但不是完美的,因此,在你插入之前一定要测试你输入的字符。使用"english-like instructions"转化成需要的时间戳,这是一个非常不错的方式。你可以像下面这样做:

 代码如下 复制代码
$nextfriday=strtotime("next Friday"); //下周五
$nextmonth=strtotime("+1 Month"); //从今天开始计算一个月以后的时间
$lastchristmas=strtotime("-1 year dec 25"); //去年圣诞节

 

获取日期范围
 
strtotime返回的值被转换为数字,我们能够用这些数字做基础运算,我们可以用这些数字做很多非常有意思的事情。比如,你每周二需要教一门功课,为期16周,你想得到你教科时间。你能够做下面的事情。
 

 代码如下 复制代码

<?php
$startdate = strtotime('next Tuesday');
$enddate = strtotime('+16 weeks', $startdate);
$currentdate = $startdate;
echo '<ol>';
while($currentdate < $enddate):
    echo "t<li>", date('M d', $currentdate);
    $currentdate = strtotime('+1 week', $currentdate);
endwhile;
echo '</ol>';
?>

你将会得到如下的结果:


Aug 21
Aug 28
Sep 04
Sep 11
Sep 18
Sep 25
Oct 02
Oct 09
Oct 16
Oct 23
Oct 30
Nov 06
Nov 13
Nov 20
Nov 27
Dec 04

 

注意一下这行:$currentdate = strtotime("+1 week", $currentdate)。在这行,你会发现你需要指定一个时间戳做为第二个参数,strtotime将使用这个参数代替默认时间戳(今天),并进行运算。

 

到某一个日期的天数
 
使用计算器的时候,我们会试图去计算到某一天的天数。你很容易计算11月份第四个星期四的时间戳。
 

 代码如下 复制代码
$someday = strtotime("3 weeks thursday November 1");
$daysUtilDate = ceil(($someday - time())/60/60/24);
echo "There are ", $daysUtilDate, " until Thanksgiving";

首先,我们开始计算感恩节日期(11月1号之后的第一个星期四之后的第3个星期四),然后我们通过简单的算术,计算出感恩节到当前时间之间的天数。当我们进行比较运算的时候,我们可以使用time(),因为它返回,到当前时间的纪元秒数。

在写程序的过程中经常会用到$_SERVER函数,有时候对变量不太了解就会造成很大的误解。今天偶找了几个小例子来说明一下常用到的四个变量的用法~~

$_SERVER存储当前服务器信息,其中有几个值如

 代码如下 复制代码

$_SERVER["QUERY_STRING"],

$_SERVER["REQUEST_URI"],

$_SERVER["SCRIPT_NAME"],

$_SERVER["PHP_SELF"]

常常容易混淆,以下通过实例详解$_SERVER函数中QUERY_STRING,REQUEST_URI,SCRIPT_NAME和PHP_SELF变量区别,掌握这四者之间的关系,便于在实际应用中正确获取所需要的值,供参考。

1,$_SERVER["QUERY_STRING"]

说明:查询(query)的字符串

2,$_SERVER["REQUEST_URI"]

说明:访问此页面所需的URI

3,$_SERVER["SCRIPT_NAME"]

说明:包含当前脚本的路径

4,$_SERVER["PHP_SELF"]

说明:当前正在执行脚本的文件名

实例:

1,http://ask.mbatrip.com (打开主页)

结果:

 代码如下 复制代码

$_SERVER["QUERY_STRING"] = “”

$_SERVER["REQUEST_URI"] = “/”

$_SERVER["SCRIPT_NAME"] = “/index.php”

$_SERVER["PHP_SELF"] = “/index.php”

2,http://ask.mbatrip.com/?tags/上传(附带查询)

结果:

 代码如下 复制代码

$_SERVER["QUERY_STRING"] = “tags/上传″

$_SERVER["REQUEST_URI"] = “/?tags/上传″

$_SERVER["SCRIPT_NAME"] = “/index.php”

$_SERVER["PHP_SELF"] = “/index.php”

3,http://ask.mbatrip.com/?tags/上传/2

结果:

$_SERVER["QUERY_STRING"] = “tags/上传/2”

$_SERVER["REQUEST_URI"] = “/index.php?tags/上传/2”

$_SERVER["SCRIPT_NAME"] = “/index.php”

$_SERVER["PHP_SELF"] = “/index.php”

$_SERVER["QUERY_STRING"]获取查询语句,实例中可知,获取的是?后面的值

$_SERVER["REQUEST_URI"] 获取http://www.111cn.net后面的值,包括/

$_SERVER["SCRIPT_NAME"] 获取当前脚本的路径,如:index.php

$_SERVER["PHP_SELF"] 当前正在执行脚本的文件名

总结一下,

对于QUERY_STRING,REQUEST_URI,SCRIPT_NAME 和PHP_SELF,深入了解将有利于我们在$_SERVER函数中正确调用这四个值。通过实例详解$_SERVER函数中 QUERY_STRING,REQUEST_URI,SCRIPT_NAME和PHP_SELF掌握四个变量之间的区别。

[!--infotagslink--]

相关文章

  • php 中file_get_contents超时问题的解决方法

    file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • ps把文字背景变透明的操作方法

    ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
  • intellij idea快速查看当前类中的所有方法(推荐)

    这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02
  • Mysql select语句设置默认值的方法

    1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
  • js导出table数据到excel即导出为EXCEL文档的方法

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13
  • mysql 批量更新与批量更新多条记录的不同值实现方法

    批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
  • js基础知识(公有方法、私有方法、特权方法)

    本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
  • ps怎么制作倒影 ps设计倒影的方法

    ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果&#819...2017-07-06
  • 安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法

    手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21
  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • c#中分割字符串的几种方法

    单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25
  • Android模拟器上模拟来电和短信配置

    如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
  • js控制页面控件隐藏显示的两种方法介绍

    javascript控制页面控件隐藏显示的两种方法,方法的不同之处在于控件隐藏后是否还在页面上占位 方法一: 复制代码 代码如下: document.all["panelsms"].style.visibility="hidden"; document.all["panelsms"].style.visi...2013-10-13
  • 连接MySql速度慢的解决方法(skip-name-resolve)

    最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能...2015-10-21
  • 夜神android模拟器设置代理的方法

    夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
  • C#方法的总结详解

    本篇文章是对C#方法进行了详细的总结与介绍,需要的朋友参考下...2020-06-25
  • JS中artdialog弹出框控件之提交表单思路详解

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