php 采集远程服务器图片文件

 更新时间:2016年11月25日 16:02  点击:1511

class GetImage {

 

var $source;

var $save_to;

var $quality;

 

function download($method = 'curl') {

    $info = @GetImageSize($this->source);

    $mime = $info['mime'];

   

// What sort of image?

    $type = substr(strrchr($mime, '/'), 1);

    switch ($type){

        case 'jpeg':

            $image_create_func = 'ImageCreateFromJPEG';

            $image_save_func = 'ImageJPEG';

            $new_image_ext = 'jpg';

       

            // Best Quality: 100

            $quality = isSet($this->quality) ? $this->quality : 100;

            break;

       

        case 'png':

            $image_create_func = 'ImageCreateFromPNG';

            $image_save_func = 'ImagePNG';

            $new_image_ext = 'png';

       

            // Compression Level: from 0  (no compression) to 9

            $quality = isSet($this->quality) ? $this->quality : 0;

            break;

       

        case 'bmp':

            $image_create_func = 'ImageCreateFromBMP';

            $image_save_func = 'ImageBMP';

            $new_image_ext = 'bmp';

            break;

       

        case 'gif':

            $image_create_func = 'ImageCreateFromGIF';

            $image_save_func = 'ImageGIF';

            $new_image_ext = 'gif';

 

            break;

       

        case 'vnd.wap.wbmp':

            $image_create_func = 'ImageCreateFromWBMP';

            $image_save_func = 'ImageWBMP';

            $new_image_ext = 'bmp';

            break;

       

        case 'xbm':

            $image_create_func = 'ImageCreateFromXBM';

            $image_save_func = 'ImageXBM';

            $new_image_ext = 'xbm';

            break;

       

        default:

            $image_create_func = 'ImageCreateFromJPEG';

            $image_save_func = 'ImageJPEG';

            $new_image_ext = 'jpg';

    }

   

    if(isSet($this->set_extension)){

        $ext = strrchr($this->source, ".");

        $strlen = strlen($ext);

        $new_name = basename(substr($this->source, 0, -$strlen)).'.'.$new_image_ext;

    }else{

        $new_name = basename($this->source);

    }

   

    $save_to = $this->save_to."/blog_insert_temp_".time().mt_rand(1,99).".".$new_image_ext;

    //输出对象 组成跟$_FILE变量一样 得到后自己和平常图片上传处理一样了

    $img_info['name'] = basename($this->source);

    $img_info['type'] = $mime;

    $img_info['size'] = 1000;

    $img_info['tmp_name'] = $save_to;

    $img_info['error'] = 0;

       

    if($method == 'curl'){

        $save_image = $this->LoadImageCURL($save_to);

    }elseif($method == 'gd'){

        $img = $image_create_func($this->source);

   

            if(isSet($quality)){

               $save_image = $image_save_func($img, $save_to, $quality);

            }else{

               $save_image = $image_save_func($img, $save_to);

            }

          

    }

         return $img_info;

    }

   

    function LoadImageCURL($save_to){

        $ch = curl_init($this->source);

        $fp = fopen($save_to, "wb");

       

        // set URL and other appropriate options

        $options = array(CURLOPT_FILE => $fp,

                         CURLOPT_HEADER => 0,

                         CURLOPT_FOLLOWLOCATION => 1,

                         CURLOPT_TIMEOUT => 60); // 1 minute timeout (should be enough)

       

        curl_setopt_array($ch, $options);

       

        curl_exec($ch);

        curl_close($ch);

        fclose($fp);

 

    }

}

在php中字符串函数有很多哦,在说了php本来就是由函数组成了,这让开发人员可以加快网站的开发速度哦,好了费话不说多了我们来看看我为各位朋友免费提供的php 字符串函数教程与实例代码吧。

在php中字符串函数有很多哦,在说了php本来就是由函数组成了,这让开发人员可以加快网站的开发速度哦,好了费话不说多了我们来看看我为各位朋友免费提供的php 字符串函数教程与实例代码吧。

AddSlashes: 字符串加入斜线。
bin2hex: 二进位转成十六进位。
Chop: 去除连续空白。
Chr: 返回序数值的字符。
chunk_split: 将字符串分成小段。
convert_cyr_string: 转换古斯拉夫字符串成其它字符串。
crypt: 将字符串用 DES 编码加密。
echo: 输出字符串。
explode: 切开字符串。
flush: 清出输出缓冲区。
get_meta_tags: 抽出文件所有 meta 标记的资料。
htmlspecialchars: 将特殊字符转成 HTML 格式。
htmlentities: 将所有的字符都转成 HTML 字符串。
implode: 将数组变成字符串。
join: 将数组变成字符串。
ltrim: 去除连续空白。
md5: 计算字符串的 MD5 哈稀。
nl2br: 将换行字符转成 <br>。
Ord: 返回字符的序数值。
parse_str: 解析 query 字符串成变量。
print: 输出字符串。
printf: 输出格式化字符串。
quoted_printable_decode: 将 qp 编码字符串转成 8 位字符串。
QuoteMeta: 加入引用符号。
rawurldecode: 从 URL 专用格式字符串还原成普通字符串。
rawurlencode: 将字符串编码成 URL 专用格式。
setlocale: 配置地域化信息。
similar_text: 计算字符串相似度。
soundex: 计算字符串的读音值
sprintf: 将字符串格式化。
strchr: 寻找第一个出现的字符。
strcmp: 字符串比较。
strcspn: 不同字符串的长度。
strip_tags: 去掉 HTML 及 PHP 的标记。
StripSlashes: 去掉反斜线字符。
strlen: 取得字符串长度。
strrpos: 寻找字符串中某字符最后出现处。
strpos: 寻找字符串中某字符最先出现处。
strrchr: 取得某字符最后出现处起的字符串。
strrev: 颠倒字符串。
strspn: 找出某字符串落在另一字符串遮罩的数目。
strstr: 返回字符串中某字符串开始处至结束的字符串。
strtok: 切开字符串。
strtolower: 字符串全转为小写。
strtoupper: 字符串全转为大写。
str_replace: 字符串取代。
strtr: 转换某些字符。
substr: 取部份字符串。
trim: 截去字符串首尾的空格。
ucfirst: 将字符串第一个字符改大写。
ucwords: 将字符串每个字第一个字母改大写。


下面来看看php字符串函数的实例吧。

josh@superfork.com (22-Jun-1999) 写了一个函数,可将十六进位转成二进位。
<?
function hex2bin($data) {
$len = strlen($data);
for($i=0;$i&lt;$len;$i+=2) {
$newdata .= pack("C",hexdec(substr($string,$i,2)));
}
return $newdata;
}
?>
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串的连续空白清除。
使用范例
<?
$trimmed = Chop($line);
?>
参考: trim()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符的序数转成 ASCII 的字符。本函数和 ord() 成对照。
使用范例
<?
$str .= chr(27);
$str = sprintf("字符串的结束字符是: %c", 27);
?>
参考: ord() sprintf()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符变成小段供其它函数使用。例如,base64_encode。内定是参数 chunklen (76 个字符) 每隔 76 个字符插入 end ("rn")。返回新字符串而不改动原字符串。
使用范例
将字符串 $data 格式化成 MIME BASE64 格式
<?
$new_string = chunk_split(base64_encode($data));
?>
参考: ereg_replace()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将古斯拉夫字符串转成其它的字符串。from 及 to 二个参数是字符,其代表意义如下:
k - koi8-r
w - windows-1251
i - iso8859-5
a - x-cp866
d - x-cp866
m - x-mac-cyrillic
语法: string crypt(string str, string [salt]);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数将字符串用 UNIX 的标准加密 DES 模块加密。这是单向的加密函数,无法解密。欲比对字符串,将已加密的字符串的头二个字符放在 salt 的参数中,再比对加密后的字符串。
更详细的资料请参考 UNIX Manual (man) 中的 crypt。
在一些较新的 UNIX 版本中,除了 DES 之外还提供了其它的加密模块,如 MD5。甚至有些系统还用 MD5 取代 DES。在 salt 参数还有一些变化,端看传给 salt 参数的字符串长度而定:
CRYPT_STD_DES - 标准的 DES 编码,输入 2 字符的 salt。
CRYPT_EXT_DES - 延伸的 DES 编码,输入 9 字符的 salt。
CRYPT_MD5 - MD5 编码,输入 12 字符加上 $1$ 的 salt。
CRYPT_BLOWFISH - 延伸的 DES 编码,输入 16 字符加上 $2$ 的 salt。
此外,若不使用 salt 参数,则程序会自动产生。
返回值: 无
函数种类: PHP 系统功能
内容说明: 本函数将字符串输出。由于它不是真正的函数,因此也没有返回值。
使用范例
<?php
echo "Hello World";
?>
参考: print() printf() flush()
返回值: 数组
函数种类: 资料处理
内容说明: 本函数将字符串依指定的字符串或字符 separator 切开。将切开后的字符串返回到数组变量中。
使用范例
<?
$pizza = "第一片 第二片 第三片 第四片 第五片 第六片";
$pieces = explode(" ", $pizza);
?>
参考: implode()
返回值: 无
函数种类: 资料处理
内容说明: 本函数无输入亦无输出。将输出缓冲区的资料送出,并清出。
语法: array get_meta_tags(string filename, int [use_include_path]);
返回值: 数组
函数种类: 资料处理
内容说明: 本函数将 homepage 中的所有 <meta ......> 标记的资料取出并放置数组变量返回。例如
<html>
<head>
<meta content="彭武兴">
<meta content="PHP BIBLE">
<title>PHP BIBLE</title>
</head><!-- 本函数处理只到这儿结束 -->
本函数找出 meta 标记,name 属性的字符串为数组索引,而 content 属性字符串则为数组的内容资料了。治募 注意的是本函数为 PHP 原生函数,在 UNIX 系列平台上无法直接处理麦金塔的文件格式,因为换行字符不同。blake@mediaone.net 指出 (07-Jun- 1999),参数 filename 也可以是 URL,函数将抽出远端服务器的文件 meta 标记。而函数在处理时,遇到 < /head> 标记结束,要是 <meta ....> 标记放在 </head> 后将无法处理。
语法: string htmlspecialchars(string string);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将特殊字符转成 HTML 的字符串格式 ( &....; )。最常用到的场合可能就是处理客户留言的留言版了。
& (和) 转成 &
" (双引号) 转成 "
< (小于) 转成 &lt;
> (大于) 转成 &gt;
此函数只转换上面的特殊字符,并不会全部转换成 HTML 所定的 ASCII 转换。
使用范例
这是 aulbach@unter.franken.de (27-Jan-1999) 所提供的范例
<FORM ACTION=bla>
<H2>Restaurant Description<H2>
Name of restaurant:
<INPUT TYPE=text VALUE="&lt;?
echo HTMLSpecialChars($restname); ?>"&gt;
<!-- 变量 $restname 是酱子的 $restname=""The White Horse""; -->
<BR>
输入描述 (若您会 HTML,可直接使用): <BR>
<TEXTAREA ><?
echo HTMLSpecialChars($descript);
?></TEXTAREA>
<INPUT TYPE=submit>
</FORM>
参考: htmlentities() nl2br()
语法: string htmlentities(string string);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数有点像 htmlspecialchars() 函数,但本函数会将所有 string 的字符都转成 HTML 的特殊字集字符串。不过在转换后阅读网页源代码的方面,会有很多困扰,尤其是网页源代码的中文字会变得不知所云,浏览器上看到的还是正常的。
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将数组的内容组合成一个字符串,参数 glue 是字之间的分隔符号。
使用范例
<?
$colon_separated = implode(":", $array);
echo $colon_separated;
?>
参考: explode() join() split()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数是 implode 函数的别名。
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数用来删去字符串中的连续空白带 (whitespace)。
语法: string md5(string str);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数用来计算 MD5 哈稀。关于 MD5 编码法,可以参考 RSA Data Security, Inc. MD5 Message- Digest Algorithm. RFC1321;或是赖溪松、韩亮、张真诚等合着之近代密码学及其应用,11.3。
语法: string nl2br(string string);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将换行字符转换成 HTML 换行的 <br> 指令。
参考: htmlspecialchars() htmlentities()
返回值: 整数
函数种类: 资料处理
内容说明: 本函数返回字符的 ASCII (美国国家标准交换码) 序数值。本函数和 chr() 函数相反。
使用范例
<?php
if (ord($str) == 10) {
echo("字符串 $str 的第一个字是换行字符。n");
}
?>
参考: chr()
语法: void parse_str(string str);
返回值: 无
函数种类: 资料处理
内容说明: 本函数可将浏览器返回的 GET 方法的 QUERY_STRING 字符串解析。返回的变量名及值就依 QUERY_STRING 的名称及值。
使用范例
<?php
$str = "first=value&second[]=this+works&second[]=another";
parse_str($str);
echo $first; // 显示出 "value" 字符串
echo $second[0]; // 显示 "this works" 字符串
echo $second[1]; // 显示 "another" 字符串
?>
返回值: 布尔值
函数种类: 资料处理
内容说明: 本函数输出字符串。若成功则返回 1,失败则返回 0。例如传输中途客户的浏览器突然挂了,则会造成输出失败的情形。
参考: echo() printf() flush()
返回值: 整数
函数种类: 资料处理
内容说明: 本函数依参数 format 指定的内容格式将字符串格式化。格式的细节可以参考 sprintf()。
参考: print() sprintf() flush()
语法: string quoted_printable_decode(string str);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数可以将 quoted-printable 后的字符串解码成为 8 位编码的字符串。而本函数类似 imap_qprint() 函数,只一不同的地方是使用 imap_qprint() 函数需要让系统加入 IMAP 的模块,而本函数不需要 IMAP 模块。
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串中含有 . \ + * ? [ ^ ] ( $ ) 等字符的前面加入反斜线 "" 符号。
参考: addslashes() htmlentities() htmlspecialchars() nl2br() stripslashes()
语法: string rawurldecode(string str);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数将字符串解码。从 URL 的字符串专用格式解成普通字符串。详细的编码解码信息及规格文件可以参考 RFC 1738。
参考: rawurlencode()
语法: string rawurldecode(string str);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数将字符串编码成 URL 的字符串专用格式,特殊的字符会转换成百分比符号后面加上二个十六位数字的格式。例如,空格就会变成 %20。
使用范例
<?php
echo '&lt;a href="ftp://guest:', rawurlencode ('foo @+%/'), '@localhost/x.txt">';
?&gt;
参考: rawurldecode()

返回值: 字符串
函数种类: 操作系统与环境
内容说明: 本函数用来配置地域的信息。参数 category 有下列的选择:
LC_ALL 包括下面的全项选项都要。
LC_COLLATE 配置字符串比较,PHP 目前尚未实作出来本项。
LC_CTYPE 配置字符类别及转换。例如全变大写 strtoupper()。
LC_MONETARY 配置金融货币,PHP 目前尚未实作。
LC_NUMERIC 配置小数点后的位数。
LC_TIME 配置时间日期格式,与 strftime() 合用。
而参数 locate 若是空字符串 "",则会使用系统环境变量的 locate 或是 LANG 的值。若 locate 为零,则不会改变地域化配置。返回新的地域,若系统尚未实作则返回 false。
使用范例
Michal Fita <manveru@witrynka.pl> 于 11-Jan-1999 11:01 提出这个以波兰作地域化的例子。
<?
setlocale("LC_ALL", "pl");
$net = "1234,56";
$gross = "1,22" * $net;
printf("毛利: %s, 净利: %s", $gross, $net");
/* 波兰总?/font>[值税为 22% */
?&gt;
返回值则为
毛利: 1234,56, 净利: 1506,1632
返回值: 整数
函数种类: 资料处理
内容说明
本函数用来计算比较二字符串的相似程度。
返回值: 字符串
函数种类: 资料处理
内容说明: Soundex 值是利用英文字的读音近似值所求得的值,值由四个字符构成,第一个字符为英文字母,后三个为数字。在拼音文字中有时会有会念但不能拼出正确字的情形,特别是在做搜寻引擎时面对用户传入的英文字符串,可用本函数做类似模糊比对的效果。例如 Knuth 和 Kant 二个字符串,它们的 soundex 值都是 H416。更详细的说明参考 Donald Knuth 大师的名著:电脑程序设计的艺术 (The Art Of Computer Programming) 第三卷排序和搜寻。
使用范例
<?
$str1=soundex("Wilson");
$str2=soundex("Waillsume");
echo "soundex("Wilson")=$str1 等于n";
echo "soundex("Waillsume")=$str2n";
echo "值均为 $str1";
?>
上例返回的字符串为
soundex("Wilson")=W425 等于
soundex("Waillsume")=W425
值均为 W425
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数用来将字符串格式化。参数 format 是转换的格式,以百分比符号 % 开始到转换字符为止。而在转换的格式间依序包括了
填空字符。0 的话表示空格填 0;空格是默认值,表示空格就放着。
对齐方式。默认值为向右对齐,负号表向左对齐。
字段宽度。为最小宽度。
精确度。指在小数点后的浮点数位数。
类型,见下表 % 印出百分比符号,不转换。
b 整数转成二进位。
c 整数转成对应的 ASCII 字符。
d 整数转成十进位。
f 倍精确度数字转成浮点数。
o 整数转成八进位。
s 整数转成字符串。
x 整数转成小写十六进位。
X 整数转成大写十六进位。
使用范例
<?
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// 此时变量 $money 值为 "123.1";
$formatted = sprintf ("%01.2f", $money);
// 此时变量 $ formatted 值为 "123.10"
?>
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数也就是 strstr() 函数。
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来比较二字符串的大小。返回负数表示 str1 小于 str2;返回正数表示 str1 大于 str2;返回零表示二字符串相同。
参考: ereg() substr() strstr()
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来比较二字符串并计算出不同处的字符串长度。
参考: strspn()
语法: string strip_tags(string str);
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数可去掉字符串中包含的任何 HTML 及 PHP 的标记字符串。若是字符串的 HTML 及 PHP 标签原来就有错,例如少了大于的符号,则也会返回错误。而本函数和 fgetss() 有着相同的功能。
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数可去掉字符串中的反斜线字符。若是连续二个反斜线,则去掉一个,留下一个。若只有一个反斜线,就直接去掉。
参考: addslashes()
返回值: 整数
函数种类: 资料处理
内容说明: 本函数返回指定的字符串长度。
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来寻找字符串 haystack 中的字符 needle 最后出现的位置。值得注意的是 needle 只能是一个字符,中文字等就不适合了。若找不到指定的字符,则返回 false 值。
参考: strpos() strrchr() substr() strstr()
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来寻找字符串 haystack 中的字符 needle 最先出现的位置。值得注意的是 needle 只能是一个字符,中文字等就不适合了。若找不到指定的字符,则返回 false 值。参数 offset 可省略,用来Y表示从 offset 开始找。
参考: strrpos() strrchr() substr() strstr()
返回值: 整数
函数种类: 资料处理
内容说明: 本函数用来寻找字符串 haystack 中的字符 needle 最后出现位置,并将此位置起至字符串 haystack 结束之间的字符串返回。若没有找到 needle 则返回 false。
使用范例
下例取回环境变量 PATH 之最后一个路径
<?php
$dir = substr( strrchr( $PATH, ":" ), 1 );
echo "最后的路径为: ".$dir;
?>
参考: substr() strstr()
返回值: 字符串
函数种类: 资料处理
内容说明: 将字符串前后颠倒。
使用范例
下例的返回字符串为 "gneP nosliW"
<?
$str=strrev("Wilson Peng");
echo $str;
?>
返回值: 整数
函数种类: 资料处理
内容说明: 本函数将 str2 字符串当遮罩,可用来计算 str1 字符串中有几个字符落在 str2 遮罩中。
参考: strcspn()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将 needle 最先出现在 haystack 处起至 haystack 结束的字符串返回。若找不到 needle 则返回 false。
参考: strrchr() substr() ereg()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 arg1 依字符串 arg2 的值切开成小段小段的字符串。
使用范例: 本例将 I will be back 字符串依空白切开。
<?php
$string = "I will be back";
$tok = strtok($string," ");
while($tok) {
echo "单字=$tok&lt;br>";
$tok = strtok(" ");
}
?&gt;
参考: split() explode()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 str 全部变小写字符串。
参考: strtoupper() ucfirst()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 str 全部变大写字符串。
参考: strtolower() ucfirst()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 str 代入 haystack 字符串中,将所有的 needle 置换成 str。 mlevine@adtraq.com (11-Apr-1999) 指出在 PHP 3.0.7 版,本函数有些 bug,而 nadeem@bleh.org (05-Jun-1999) 补充在 PHP 3.0.8 版本函数就回复正常了。
使用范例
下例将 %body% 以 black 取代
<?php
$bodytag = str_replace("%body%", "black", "&lt;body text=%body%>");
echo $bodytag;
?&gt;
参考: ereg_replace()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 str 中和 from 有关的字符一一转成 to 的字符。
参考: ereg_replace()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数将字符串 string 的第 start 位起的字符串取出 length 个字符。若 start 为负数,则从字符串尾端算起。若可省略的参数 length 存在,但为负数,则表示取到倒数第 length 个字符。
使用范例
<?
echo substr("abcdef", 1, 3); // 返回 "bcd"
echo substr("abcdef", -2); // 返回 "ef"
echo substr("abcdef", -3, 1); // 返回 "d"
echo substr("abcdef", 1, -1); // 返回 "bcde"
?>
参考: strrchr() ereg()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数返回字符串 string 首尾的空白字符去除后的字符串。
参考: chop() ltrim()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数返回字符串 str 第一个字的字首字母改成大写。
参考: strtoupper() strtolower()
返回值: 字符串
函数种类: 资料处理
内容说明: 本函数返回字符串 str 每个字的字首字母全都改成大写。


1)echo,print,printf,sprintf

前两个函数是输出字符串.字符串中如果有变量名则被替换成其值.

后两个函数类似于C的同名函数.

(2)strchr,strlen,strtok,strrchr,strrev,strstr,strtolower,

strtoupper,substr,ucfirst

这些是常用的字符串操作函数,有些和C中的同名函数意义完全一致.

strrev是把一个字符串翻转.

strtolower和strtoupper的意思应该不用解释了.

ucfirst是把字符串的第一个字符变成大写.

substr是返回字符串的一个子串,用法是:substr(字符串,头,长度).

头位置是 从0算起的.如果是负数,则是从尾部向前数的意思.

(3)Chr,Ord

类似于C的同名函数.

(4)explode,implode,join

这些是和数组有关的函数.

explode(字符串,分割符)返回一个将字符串在分割符处分开所产生的数组.

implode(数组,分割符)返回一个将数组各元素之间插上分割符而成的字符串.

join与implode意义相同.

(5)Chop

去掉字符串尾部的空白.

(6)htmlspecialchars

将字符串中的HTML特殊字符换成它们的名字,例如"<"变成"<".

(7)nl2br

在字符串中的每一个回车前面加上"<BR>".

(8)AddSlashes,StripSlashes

分别给字符串中需要加上"\"才能用于数据库查询的字符加上和去掉"\".

(9)parse_str

将"name1=value1&name2=value2&..."类型的字符串分析成一些变量.

例如:
parse_str("a=1&b=2");

生成a与b两个变量,值分别为1,2.

如果有两对名字/值的名字部分相同,则后一个的值覆盖前一个的.

如果这两对的名字尾部都有"[]",例如"a[]=1&a[]=2",则生成数组a,两个元素分别为1,2

好了文章写了一大堆了,希望这些字符串函数的实例能给你带来帮助。

mysqli的异常处理功能?
class check{
                        private $host;
                        private $name;
                        private $paw;
                        public $res;
                        function connect($host,$name,$paw){
//                                var_dump($host,$name,$paw);exit();
                                $this->res = @new mysqli($host,$name,$paw);
                                //
                                if(!$this->res){
                                        throw new Exception("MySQL connect is error!");
                                }
                        }

                }
               
                try {
                        $a = new check();
                        $a->connect("localhost","root","123jodjg");

                }catch (Exception $e){
                        echo $e->getMessage();
                }

这个是代码。如果不用mysqli来做。用mysql_connect这样的函数来做就没问题的

哈希(Hash)表

一般的查找方法基于比较的,查找效率依赖比较次数,其实理想的查找希望不经比较,一次存取便能得到所查

记录,那就必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,这样查找k时,只要根据这个

对应关系f找到给定值k的像f(k)。这种对应关系f叫哈希(hash)函数。按这种思想建立的表叫哈希表(也

叫散列表)。哈希表存取方便但存储时容易冲突(collision):即不同的关键字可以对应同一哈希地址。如

何确定哈希函数和解决冲突是关键。

1.哈希函数的构造方法

直接定址法:H(k)=k 或H(k)=a*k+b(线形函数)

如:人口数字统计表

地址 1 2 3 ... 100
年龄 1 2 3 ... 100
人数 67  3533 244 ... 4

数字分析法:取关键字的若干数位组成哈希地址

如:关键字如下:若哈希表长为100则可取中间两位10进制数作为哈希地址。   

81346532 81372242 81387422 81301367 81322817 81338967 81354157 81368537

平方取中法:关键字平方后取中间几位数组成哈希地址

折叠法:将关键数字分割成位数相同的几部分(最后一部分的位数可以不同)然后取几部分的叠加和(舍

去进位)作为哈希地址。

除留余数法:取关键字被某个不大于表长m的数p除后所得的余数为哈希地址。

           H(k)=k mod p  p<=m

随机数法:H(k)=rondom(k)。

2.处理冲突的方法

假设地址集为0..n-1,由关键字得到的哈希地址为j(0<=j<=n-1)的位置已存有记录,处理冲突就是为该关键

字的记录找到另一个"空"的哈希地址。在处理中可能得到一个地址序列Hi i=1,2,...k

0<=Hi<=n-1),即在处理冲突时若得到的另一个哈希地址H1仍发生冲突,再求下一地址H2,若仍冲突,再求

H3...。怎样得到Hi呢?

开放定址法:Hi=(H(k)+di) mod m  (H(k)为哈希函数;m为哈希表长;di为增量序列)

当di=1,2,3,... m-1 时叫线性探测再散列。

当di=12,-12,22,-22,32,-32,...,k2,-k2时叫二次探测再散列。

当di=random(m)时叫伪随机探测序列。

例:长度为11的哈希表关键字分别为17,60,29,哈希函数为H(k)=k mod 11,第四个记录的关键字为38

,分别按上述方法添入哈希表的地址为8,4,3(随机数=9)。

再哈希法:Hi=RHi(key) i=1,2,...,k,其中RHi均为不同的哈希函数。

链地址法:这种方法很象基数排序,相同的地址的关键字值均链入对应的链表中。

建立公益区法:另设一个溢出表,不管得到的哈希地址如何,一旦发生冲突,都填入溢出表。

3.哈希表的查找

例:如下一组关键字按哈希函数H(k)=k mod 13和线性探测处理冲突所得的哈希表a[0..15]:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  14 01 68 27 55 19 20 84 79 23 11 10      

当给定值k=84,则首先和a[6]比在依次和a[7],a[8]比结果a[8]=84查找成功。

当给定值k=38,则首先和a[12]比,再和a[13]比,由于a[13]没有,查找不成功,表中不存在关键字等于38的记

录。

5.5 查找第k小元素

查找第k小元素即在n个元素中(未排序)找到第k小的元素。方法同快速排序,采用递归方式。

程序如下:

program kspv;
const n=7;
type
arr=array[1..n] of integer;
var
b:arr;
i,k:integer;
function p(s,t:integer):integer;
var i,j,t1,x:integer;
begin
  i:=s;j:=t;x:=b[i];
  repeat
   while (b[j]>=x) and (j>i) do j:=j-1;
    if j>i then begin t1:=b[i]; b[i]:=b[j];b[j]:=t1;end;
   while (b[i]<=x) and (i<j) do i:=i+1;
    if i<j then begin t1:=b[j];b[j]:=b[i];b[i]:=t1; end
  until i=j;
  b[i]:=x;
  p:=i;
end;
function find(s,t,k:integer):integer;
var p1,q:integer;
begin
if s=t then find:=b[s] else
  begin
   p1:=p(s,t);
   q:=p1-s+1;
   if k<=q then find:=find(s,p1,k) else find:=find(p1+1,t,k-q);
end;
end;
begin
write('input data:');
for i:=1 to n do read(b[i]);readln;
write('input k:');read(k);
write('output data:');
writeln('kthsmall:=',find(1,n,k));
end.

php 用户登陆代码,入门教程
 function login_xzy()
 {
  $user_=db("user");
  $session_=db("session");
  $login['email']=strip_tags($_POST['email']);
  $login['pass']=empty($_POST['pass'])?"":md5($_POST['pass']);
  if($user=$user_->where("`email`='{$login['email']}' and `pass`='{$login['pass']}'")->find()){
   if($session_->where("`uid`='{$user['uid']}'")->find()){
    $json['status']=1;
    $json['info']='已登陆的会员!';
   }else{
    $user['total']++;
    $user_->where("`uid`='{$user['uid']}'")->update(array('total'=>$user['total'],'lastip'=>ip2long(getip()),'lasttime'=>time() ));
    $session_->where("session_id='".Session_id()."'")->update(array('uid'=>$user['uid']));
    $_SESSION['user']=$user;
    $json['data']=$user;
    $json['status']=0;
   }
  }else{
   $json['status']=1;
   $json['info']='用户名或密码不正确!';
  }
  echo json_encode($json);
 }

[!--infotagslink--]

相关文章

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

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • 使用PHP+JavaScript将HTML页面转换为图片的实例分享

    这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Photoshop古装美女图片转为工笔画效果制作教程

    今天小编在这里就来给各位Photoshop的这一款软件的使用者们来说说把古装美女图片转为细腻的工笔画效果的制作教程,各位想知道方法的使用者们,那么下面就快来跟着小编一...2016-09-14
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • 利用JS实现点击按钮后图片自动切换的简单方法

    下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
  • 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
  • jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮

    jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮...2013-10-13
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • js实现上传图片及时预览

    这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • Photoshop枪战电影海报图片制作教程

    Photoshop的这一款软件小编相信很多的人都已经是使用过了吧,那么今天小编在这里就给大家带来了用Photoshop软件制作枪战电影海报的教程,想知道制作步骤的玩家们,那么下面...2016-09-14
  • 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