在编写代码的时候有个神奇的汇总是好的!下面这里收集了 10+ PHP 代码片段,可以帮助你开发 PHP 项目。这些 PHP 片段对于 PHP 初学者也非常有帮助,非常容易学习,让我们开始学习吧~
10个 ThinkPHP 开发常用代码片段
一.php中截取中文字符串
<?php
< ?php
//截取中文字符串
function mysubstr($str, $start, $len) {
$tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i < $strlen; $i++) {
if(ord(substr($str, $i, 1)) > 0xa0) {
$tmpstr .= substr($str, $i, 2);
$i++;
} else
$tmpstr .= substr($str, $i, 1);
}
return $tmpstr;
}
?>
2. 截取utf8编码的多字节字符串
1
2
3
4
5
6
7
8
9
10
<?php
< ?php
//截取utf8字符串
function utf8Substr($str, $from, $len)
{
return preg_replace('#^(?:[\\x00-\\x7F]|[\\xC0-\\xFF][\\x80-\\xBF]+){0,'.$from.'}'.
'((?:[\\x00-\\x7F]|[\\xC0-\\xFF][\\x80-\\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
}
?>
二.php curl通过代理获取数据
$curl=curl_init();
curl_setopt($curl, CURLOPT_URL, "http://www.baidu.com/");
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:20.0) Gecko/20100101 Firefox/20.0');
curl_setopt($curl, CURLOPT_REFERER, 'http://www.guahao.com/');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($param));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt($curl, CURLOPT_PROXYAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
curl_setopt($curl, CURLOPT_PROXY, "180.186.11.121");
curl_setopt($curl, CURLOPT_PROXYPORT, "37211");
curl_setopt($curl, CURLOPT_PROXYUSERPWD, "taras:taras-ss5");
$result=curl_exec($curl);
三.php获取中文字符串的首字符拼音字母
$str="这是一个测试程序1";
echo getFirstCharCode($str);
function getFirstCharCode($str){
$str= iconv("UTF-8","gb2312", $str);
$targetChar='*';
$i=0;
while($i<strlen($str) ) {
$tmp=bin2hex(substr($str,$i,1));
if($tmp>='B0'){ //汉字的开始
$t=getLetter(hexdec(bin2hex(substr($str,$i,2))));
$targetChar=$t==-1 ? '*' : $t ;
//printf("%c",$t==-1 ? '*' : $t );
break;
//$i+=2;
}
else{
$targetChar=substr($str,$i,1);
break;
//printf("%s",substr($str,$i,1));
//$i++;
}
}
if(is_numeric($targetChar)){
return chr($targetChar);
}
else{
return $targetChar;
}
}
10个 ThinkPHP 开发常用代码片段
四.PHP使用curl伪造IP地址和header信息
10个 ThinkPHP 开发常用代码片段
curl虽然功能强大,但是只能伪造$_SERVER["HTTP_X_FORWARDED_FOR"],对于大多数IP地址检测程序来说,$_SERVER["REMOTE_ADDR"]很难被伪造:首先是client.php的代码
10个 ThinkPHP 开发常用代码片段
然后是server.php
10个 ThinkPHP 开发常用代码片段
五.sphinx 增量索引实现实例
10个 ThinkPHP 开发常用代码片段
六.curl 添加cookie伪造登陆抓取数据
10个 ThinkPHP 开发常用代码片段
<?php
header("Content-type:text/html;Charset=utf8");
$ch =curl_init();
curl_setopt($ch,CURLOPT_URL,'http://www.babytree.com/user/picjournal.php');
$header = array();
//curl_setopt($ch,CURLOPT_POST,true);
//curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_HEADER,true);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_COOKIE,'B=115.100.62.7.1401937092035530; bdshare_firstime=1401937092199; __myutma=122328856.1548793539.1401937093.1408503164.1408694138.69;');
$content = curl_exec($ch);
echo "<pre>";print_r(curl_error($ch));echo "</pre>";
echo "<pre>";print_r(curl_getinfo($ch));echo "</pre>";
echo "<pre>";print_r($header);echo "</pre>";
echo "</br>",$content;
七.php curl 上传文件
//如果php文件是utf8编码,系统是GBK编码,那么就需要转下编码,要不然Php在系统中找不到这个文件
$file = realpath(mb_convert_encoding('测试图片.JPG','GBK','utf8'));
$file = realpath('temp.jpg'); //要上传的文件
$fields['f'] = '@'.$file; // 前面加@符表示上传图片
$ch =curl_init();
curl_setopt($ch,CURLOPT_URL,'http://localhost/upload.php');
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$content = curl_exec($ch);
echo $content;
八.php+shell检测文件类型
function checkFileType($filename){
//文件头
$_typecode = array(
'3780',//PDF
'8075',//.docx,.xlsx,.pptx,.potx,.vsdx,.odt
'208207',//.doc,.xls,.ppt,.vsd,.pot,.wps,.dps,.et
);
$file = fopen($filename, "rb");
//contents = stream_get_contents($file);
//$contents = fread($file, filesize($filename));
$bin = fread($file, 2); //只读2字节
fclose($file);
$strInfo = @unpack("C2chars", $bin);// C为无符号整数,网上搜到的都是c,为有符号整数,这样会产生负数判断不正常
$typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
exec("file $filename",$output,$return_var);//用linux系统命令file判断上传文件的类型,主要是判断txt,rtf文件类型
$pattern = '/text,/';//rtf和txt文档用file检测都会被检测为text
$_count = preg_match($pattern,strrchr($output[0],":"));
echo $typeCode;
if(in_array($typeCode,$_typecode) || $_count == 1) {
return true;
}else{
return false;
}
}
九.获取用户真实的IP
function getRealIpAddr()
{
if (!emptyempty($_SERVER['HTTP_CLIENT_IP']))
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR']))
//to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
十.禁止特定的IP访问你的网站
if ( !file_exists('blocked_ips.txt') ) {
$deny_ips = array(
'127.0.0.1',
'192.168.1.1',
'83.76.27.9',
'192.168.1.163'
);
} else {
$deny_ips = file('blocked_ips.txt');
}
// read user ip adress:
$ip = isset($_SERVER['REMOTE_ADDR']) ? trim($_SERVER['REMOTE_ADDR']) : '';
// search current IP in $deny_ips array
if ( (array_search($ip, $deny_ips))!== FALSE ) {
// address is blocked:
echo 'Your IP adress ('.$ip.') was blocked!';
exit;
}
分享到:
相关推荐
在这个压缩包中,包含的文件是《PHP网站开发实例教程》一书中的各个章节示例代码,每个文件代表了一个具体的学习点或实例。 首先,我们需要了解PHP(PHP: Hypertext Preprocessor)是一种广泛使用的开源脚本语言,...
宝付代扣API产品是宝付网络科技(上海)有限公司推出的一款专门为满足有资质的商户在得到持卡人授权后,委托宝付从持卡人的银行卡账户中扣除收费款项的支付模式。该接口为纯后台模式,商户在使用宝付代扣API接口时,...
上海交通大学的数据结构作业代码集合是一份宝贵的教育资源,涵盖了多种数据结构和算法的实践应用。这份作业涉及了数据结构课程中的核心概念,包括数组、链表、树、图、栈、队列、排序和查找等。以下是对每个指定作业...
在【PHP网站开发及案例教程.ppt】中,你将看到详细的步骤分解,每个阶段都配有清晰的图表和示例代码,帮助你逐步理解并实施每一项任务。此外,可能还会有关于最佳实践和安全性的提示,如防止SQL注入、密码哈希存储等...
这个源码包标签为"phpstudy2010",暗示了它可能基于PHPStudy 2010版本进行开发或与之兼容,PHPStudy是一个流行的PHP开发环境集成工具,包含了PHP、MySQL等必备组件,便于开发者快速搭建服务器环境。 源码的主体部分...
这份"iOS开发常用设计模式上海UNITY3D游戏外包共2页.p"可能包含的内容,可能是关于如何将iOS开发中的设计模式应用到Unity3D游戏开发中的具体实践和案例。 1. **单例模式**:在iOS和Unity3D中,单例模式常用于管理...
总的来说,这个“上海交大数据结构作业代码”是一个极好的学习资源,它将理论知识与实践结合,可以帮助学生巩固和提升数据结构的理解,为未来的软件开发打下坚实基础。如果你遇到困难或者想要进一步提升,可以逐个...
给定的代码片段中,我们看到了Java类的定义以及一些基本操作。 #### 2.2 BufferUtil 类详解 `BufferUtil` 类主要用于处理数据缓冲区。具体来说,`floatToBuffer` 方法用于将浮点数组转换为 `FloatBuffer` 对象,这...
【上海市计算机软件开发合同】是甲方与乙方就特定计算机信息化系统软件开发签订的法律文件,遵循《中华人民共和国合同法》及相关法规。本合同详细规定了双方的权利、义务和责任,确保软件开发过程的顺利进行。 一、...
【宝付资金托管接口文档】是宝付网络科技(上海)有限公司提供的一份详细的技术文档,旨在帮助第三方开发者或企业与其接口进行有效对接,实现资金托管服务。这份文档随着时间的推移不断更新和完善,以满足日益增长的...
上海仰邦LED控制卡二次开发包是一个专为LED显示屏控制卡设计的软件开发工具,它允许程序员和系统集成商根据具体需求对控制卡的功能进行扩展和定制。此开发包主要适用于那些希望对LED显示系统有更深入控制或者需要...
《上海市计算机软件开发合同》是规范甲乙双方在软件开发过程中的权利义务关系的重要法律文件。根据合同内容,以下是一些关键知识点的详细说明: 1. **定义**:合同明确了多个核心术语,如“软件”、“可交付件”、...
这段代码会根据上海时区输出当前时间。 6. `date_default_timezone_set()`函数:用于设置脚本运行期间的默认时区,这对于处理不同地区的用户尤为重要。例如,`date_default_timezone_set('Europe/London');`将时区...
【标题】:“上海某医院全站B/S网站代码”指的是一个商业级别的Web应用程序源码,专为上海某医疗机构设计和开发。这个系统采用B/S(Browser/Server,浏览器/服务器)架构,意味着用户通过Web浏览器就能访问和使用该...
上海IPTV贷款栏目的源代码是一套专为上海地区的IPTV用户设计的增值服务软件。这个栏目的主要目标是为用户提供与贷款相关的各种信息和服务,帮助用户了解贷款流程、比较不同类型的贷款产品、获取贷款计算器等实用工具...
根据提供的文件信息,这份报告详细介绍了2021年上海地区前端开发工程师岗位的薪酬水平,并且列举了与薪酬相关的多个公司类型以及不同百分位数的薪酬数据。此外,报告还涉及了全国各地区常用岗位的薪酬水平,并以此...
设计控制的各个阶段(milestone)包括从项目开始到产品最终退出市场的整个生命周期,分为M0到M9共十个阶段,其中M0到M4是关键的设计控制阶段,包括项目商业情况确认、项目开发内容确认及承诺、详细完整的设计输出...
【上海市计算机软件开发合同示范文本】是一份详细指导软件开发合作的法律文件,适用于上海市的软件开发项目。此文本提供了一套完整的框架,涵盖了软件开发的各个关键环节,旨在规范双方的权利与义务,确保项目的顺利...
基于Hadoop开发出该系统。系统分为前台和后台两部分,前台采用 JSP 和Js编写界面和前端逻辑校验,后台开发主要采用Java语言,使用spring、bootmetro-master等Java EE开发框架,同时使用 MySQL、HDFS Java API等实现...
"上海建桥移动开发课程实验报告" 本实验报告的主要内容是关于 Android 移动应用开发的用户界面(UI)设计实验。实验的目的和要求是掌握 Android 常用控件的使用、掌握 Android 事件的处理流程、掌握布局的使用。 ...