PHP将指定图片插入透明PNG中,实现水印效果!

将图片B.png(16px * 16px),嵌入图片A.png中,生成一个图片C.png。

<?php
$im = imagecreatefrompng(‘A.png’);
$im2 = imagecreatefrompng(‘B.png’);
imagesavealpha($im, true);  //设置透明
imagesavealpha($im2, true);  //设置透明
imagecopy($im, $im2, 0, 0, 0, 0, 16, 16); //将图片B.png嵌入图片A.png
imagepng($im, ‘C.png’); // 生成图片C.png
?>
<img src=”C.png” />

PHP下载文件不完整解决办法

今天在公司一个项目中使用PHP实现文件下载功能,在Windows服务器上测试通过,在Linux服务器上一直出现问题,下载的文本文件出现不完整的情况,下载的二进制文件(比如RAR压缩包)全部不可用。找半天没有找到原因。

代码如下:

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
@readfile($file);

最终翻看手册发现手册中有以下两行代码:

ob_clean();
flush();

@readfile($file);前面添加上就正常了。

用PHP实现Linux服务

最近的一个项目需要分别在Windows和Linux下实现PHP程序注册为服务方式运行.

在网上找了很久终于完成了Windows版本的! 不过一直没有完成Linux版本, 本人Linux菜鸟,很长时间都没解决这个问题. 发现Linux没有一个像Windows的services.msc管理器的东西.

因此想到了用PHP完全模拟services.msc来实现.

原理很简单:

1. PHP服务程序原理:无非就是一个无限循环,每循环后休息一定的时间(sleep(xx)),然后继续执行.

2. 用PHP编写一个服务管理器,功能类似于windows下的net start 和 net stop命令, 用于控制编写的PHP服务.

3.采用内存或者文件方式实现服务管理器与PHP服务之间的通信.

4.设置一个开机启动项, 用于开机启动配置了自动运行的PHP服务.

 

根据以上原理,我写了一份测试版的PHP管理器, 现在分享给大家!

以下是截图:

 

下载地址:PHP服务管理器Linux版