Tag: php预览模式: 普通 | 列表

php插入mysql数据避免重复插入

php生成渐变图片并添加水印

现在还有个问题,就是渐变色只能是灰色,不清楚什么原因。。

PHP代码
  1. // 创建画布  
  2. $imageWidth = 720;  
  3. $imageHeight = 480;  
  4. $image = imagecreatetruecolor($imageWidth$imageHeight);  
  5.   
  6. // 生成随机渐变  
  7. $startColor = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));  
  8. $endColor = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));  
  9.   
  10. // 填充渐变背景  
  11. for ($y = 0; $y < $imageHeight$y++) {  
  12.     $progress = $y / ($imageHeight - 1);  
  13.   
  14.     $r = lerp($startColor$endColor$progress'red');  
  15.     $g = lerp($startColor$endColor$progress'green');  
  16.     $b = lerp($startColor$endColor$progress'blue');  
  17.   
  18.     $color = imagecolorallocate($image$r$g$b);  
  19.     imagefilledrectangle($image, 0, $y$imageWidth - 1, $y$color);  
  20. }  
  21.   
  22. // 添加水印文字  
  23. $watermarkText = $title;  
  24. $font = 'fonts/msyh.ttc';  // 替换为实际的字体文件路径  
  25. $fontSize = 20;  
  26. $fontColor = imagecolorallocate($image, 255, 255, 255);  
  27. $padding = 10;  
  28. $box = imagettfbbox($fontSize, 0, $font$watermarkText);  
  29. $textWidth = $box[2] - $box[0];  
  30. $textHeight = $box[1] - $box[7];  
  31. $textX = $imageWidth - $textWidth - $padding;  
  32. $textY = $imageHeight - $textHeight - $padding;  
  33. imagettftext($image$fontSize, 0, $textX$textY$fontColor$font$watermarkText);  
  34.   
  35. // 输出图片  
  36. header('Content-type: image/png');  
  37. imagepng($image);  
  38. imagedestroy($image);  
  39.   
  40. // 辅助函数,用于线性插值  
  41. function lerp($startColor$endColor$progress$channel) {  
  42.     $start = $startColor & 0xFF;  
  43.     $end = $endColor & 0xFF;  
  44.     return (int) round($start * (1 - $progress) + $end * $progress);  
  45. }  

 

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 382

安装腾讯云开发者工具套件 PHP SDK 3.0

参考地址:https://cloud.tencent.com/document/sdk/PHP

Centos:

 

步骤1:安装 Composer

  • Windows 环境请访问 Composer 官网下载安装包安装。
  • Unix 环境在命令行中执行以下命令安装:
     
    curl -sS https://getcomposer.org/installer | php
     
    sudo mv composer.phar /usr/local/bin/composer

步骤2:添加镜像源

中国大陆地区的用户可以使用腾讯云镜像源提高下载速度,在打开的命令窗口执行以下命令:

 
composer config -g repos.packagist composer https://mirrors.tencent.com/composer/

查看更多...

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 545

PHP CURL使用POST发送json数据

因项目的需要,PHP调用第三方 Java/.Net 写好的 Restful Api,其中有些接口,需要 在发送 POST 请求时,传入对象。
Http中传输对象,最好的表现形式莫过于JSON字符串了,但是作为参数的接收方,又是需要被告知传过来的是JSON!
其实这不难,只需要发送一个 http Content-Type头信息即可,即 “Content-Type: application/json; charset=utf-8”,参考代码如下:

PHP代码
  1. /** 
  2.  * PHP发送Json对象数据 
  3.  * @param $url 请求url 
  4.  * @param $jsonStr 发送的json字符串 
  5.  * @return array 
  6.  */  
  7. function http_post_json($url$jsonStr)  
  8. {  
  9.     $ch = curl_init();  
  10.     curl_setopt($ch, CURLOPT_POST, 1);  
  11.     curl_setopt($ch, CURLOPT_URL, $url);  
  12.     curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);  
  13.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  14.     curl_setopt($ch, CURLOPT_HTTPHEADER, array(  
  15.             'Content-Type: application/json; charset=utf-8',  
  16.             'Content-Length: ' . strlen($jsonStr)  
  17.         )  
  18.     );  
  19.     $response = curl_exec($ch);  
  20.     $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
  21.     curl_close($ch);  
  22.     return array($httpCode$response);  
  23. }  
  24.   
  25. $url = "http://www.baidu.com"; //请求地址  
  26. $arr = array('a' => 1, 'b' => 2, 'c' => 2); //请求参数(数组)  
  27. $jsonStr = json_encode($arr); //转换为json格式  
  28. $result = http_post_json($url$jsonStr);  
  29. print_r($result);  

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 297

Php判断蜘蛛和移动端的代码

PHP代码
  1. function isgood()  
  2. {  
  3.     $a = strtolower($_SERVER['HTTP_USER_AGENT']);  
  4.     if (!emptyempty($a)) {  
  5.         $b = array('Googlebot''Yahoo''Bing');  
  6.         foreach ($b as $c) {  
  7.             $d = strtolower($c);  
  8.             if (strpos($a$d) !== false) {  
  9.                 return $d;  
  10.             }  
  11.         }  
  12.     } else {  
  13.         return false;  
  14.     }  
  15. }  
  16. function isMobile()  
  17. {  
  18.     if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {  
  19.         return "1";  
  20.     }  
  21.     if (isset($_SERVER['HTTP_VIA'])) {  
  22.         return stristr($_SERVER['HTTP_VIA'], "wap") ? "1" : "0";  
  23.     }  
  24.     if (isset($_SERVER['HTTP_USER_AGENT'])) {  
  25.         $e = array('nokia''sony''ericsson''mot''samsung''htc''sgh''lg''sharp''sie-''philips''panasonic''alcatel''lenovo''iphone''ipod''blackberry''meizu''android''netfront''symbian''ucweb''windowsce''palm''operamini''operamobi''openwave''nexusone''cldc''midp''wap''mobile');  
  26.         if (preg_match("/(" . implode('|'$e) . ")/i"strtolower($_SERVER['HTTP_USER_AGENT']))) {  
  27.             return "1";  
  28.         }  
  29.     }  
  30.     if (isset($_SERVER['HTTP_ACCEPT'])) {  
  31.         if (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))) {  
  32.             return "1";  
  33.         }  
  34.     }  
  35.     return "0";  
  36. }  

以上代码来源于本人破解的php木马。

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 313

PHP怎么将字符串转换成数字

下面给大家介绍PHP将字符串转换成数字的四种方法。
方法1:
使用number_format()函数。number_format()函数用于将字符串转换为数字。它会在成功时返回格式化的数字,否则会在失败时给出E_WARNING。
PHP代码
  1. <?php  
  2. $num = "1000.314";  // 使用number_format()函数将字符串转换为数字  
  3. echo number_format($num), "\n";  // 函数的作用是:将字符串转换为数字  
  4. echo number_format($num, 2);  
  5. ?>  
输出:
1,000
1,000.31
方法2:
使用类型转换:类型转换可以直接将字符串转换为float,double或integer基本类型。这是将字符串转换为数字而不使用任何函数的最佳方法。
例:
PHP代码
  1. <?php  
  2. // 字符串格式的数字$num = "1000.314";  // 使用int类型转换  
  3. echo (int)$num, "\n";  // 使用float 类型转换echo (float)$num, "\n";  // 使用double 类型转换  
  4. echo (double)$num;  
  5. ?>  
输出:
1000
1000.314
1000.314
方法3:
使用intval()和floatval()函数。intval()和floatval()函数也可用于将字符串分别转换为其对应的整数和浮点值。
例:
PHP代码
  1. <?php  
  2. // 字符串格式的数字$num = "1000.314";  // intval函数的作用是:将字符串转换为整数  
  3. echo intval($num), "\n";  // floatval函数的作用是:将字符串转换为浮点数  
  4. echo floatval($num);  
  5. ?>  
输出:
1000
1000.314
方法4:
通过添加0或执行数学运算。通过在字符串中添加0,也可以将字符串编号转换为整数或浮点数。在PHP中,执行数学运算时,字符串将隐式转换为整数或浮点数。
PHP代码
  1. <?php  
  2. // 数字转换成字符串格式  
  3. $num = "1000.314";  // 对隐式类型转换执行数学运算echo $num + 0, "\n";  // 对隐式类型转换执行数学运算  
  4. echo $num + 0.0, "\n";  // 对隐式类型转换执行数学运算  
  5. echo $num + 0.1;  
  6. ?>  
输出:
1000.314
1000.314

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 193

PHP通过Http Post请求发送Json对象数据

PHP调用第三方Java/.Net写好的 Restful Api,其中有些接口,需要在发送 POST请求时,传入对象。
 
Http中传输对象,最好的表现形式莫过于JSON字符串了,但是作为参数的接收方,又是需要被告知传过来的是JSON!
 
只要发送一个http Content-Type头信息即可,即 “Content-Type: application/json; charset=utf-8”,参考代码如下:
PHP代码
  1. /** 
  2.  * PHP发送Json对象数据 
  3.  * @param $url 请求url 
  4.  * @param $jsonStr 发送的json字符串 
  5.  * @return array 
  6.  */  
  7. function send_post_json($url$jsonStr)  
  8. {  
  9.     $ch = curl_init();  
  10.     curl_setopt($ch, CURLOPT_POST, 1);  
  11.     curl_setopt($ch, CURLOPT_URL, $url);  
  12.     curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);  
  13.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  14.     curl_setopt($ch, CURLOPT_HTTPHEADER, array(  
  15.             'Content-Type: application/json; charset=utf-8',  
  16.             'Content-Length: ' . strlen($jsonStr)  
  17.         )  
  18.     );  
  19.     $response = curl_exec($ch);  
  20.     $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
  21.     curl_close($ch);  
  22.     return array($httpCode$response);  
  23. }  
  24.    
  25. $target = "http://texst.api.cn/api/dev/start";  
  26.    
  27. $postdata=array();  
  28. $postdata["token"]="99d710a1f7bc11eab31a00508c";  
  29. $postdata["imei"]="868739053737";  
  30. $jsonStr = json_encode($postdata);  
  31. $result = send_post_json($target,$jsonStr);  
  32. var_dump($result);  
  33.    
  34. //Json字符串转换成类对象 即可  
 

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 157

PHP如何接收post传递的json数据

PHP如何接收post来的json数据?

要在PHP中整体接收POST数据,有两种方法。

注意,要使用以下两种方法,Content-Type不能为multipart/form-data。

方法一:

使用:file_get_contents('php://input')

查看更多...

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 154

PHP删除、复制、重命名文件

在对文件进行操作时,不仅可以对文件中的数据进行操作,还可以对文件本身进行作。例如复制文件、删除文件、截取文件及为文件重命名等操作。在 PHP 中为我们提供了这些文件处理方式的标准函数,使用也非常简便。

文件的基本操作函数如下所示:


下面我们来分别介绍一下这几个函数的使用方法。

1、сoру() 函数

сoру() 函数可以将一个文件复制(拷贝)到指定目录中,执行成功时返回 TRUE,失败时返回 FALSE。函数的语法格式如下:

copy(string $source, string $dest[, resource $context])

查看更多...

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 163
PHP代码
  1. function convToUtf8($str) {  
  2.     if( mb_detect_encoding($str,"UTF-8, ISO-8859-1, GBK")!="UTF-8" ) {//判断是否不是UTF-8编码,如果不是UTF-8编码,则转换为UTF-8编码  
  3.         return  iconv("gbk","utf-8",$str);  
  4.     } else {  
  5.         return $str;  
  6.     }  
  7. }  
php中可以使用 mb_detect_encoding() 函数来判断字符串是什么编码的。
 
当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2312和UTF-8,或者UTF-8和GBK(这里主要是对于cp936的判断),网上说是由于字符短时mb_detect_encoding会出现误判。
 
代码如下:
PHP代码
  1. $encode = mb_detect_encoding($keytitlearray("ASCII","UTF-8","GB2312","GBK","BIG5"));  
  2. if($encode == "UTF-8"){  
  3.   $keytitle = iconv("UTF-8","GBK",$keytitle);  
  4. }  
这段代码的作用是检测字符串的编码是否UTF-8,是的话就转换为GBK。
可是当 $keytitle = “%D0%BE%C6%AC”;时。检测结果却是UTF-8.这个bug其实不算是bug,写程序时也不应当过于依赖mb_detect_encoding,当字符串较短时,检测结果产生偏差的可能性很大。
解决办法,代码如下:
PHP代码
  1. $encode = mb_detect_encoding($keytitlearray("ASCII","GB2312","GBK","UTF-8"));  
三个参数分别是:被检测的输入变量、编码方式的检测顺序(一旦为真,后面自动忽略)、strict模式对编码检测的顺序进行调整,将最大可能性放在前面,这样减少被错误转换的机会。
一般要先排gb2312,当有GBK和UTF-8时,需要将常用的排列到前面。
 
PHP字符串编码的转换和判断
 
 
GBK 和 UTF-8 编码的转换是一个非常恶心的事情,比如像 PHP 中的 json_encode 本身根本不支持 GBK 形式的编码。有两个库函数能够支持编码的转换,通常能够想到的就是 iconv 函数,使用起来也非常爽:
 
iconv('GBK', 'UTF-8//IGNORE', '测试字符串'); // 将字符串由 GBK 编码转换为 UTF-8 编码
 
但 iconv 只能解决编码预先知道的情况,如果字符串编码未知,则需要先探测其编码,这时可能会用到 mb_string 扩展库:
 
mb_detect_encoding('测试字符串');
 
可是 mb_detect_encoding 存在一个硬伤,经常出现判断不准确的情况。或许这样就可以解决:
PHP代码
  1. // 使用 iconv 转换并判断是否等值,效率不高  
  2. function is_utf8 ($str) {  
  3.   if ($str === iconv('UTF-8''UTF-8//IGNORE'$str)) {  
  4.     return 'UTF-8';  
  5.   }  
  6. }  
  7. // 多种编码的情况  
  8. function detect_encoding ($str) {  
  9.   foreach (array('GBK''UTF-8'as $v) {  
  10.     if ($str === iconv($v$v . '//IGNORE'$str)) {  
  11.       return $v;  
  12.     }  
  13.   }  
  14. }  
通过以上方式得到字符串编码信息后,就可以利用 iconv 或 mb_convert_encoding 来转换编码了。

Tags: php

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 66

snoopy(强大的PHP采集类) 详细介绍

 Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单,可以用来开发一些采集程序和小偷程序,本文章详细介绍snoopy的使用教程。

Snoopy的一些特点:

抓取网页的内容 fetch
抓取网页的文本内容 (去除HTML标签) fetchtext
抓取网页的链接,表单 fetchlinks fetchform
支持代理主机
支持基本的用户名/密码验证
支持设置 user_agent, referer(来路), cookies 和 header content(头文件)
支持浏览器重定向,并能控制重定向深度
能把网页中的链接扩展成高质量的url(默认)
提交数据并且获取返回值
支持跟踪HTML框架
支持重定向的时候传递cookies
要求php4以上就可以了 由于本身是php一个类 无需扩支持 服务器不支持curl时候的最好选择,

 

查看更多...

Tags: php snoopy

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 62

 广告位

↑返回顶部↑