2013年1月 的存档

php 直接输出图片

2013年1月10日 没有评论

前段时间看 google analytics 移动版,发现可以直接通过php来输出一个1×1像素的图片。以前的我的做法是php中执行了处理逻辑后,然后通过header 进行一个 302 转跳到一个已有的图片上,看来是多此一举了。下面是图片输出的示例代码:

<?php
function writeGifData() {
    $GIF_DATA = array(
        chr(0x47),chr(0x49),chr(0x46),chr(0x38),chr(0x39),chr(0x61),
        chr(0x01),chr(0x00),chr(0x01),chr(0x00),chr(0x80),chr(0xff),
        chr(0x00),chr(0xff),chr(0xff),chr(0xff),chr(0x00),chr(0x00),
        chr(0x00),chr(0x2c),chr(0x00),chr(0x00),chr(0x00),chr(0x00),
        chr(0x01),chr(0x00),chr(0x01),chr(0x00),chr(0x00),chr(0x02),
        chr(0x02),chr(0x44),chr(0x01),chr(0x00),chr(0x3b)
    );

    header("Content-Type: image/gif");
    header("Cache-Control: " . "private, no-cache, no-cache=Set-Cookie, proxy-revalidate");
    header("Pragma: no-cache");
    header("Expires: Wed, 17 Sep 1975 21:32:10 GMT");

    echo join($GIF_DATA);

    exit;
}

writeGifData();
?>

受到启示,也可以通过下面的方式来输出图片

<?php
function writeGifData() {
    //服务器图片真实路径
    $file = dirname(__FILE__) . '/1x1.gif';
    readfile($file);

    exit;
}

writeGifData();
?>

另外,如果觉得.php作为图片的扩展名不好看,可以在服务器上通过urlrewrite来改造一下,这样用户看到的是图片扩展名,但是服务器真是处理的是一个php脚本,既然是php脚本,就可以做很多其他的事,这种方式在网站统计、广告系统等广泛应用。

分类: PHP 标签:

MBP 突然没有声音

2013年1月9日 没有评论

今天打开MBP,插上耳机突然发现没有一点声音,然后不使用耳机,也没有声音,确定声音是处于开启状态的。这就比较奇怪,昨天晚上还是好好的,以前从来没有出现这样的情况,回想一下,昨天晚上是在没有使用电源的情况使用了几个小时,后来直接合盖休眠的,这是和以前唯一的区别。准备重启一下机器,看到自己已经38天没有关机,想继续延续这个不关机的时间,遂决定google一把,发现有这样问题的人还不少。大致有三种方案,一是重启机器,二是插上耳机然后拔掉再插上,三是使用killall命令干掉声音的那个进程。方案二对我的情况测试下来无效;方案一没有试;方案三成功了。具体操作是在实用工具中找到“终端”程序并打开,然后执行:

sudo killall coreaudiod

执行命令时可能会提示你输入密码,这里的密码就是你当前登陆到系统的密码

分类: 其它 标签:

提交表单时去掉无用的信息

2013年1月9日 没有评论

html中使用form来提交信息到服务器,方式可以是POST或GET。你通过firebug、httpfox等类似工具查看提交的信息,可能会注意到,你的提交按钮也作为信息的一部分给提交给服务器,这个信息我想绝大部分是不会使用到的。

那如何在提交表单的时候让浏览器不发送这个信息呢?其实非常简单,只需要把不想发送信息的input的name属性去掉就可以了。例如:

<input type="submit" value="登陆">

这样,你就不会看到提交的信息中有”登陆”了。

分类: web前端 标签:

crontab 指定执行用户

2013年1月8日 没有评论

linux下可以通过配置crontab来定时执行任务,执行体可以是一条系统命令或自己写的一个脚本,同时可以指派用户来执行。配置crontab有两种方法。
方法1、使用crontab命令,例如添加一个新的或编辑已有的,使用:

crontab -e

就可以进入配置文件。此时配置crontab的执行者是当前登入用户,如果当前用户是root,需要为其他用户配置,可以使用

crontab -e -u 用户名

或
su 用户名
crontab -e

这种方法有一个缺点,就是当前系统中配置的crontab不在一个配置文件中,让管理员不方便查询系统到底有多少个crontab。

方法2、直接在/etc/crontab文件中添加,不过需要是root身份。打开文件,应该会看到类似下面的信息


SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

要添加新的crontab,只需要在文件最后增加即可。注意这里面需要指定用户名;而方法1中则不需要,如果指定了,它会认为是命令的一部分,从而可能导致crontab执行失败。

如果服务器都是有root来管理,建议添加crontab使用方法2,这样系统中的所有计划任务都在一起,一目了然。

分类: Linux 标签: ,

新年快乐

2013年1月1日 没有评论

新的纪年开始,今天顺利申请成功了Amazon的云服务、根据以前的Blog笔记顺利的搭建好环境、同时很顺利的把Blog从朋友的VPS迁移到AWS EC2上,所有的一切一切都是无比的顺利。希望新的一年自己在家庭、工作等一切上都顺顺利利。把同样的祝福也送给所有人。

分类: 其它 标签:

无觅相关文章插件,快速提升流量