新程php培训–就业率100%的php培训中心 全国免费咨询热线 400-668-8834 了解更多,请访问 http://www.phppx.com

图像处理类(图像信息,缩略图,加水印),有详细的注释

<?php
/**
* 来源:互联网
* 整理:www.phppx.com
*/
class image
{
 var $w_pct = 50; //透明度
 var $w_quality = 80; //质量
 var $w_minwidth = 300; //最小宽
 var $w_minheight = 300; //最小高
 var $thumb_enable; //是否生成缩略图
 var $watermark_enable; //是否生水印
 var $interlace = 0;  //图像是否为隔行扫描的
 var $fontfile;  //字体文件
 var $w_img ; //默认水印图

    function __construct()
    {
  global $SITE_CONFING;
  $this->thumb_enable = $SITE_CONFING['thumb_enable'];
  $this->watermark_enable = $SITE_CONFING['watermark_enable'];
  $this->set($SITE_CONFING['watermark_minwidth'], $SITE_CONFING['watermark_minheight'], $SITE_CONFING['watermark_quality'], $SITE_CONFING['watermark_pct'], $SITE_CONFING['watermark_fontfile'],$SITE_CONFING['watermark_img']);
    }

 function image()
 {
  $this->__construct();
 }

 function set($w_minwidth = 300, $w_minheight = 300, $w_quality = 80, $w_pct = 100,$fontfile,$w_img)
 {
  $this->w_minwidth = $w_minwidth;
  $this->w_minheight = $w_minheight;
  $this->w_quality = $w_quality;
  $this->w_pct = $w_pct;
  $this->fontfile = $fontfile;
  $this->w_img = $w_img;
 }

    function info($img)
 {
        $imageinfo = getimagesize($img); //返回图像信息数组 0=>宽的像素 1=>高的像素 2=>是图像类型的标记 3 =>是文本字符串,内容为“height=”yyy” width=”xxx””,
        if($imageinfo === false) return false;
  $imagetype = strtolower(substr(image_type_to_extension($imageinfo[2]),1)); //获取图像文件类型 $imageinfo[2]是图像类型的标记
  $imagesize = filesize($img); //图像大小
  $info = array(
    ’width’=>$imageinfo[0],
    ’height’=>$imageinfo[1],
    ’type’=>$imagetype,
    ’size’=>$imagesize,
    ’mime’=>$imageinfo['mime']
    );
  return $info;
    }

    function thumb($image, $filename = ”, $maxwidth = 200, $maxheight = 50, $suffix=’_thumb’, $autocut = 0)
    {
     if(!$this->thumb_enable || !$this->check($image)) return false;
        $info  = $this->info($image); //获取图片信息
        if($info === false) return false;
  $srcwidth  = $info['width']; //源图宽
  $srcheight = $info['height']; //源图高
  $pathinfo = pathinfo($image);
  $type =  $pathinfo['extension']; //取得扩展名
  if(!$type) $type = $info['type']; //如果没有取到,用$info['type']
  $type = strtolower($type);
  unset($info);
  $scale = min($maxwidth/$srcwidth, $maxheight/$srcheight); //获取缩略比例
  //获取按照源图的比列
  $createwidth = $width  = (int)($srcwidth*$scale); //取得缩略宽
  $createheight = $height = (int)($srcheight*$scale); //取得缩略高
  $psrc_x = $psrc_y = 0;
  if($autocut) //按照缩略图的比例来获取
  {
   if($maxwidth/$maxheight<$srcwidth/$srcheight && $maxheight>=$height) //如果缩略图按比列比源图窄的话
   {
    $width = $maxheight/$height*$width; //宽按照相应比例做处理
    $height = $maxheight; //高不变
   }
   elseif($maxwidth/$maxheight>$srcwidth/$srcheight && $maxwidth>=$width)//如果缩略图按比列比源图宽的话
   {
    $height = $maxwidth/$width*$height;
    $width = $maxwidth;
   }
   $createwidth = $maxwidth;
   $createheight = $maxheight;
  }
  $createfun = ‘imagecreatefrom’.($type==’jpg’ ? ‘jpeg’ : $type); //找到不同的图像处理函数
  $srcimg = $createfun($image); //新建图像
  if($type != ‘gif’ && function_exists(‘imagecreatetruecolor’))
   $thumbimg = imagecreatetruecolor($createwidth, $createheight); //新建一个真彩色图像
  else
   $thumbimg = imagecreate($width, $height); //新建一个基于调色板的图像

  if(function_exists(‘imagecopyresampled’)) //重采样拷贝部分图像并调整大小,真彩
   //imagecopyresampled(新图,源图,新图左上角x距离,新图左上角y距离,源图左上角x距离,源图左上角y距离,新图宽,新图高,源图宽,源图高)
   imagecopyresampled($thumbimg, $srcimg, 0, 0, $psrc_x, $psrc_y, $width, $height, $srcwidth, $srcheight);
  else //拷贝部分图像并调整大小,调色板
   imagecopyresized($thumbimg, $srcimg, 0, 0, $psrc_x, $psrc_y, $width, $height,  $srcwidth, $srcheight);
  if($type==’gif’ || $type==’png’)
  {
   //imagecolorallocate 为一幅图像分配颜色
   $background_color  =  imagecolorallocate($thumbimg,  0, 255, 0);  // 给基于调色板的图像填充背景色, 指派一个绿色
   // imagecolortransparent 将某个颜色定义为透明色
   imagecolortransparent($thumbimg, $background_color);  //  设置为透明色,若注释掉该行则输出绿色的图
  }
  // imageinterlace 激活或禁止隔行扫描
  if($type==’jpg’ || $type==’jpeg’) imageinterlace($thumbimg, $this->interlace);
  $imagefun = ‘image’.($type==’jpg’ ? ‘jpeg’ : $type);
  //imagejpeg imagegif imagepng
  if(empty($filename)) $filename  = substr($image, 0, strrpos($image, ‘.’)).$suffix.’.’.$type; //获取文件名
  //aaa.gif aaa_thumb.gif
  $imagefun($thumbimg, $filename); //新建图像
  imagedestroy($thumbimg); //销毁缩略图
  imagedestroy($srcimg); //销毁源图
  return $filename;
    }
 //watermark(源图,生成文件,生成位置,水印文件,水印文本,背景色)
 function watermark($source, $target = ”, $w_pos = 9, $w_img = ”, $w_text = ”, $w_font = 12, $w_color = ‘#cccccc’)
 {
  if(!$this->watermark_enable || !$this->check($source)) return false;
  if(!$target) $target = $source;
  if ($w_img == ” && $w_text == ”)
  $w_img = $this->w_img;
  $source_info = getimagesize($source);
  $source_w    = $source_info[0]; //获取宽
  $source_h    = $source_info[1]; //获取高
  if($source_w < $this->w_minwidth || $source_h < $this->w_minheight) return false; //宽和高达不到要求直接返回
  switch($source_info[2]) //新建图片
  {
   case 1 :
    $source_img = imagecreatefromgif($source);
    break;
   case 2 :
    $source_img = imagecreatefromjpeg($source);
    break;
   case 3 :
    $source_img = imagecreatefrompng($source);
    break;
   default :
    return false;
  }
  if(!empty($w_img) && file_exists($w_img)) //水印文件
  {
   $ifwaterimage = 1; //是否水印图
   $water_info   = getimagesize($w_img); //水印信息
   $width        = $water_info[0];
   $height       = $water_info[1];
   switch($water_info[2])
   {
    case 1 :
     $water_img = imagecreatefromgif($w_img);
     break;
    case 2 :
     $water_img = imagecreatefromjpeg($w_img);
     break;
    case 3 :
     $water_img = imagecreatefrompng($w_img);
     break;
    default :
     return;
   }
  }
  else
  {
   $ifwaterimage = 0;
   //imagettfbbox 本函数计算并返回一个包围着 TrueType 文本范围的虚拟方框的像素大小。
   //imagettfbbox ( 字体大小, 字体角度, 字体文件,文件 )
   $temp = imagettfbbox(ceil($w_font*1.2), 0, $this->fontfile, $w_text);//取得使用 truetype 字体的文本的范围
   $width = $temp[4] – $temp[6]; //右上角 X 位置 – 左上角 X 位置
   $height = $temp[3] – $temp[5]; //右下角 Y 位置- 右上角 Y 位置
   unset($temp);
  }
  switch($w_pos)
  {
   case 0: //随机位置
    $wx = rand(0,($source_w – $width));
    $wy = rand(0,($source_h – $height));
    break;
   case 1: //左上角
    $wx = 5;
    $wy = 5;
    break;
   case 2: //上面中间位置
    $wx = ($source_w – $width) / 2;
    $wy = 0;
    break;
   case 3: //右上角
    $wx = $source_w – $width;
    $wy = 0;
    break;
   case 4: //左面中间位置
    $wx = 0;
    $wy = ($source_h – $height) / 2;
    break;
   case 5: //中间位置
    $wx = ($source_w – $width) / 2;
    $wy = ($source_h – $height) / 2;
    break;
   case 6: //底部中间位置
    $wx = ($source_w – $width) / 2;
    $wy = $source_h – $height;
    break;
   case 7: //左下角
    $wx = 0;
    $wy = $source_h – $height;
    break;
   case 8: //右面中间位置
    $wx = $source_w – $width;
    $wy = ($source_h – $height) /2;
    break;
   case 9: //右下角
    $wx = $source_w – $width;
    $wy = $source_h – $height ;
    break;
   default: //随机
    $wx = rand(0,($source_w – $width));
    $wy = rand(0,($source_h – $height));
    break;
  }
  if($ifwaterimage) //如果有水印图
  {
   //imagecopymerge 拷贝并合并图像的一部分
   //参数(源图,水印图,拷贝到源图x位置,拷贝到源图y位置,从水印图x位置,从水印图y位置,高,宽,透明度)
   imagecopymerge($source_img, $water_img, $wx, $wy, 0, 0, $width, $height, $this->w_pct);
  }
  else
  {
   if(!empty($w_color) && (strlen($w_color)==7))
   {
    $r = hexdec(substr($w_color,1,2)); //获取红色
    $g = hexdec(substr($w_color,3,2)); //获取绿色
    $b = hexdec(substr($w_color,5)); //获取蓝色
   }
   else
   {
    return;
   }
   //imagecolorallocate 基于调色板的图像填充背景色
   //imagestring 水平地画一行字符串
   //imagestring(源图,字体大小,位置X,位置Y,文字,颜色)
   //参数($image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text)
   imagettftext($source_img,$w_font,0,$wx,$wy,imagecolorallocate($source_img,$r,$g,$b),$this->fontfile,$w_text);
   //imagestring($source_img,$w_font,$wx,$wy,$w_text,imagecolorallocate($source_img,$r,$g,$b));
  }
  //输出到文件或者浏览器
  switch($source_info[2])
  {
   case 1 :
    imagegif($source_img, $target); //以 GIF 格式将图像输出到浏览器或文件
    break;
   case 2 :
    imagejpeg($source_img, $target, $this->w_quality); //以 JPEG 格式将图像输出到浏览器或文件
    break;
   case 3 :
    imagepng($source_img, $target); //以 PNG 格式将图像输出到浏览器或文件
    break;
   default :
    return;
  }
  if(isset($water_info))
  {
   unset($water_info); //销毁
  }
  if(isset($water_img))
  {
   imagedestroy($water_img); //销毁
  }
  unset($source_info);
  imagedestroy($source_img);
  return true;
 }
 //gd库必须存在,后缀为jpg|jpeg|gif|png,文件存在,imagecreatefromjpeg或者imagecreatefromgif存在
 function check($image)
 {
  return extension_loaded(‘gd’) &&
  preg_match(“/\.(jpg|jpeg|gif|png)/i”, $image, $m) &&
  file_exists($image) &&
  function_exists(‘imagecreatefrom’.($m[1] == ‘jpg’ ? ‘jpeg’ : $m[1]));
  //imagecreatefromjpeg
  //imagecreatefromgif
  //imagecreatefrompng
 }
}?>

php文件下载程序

<?php

$fileurl = ‘E:/demo/phper.rar’;

if(strpos($fileurl, ‘http://’) !== false || strpos($fileurl, ‘ftp://’) !== false) {
 header(“Location: $fileurl”);
}else {
 $filename = basename($fileurl); //取文件名
 $pathinfo = pathinfo($filename);
 $filetype =  $pathinfo['extension']; //取得扩展名
 $filesize = filesize($fileurl);
 if(ob_get_length() !== false) @ob_end_clean(); //清除以前的缓冲
 header(‘Pragma: public’);
 header(‘Last-Modified: ‘.gmdate(‘D, d M Y H:i:s’) . ‘ GMT’);
 header(‘Cache-Control: no-store, no-cache, must-revalidate’);
 header(‘Cache-Control: pre-check=0, post-check=0, max-age=0′);
 header(‘Content-Transfer-Encoding: binary’);
 header(‘Content-Encoding: none’);
 header(‘Content-type: ‘.$filetype);
 header(‘Content-Disposition: attachment; filename=”‘.$filename.’”‘);
 header(‘Content-length: ‘.$filesize);
 //readfile($fileurl);
 $fp = @fopen($fileurl,”rb”);
 while(!feof($fp)) {
  $buffer= fread($fp,8192);
  echo $buffer;
 }
 @flush();
 @ob_flush();
}

?>

PHP中文转换拼音函数

<?php
/**
* 来源:互联网
* 整理:www.phppx.com
*/
$d=array(
array(“a”,-20319),
array(“ai”,-20317),
array(“an”,-20304),
array(“ang”,-20295),
array(“ao”,-20292),
array(“ba”,-20283),
array(“bai”,-20265),
array(“ban”,-20257),
array(“bang”,-20242),
array(“bao”,-20230),
array(“bei”,-20051),
array(“ben”,-20036),
array(“beng”,-20032),
array(“bi”,-20026),
array(“bian”,-20002),
array(“biao”,-19990),
array(“bie”,-19986),
array(“bin”,-19982),
array(“bing”,-19976),
array(“bo”,-19805),
array(“bu”,-19784),
array(“ca”,-19775),
array(“cai”,-19774),
array(“can”,-19763),
array(“cang”,-19756),
array(“cao”,-19751),
array(“ce”,-19746),
array(“ceng”,-19741),
array(“cha”,-19739),
array(“chai”,-19728),
array(“chan”,-19725),
array(“chang”,-19715),
array(“chao”,-19540),
array(“che”,-19531),
array(“chen”,-19525),
array(“cheng”,-19515),
array(“chi”,-19500),
array(“chong”,-19484),
array(“chou”,-19479),
array(“chu”,-19467),
array(“chuai”,-19289),
array(“chuan”,-19288),
array(“chuang”,-19281),
array(“chui”,-19275),
array(“chun”,-19270),
array(“chuo”,-19263),
array(“ci”,-19261),
array(“cong”,-19249),
array(“cou”,-19243),
array(“cu”,-19242),
array(“cuan”,-19238),
array(“cui”,-19235),
array(“cun”,-19227),
array(“cuo”,-19224),
array(“da”,-19218),
array(“dai”,-19212),
array(“dan”,-19038),
array(“dang”,-19023),
array(“dao”,-19018),
array(“de”,-19006),
array(“deng”,-19003),
array(“di”,-18996),
array(“dian”,-18977),
array(“diao”,-18961),
array(“die”,-18952),
array(“ding”,-18783),
array(“diu”,-18774),
array(“dong”,-18773),
array(“dou”,-18763),
array(“du”,-18756),
array(“duan”,-18741),
array(“dui”,-18735),
array(“dun”,-18731),
array(“duo”,-18722),
array(“e”,-18710),
array(“en”,-18697),
array(“er”,-18696),
array(“fa”,-18526),
array(“fan”,-18518),
array(“fang”,-18501),
array(“fei”,-18490),
array(“fen”,-18478),
array(“feng”,-18463),
array(“fo”,-18448),
array(“fou”,-18447),
array(“fu”,-18446),
array(“ga”,-18239),
array(“gai”,-18237),
array(“gan”,-18231),
array(“gang”,-18220),
array(“gao”,-18211),
array(“ge”,-18201),
array(“gei”,-18184),
array(“gen”,-18183),
array(“geng”,-18181),
array(“gong”,-18012),
array(“gou”,-17997),
array(“gu”,-17988),
array(“gua”,-17970),
array(“guai”,-17964),
array(“guan”,-17961),
array(“guang”,-17950),
array(“gui”,-17947),
array(“gun”,-17931),
array(“guo”,-17928),
array(“ha”,-17922),
array(“hai”,-17759),
array(“han”,-17752),
array(“hang”,-17733),
array(“hao”,-17730),
array(“he”,-17721),
array(“hei”,-17703),
array(“hen”,-17701),
array(“heng”,-17697),
array(“hong”,-17692),
array(“hou”,-17683),
array(“hu”,-17676),
array(“hua”,-17496),
array(“huai”,-17487),
array(“huan”,-17482),
array(“huang”,-17468),
array(“hui”,-17454),
array(“hun”,-17433),
array(“huo”,-17427),
array(“ji”,-17417),
array(“jia”,-17202),
array(“jian”,-17185),
array(“jiang”,-16983),
array(“jiao”,-16970),
array(“jie”,-16942),
array(“jin”,-16915),
array(“jing”,-16733),
array(“jiong”,-16708),
array(“jiu”,-16706),
array(“ju”,-16689),
array(“juan”,-16664),
array(“jue”,-16657),
array(“jun”,-16647),
array(“ka”,-16474),
array(“kai”,-16470),
array(“kan”,-16465),
array(“kang”,-16459),
array(“kao”,-16452),
array(“ke”,-16448),
array(“ken”,-16433),
array(“keng”,-16429),
array(“kong”,-16427),
array(“kou”,-16423),
array(“ku”,-16419),
array(“kua”,-16412),
array(“kuai”,-16407),
array(“kuan”,-16403),
array(“kuang”,-16401),
array(“kui”,-16393),
array(“kun”,-16220),
array(“kuo”,-16216),
array(“la”,-16212),
array(“lai”,-16205),
array(“lan”,-16202),
array(“lang”,-16187),
array(“lao”,-16180),
array(“le”,-16171),
array(“lei”,-16169),
array(“leng”,-16158),
array(“li”,-16155),
array(“lia”,-15959),
array(“lian”,-15958),
array(“liang”,-15944),
array(“liao”,-15933),
array(“lie”,-15920),
array(“lin”,-15915),
array(“ling”,-15903),
array(“liu”,-15889),
array(“long”,-15878),
array(“lou”,-15707),
array(“lu”,-15701),
array(“lv”,-15681),
array(“luan”,-15667),
array(“lue”,-15661),
array(“lun”,-15659),
array(“luo”,-15652),
array(“ma”,-15640),
array(“mai”,-15631),
array(“man”,-15625),
array(“mang”,-15454),
array(“mao”,-15448),
array(“me”,-15436),
array(“mei”,-15435),
array(“men”,-15419),
array(“meng”,-15416),
array(“mi”,-15408),
array(“mian”,-15394),
array(“miao”,-15385),
array(“mie”,-15377),
array(“min”,-15375),
array(“ming”,-15369),
array(“miu”,-15363),
array(“mo”,-15362),
array(“mou”,-15183),
array(“mu”,-15180),
array(“na”,-15165),
array(“nai”,-15158),
array(“nan”,-15153),
array(“nang”,-15150),
array(“nao”,-15149),
array(“ne”,-15144),
array(“nei”,-15143),
array(“nen”,-15141),
array(“neng”,-15140),
array(“ni”,-15139),
array(“nian”,-15128),
array(“niang”,-15121),
array(“niao”,-15119),
array(“nie”,-15117),
array(“nin”,-15110),
array(“ning”,-15109),
array(“niu”,-14941),
array(“nong”,-14937),
array(“nu”,-14933),
array(“nv”,-14930),
array(“nuan”,-14929),
array(“nue”,-14928),
array(“nuo”,-14926),
array(“o”,-14922),
array(“ou”,-14921),
array(“pa”,-14914),
array(“pai”,-14908),
array(“pan”,-14902),
array(“pang”,-14894),
array(“pao”,-14889),
array(“pei”,-14882),
array(“pen”,-14873),
array(“peng”,-14871),
array(“pi”,-14857),
array(“pian”,-14678),
array(“piao”,-14674),
array(“pie”,-14670),
array(“pin”,-14668),
array(“ping”,-14663),
array(“po”,-14654),
array(“pu”,-14645),
array(“qi”,-14630),
array(“qia”,-14594),
array(“qian”,-14429),
array(“qiang”,-14407),
array(“qiao”,-14399),
array(“qie”,-14384),
array(“qin”,-14379),
array(“qing”,-14368),
array(“qiong”,-14355),
array(“qiu”,-14353),
array(“qu”,-14345),
array(“quan”,-14170),
array(“que”,-14159),
array(“qun”,-14151),
array(“ran”,-14149),
array(“rang”,-14145),
array(“rao”,-14140),
array(“re”,-14137),
array(“ren”,-14135),
array(“reng”,-14125),
array(“ri”,-14123),
array(“rong”,-14122),
array(“rou”,-14112),
array(“ru”,-14109),
array(“ruan”,-14099),
array(“rui”,-14097),
array(“run”,-14094),
array(“ruo”,-14092),
array(“sa”,-14090),
array(“sai”,-14087),
array(“san”,-14083),
array(“sang”,-13917),
array(“sao”,-13914),
array(“se”,-13910),
array(“sen”,-13907),
array(“seng”,-13906),
array(“sha”,-13905),
array(“shai”,-13896),
array(“shan”,-13894),
array(“shang”,-13878),
array(“shao”,-13870),
array(“she”,-13859),
array(“shen”,-13847),
array(“sheng”,-13831),
array(“shi”,-13658),
array(“shou”,-13611),
array(“shu”,-13601),
array(“shua”,-13406),
array(“shuai”,-13404),
array(“shuan”,-13400),
array(“shuang”,-13398),
array(“shui”,-13395),
array(“shun”,-13391),
array(“shuo”,-13387),
array(“si”,-13383),
array(“song”,-13367),
array(“sou”,-13359),
array(“su”,-13356),
array(“suan”,-13343),
array(“sui”,-13340),
array(“sun”,-13329),
array(“suo”,-13326),
array(“ta”,-13318),
array(“tai”,-13147),
array(“tan”,-13138),
array(“tang”,-13120),
array(“tao”,-13107),
array(“te”,-13096),
array(“teng”,-13095),
array(“ti”,-13091),
array(“tian”,-13076),
array(“tiao”,-13068),
array(“tie”,-13063),
array(“ting”,-13060),
array(“tong”,-12888),
array(“tou”,-12875),
array(“tu”,-12871),
array(“tuan”,-12860),
array(“tui”,-12858),
array(“tun”,-12852),
array(“tuo”,-12849),
array(“wa”,-12838),
array(“wai”,-12831),
array(“wan”,-12829),
array(“wang”,-12812),
array(“wei”,-12802),
array(“wen”,-12607),
array(“weng”,-12597),
array(“wo”,-12594),
array(“wu”,-12585),
array(“xi”,-12556),
array(“xia”,-12359),
array(“xian”,-12346),
array(“xiang”,-12320),
array(“xiao”,-12300),
array(“xie”,-12120),
array(“xin”,-12099),
array(“xing”,-12089),
array(“xiong”,-12074),
array(“xiu”,-12067),
array(“xu”,-12058),
array(“xuan”,-12039),
array(“xue”,-11867),
array(“xun”,-11861),
array(“ya”,-11847),
array(“yan”,-11831),
array(“yang”,-11798),
array(“yao”,-11781),
array(“ye”,-11604),
array(“yi”,-11589),
array(“yin”,-11536),
array(“ying”,-11358),
array(“yo”,-11340),
array(“yong”,-11339),
array(“you”,-11324),
array(“yu”,-11303),
array(“yuan”,-11097),
array(“yue”,-11077),
array(“yun”,-11067),
array(“za”,-11055),
array(“zai”,-11052),
array(“zan”,-11045),
array(“zang”,-11041),
array(“zao”,-11038),
array(“ze”,-11024),
array(“zei”,-11020),
array(“zen”,-11019),
array(“zeng”,-11018),
array(“zha”,-11014),
array(“zhai”,-10838),
array(“zhan”,-10832),
array(“zhang”,-10815),
array(“zhao”,-10800),
array(“zhe”,-10790),
array(“zhen”,-10780),
array(“zheng”,-10764),
array(“zhi”,-10587),
array(“zhong”,-10544),
array(“zhou”,-10533),
array(“zhu”,-10519),
array(“zhua”,-10331),
array(“zhuai”,-10329),
array(“zhuan”,-10328),
array(“zhuang”,-10322),
array(“zhui”,-10315),
array(“zhun”,-10309),
array(“zhuo”,-10307),
array(“zi”,-10296),
array(“zong”,-10281),
array(“zou”,-10274),
array(“zu”,-10270),
array(“zuan”,-10262),
array(“zui”,-10260),
array(“zun”,-10256),
array(“zuo”,-10254)
);
function g($num){
        global $d;
        if($num>0&&$num<160){
                return chr($num);
        }
        elseif($num<-20319||$num>-10247){
                return “”;
        }else{
                for($i=count($d)-1;$i>=0;$i–)
                {if($d[$i][1]<=$num)break;}
                return $d[$i][0];
        }
}

function c($str){
        $ret=”";
        for($i=0;$i<strlen($str);$i++){
                $p=ord(substr($str,$i,1));
                if($p>160){
                        $q=ord(substr($str,++$i,1));
                        $p=$p*256+$q-65536;
                }
                $ret.=g($p);
        }
        return $ret;
}

//这里接收表单参数
if (isset($_POST['ok']) and $_POST['chinese'] != ”) {
        $str = $_POST['chinese'];
} else {
        $str = “新程php培训”;
}
echo $str;
?>
<form action=”" method=”POST”>
请输入要转换的中文:
<input type=”text” name=”chinese”>
<input type=”submit” name=”ok” value=”中文转拼音” >
</form>

如何修改Apache最大连接数

  • 在apache中 可以采用 MaxClients 指令改变 apache最大链接数。

    apache手册原文: 

    对于非线程型的MPM(也就是prefork),MaxClients表示可以用于伺服客户端请求的最大子进程数量,默认值是256。要增大这个值,你必须同时增大ServerLimit

    对于线程型或者混合型的MPM(也就是beosworker),MaxClients表示可以用于伺服客户端请求的最大线程数量。线程型的beos的默认值是50。对于混合型的MPM默认值是16(ServerLimit)乘以25(ThreadsPerChild)的结果。因此要将MaxClients增加到超过16个进程才能提供的时候,你必须同时增加ServerLimit的值。

      在httpd.conf中配置:

    1、对于apache1.x

    增加apache最大连接数的方法:

             找到MaxClients n , n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,编辑/httpd-2.0.59/include/httpd.h中的HARD_SERVER_LIMIT值改大然后再编译。

    2、对于apache2.x

    系统默认150个连接数,有个数有点太少了,网站流量大一些时候就不够用了。现在服务器配置要比前几年好很多,我们可以修改更大一些。下面的例子修改为2500个。

    在httpd.conf文件中找到

     

    <IfModule prefork.c>
    StartServers       8
    MinSpareServers    5
    MaxSpareServers   20
    MaxClients       150
    MaxRequestsPerChild  1000
    </IfModule>
    修改
    MaxClients       150
    为
    ServerLimit        2500
    MaxClients         2500

     

    注意:要同时修改ServerLimit这个选项。

             然后保存退出重新启动apache 服务,ok !
     

  • 关键词:修改Apache最大连接数

    齐亮毕业感言

    学员姓名:齐亮

    基本资料:毕业于东北大学大连软件学院,有C语言基础,无php基础,日语二级。

    就业情况:现北京创世互动科技有限公司(http://www.mogenesis.com/),月薪2500 。

    齐亮毕业感言

      我毕业于大连软件学院,计算机专业。大学毕业以后我满怀憧憬来到北京寻找理想的工作。不过3,4个月时间过去了,一直没找到理想的工作。之前所带的生活费也所剩无几,心情很沮丧,准备离开北京。

    一次在QQ上跟同学聊天,听同学说现在学php很容易找工作,于是在网上找了一些php方面的资料,渐渐对php产生了浓厚的兴趣。我在百度上查找关于 php培训方面的机构,最后综合了就业,学费,课时各方面的因素,我选择了新程php培训,最后也证明了我的选择是正确的。

    新程php培训最大特色是保证就业写入合同,这在我的咨询的所有php培训班中,新程是唯一一家这样做的培训机构。新程的授课内容几乎覆盖了所有LAMP 体系所涉及的所有内容,邓老师讲课方式非常生动,深入浅出,并且有大量的练习时间,使得我们学习起来比较轻松。讲完基础知识,开始做毕业设计,因为毕业设计系统有些复杂,开始有很多地方不理解,后来经过缴老师反复讲解,终于独立完成了毕业设计。

    临近毕业的时候,因为我之前没有工作经验,再加上之前找工作遇到很多挫折,所以不太自信。缴老师一直鼓励我们,跟我们说了很多面试方面的技巧,让我增强了信心。在结课不久我就找到了一份工作,虽然工资不是很高,但是因为公司这个项目是日本方面的项目,很可能要去日本工作,对以后发展很有前途,我就答应去入职。

    以后的工作之路还很漫长,不管我做到什么程度,工作在哪,我都会感谢新程对我的培养,谢谢。

    从零开始学php类(1)– 类的基础知识(原创连载)

    什么是类?
    简单的说,类是属性和方法的集合。

    定义一个最简单的类
    <?php
    class person{}
    ?>
    这样我们就定义了一个叫person的类。

    关于php类的命名规则
    php类的命名,包括php变量,php方法的命名都比较混乱,完全不像java那样有严谨的命名规则。
    例如,对于上面的类,可以采用完全小写的写法,或者首个字母大写Person,甚至命名中有下划线写法,这些都是允许的。在不同大型的开源项目中,命名也是不同,完全凭个人习惯。

    注意事项:
    1.不能把类写在不同文件里,也不能把类写在不同的php块中。例如,
    <?php
    class person{
    ?>
    <?php }?>
    这样会产生一个”Parse error” 错误。
    2.我们也不能把类命名为stdClass ,这样会产生一个”Fatal error” 。stdClass是保留类名,具体作用以后再讲。

    如何初始化一个类?
    可以采用new这个关键字来实例化一个类。例如:
    $p = new person();

    类的数据类型
    我们可以用gettype这个函数来得到数据类型。echo gettype($p) ,得到的类型是 object ,说明类的类型是对象。

    返回顶部