Windows 8.1系统将重新加入开始按钮

Windows 8
bce9067f6ac03eee8
微软计划在Windows 8.1操作系统中重新加入“开始”(Start)按钮。

据长期关注微软动态的市场观察人士保罗·图洛特(Paul Thurrott)称,他获得的一张外泄截图显示,微软正准备对定于6月底发布的特别预览版Windows 8.1操作系统作出重大更新。

图洛特称,从截图来看,微软计划在Windows 8.1操作系统中重新加入“开始”(Start)按钮。微软此前在Windows 8系统中取消了“开始”按钮,采用基于拼贴的菜单,这种菜单是专为触摸屏PC和平板电脑设计的。虽然用户可以从新的“开始”菜单中切换回正常的桌面模式, 但这种改动还是让许多用户感到混乱。

此前市场上一直都有传闻称,微软将在Windows 8.1系统中重新加入“开始”按钮,此外还将提供一种选择,允许用户将其PC设定为启动时默认进入正常的桌面模式。

据美国科技站点ZDNet报道,当用户点击新的“开始”按钮时,不会弹出跟旧版Windows系统一样的经典菜单,而是会引领用户进入“All Apps”显示界面,这个界面会列出用户PC或平板电脑中已经安装的所有应用。

微软将于6月26日召开Build开发者大会,预计很可能会在此次大会上发布Windows 8.1操作系统。

开源博客平台WordPress今天十岁啦!

164832a05e9017bbf

开源博客平台 WordPress 今天十岁啦!

2003 年,WordPress 刚刚诞生之时,它的愿景不过是成为人们发布文章的简易工具。而如今,很多出版界的巨头都在使用 WordPress,这其中包括 CNN,GigaOM,TechCrunch,VentureBeat 等等(36 氪之前也是用的 WordPress)。WordPress 平台上有超过 6600 万站点。WordPress 估计是过去十年中改变出版界最重要的工具。

当 WordPress 的开源平台持续兴盛时,母公司 Automattic持有的收费版博客寄存站点WordPress.com也毫不逊色。WordPress 及 Automattic 的联合创始人 Matt Mullenweg 近期宣布Automattic在二级交易市场融资5000万美元,这笔巨额资金将帮助 WordPress 巩固其领先地位。

接下来就通过 Statista 准备的信息图,看看 WordPress 在过去十年的发展情况吧:
8644098199675decf

PHP SoapServer XML实例代码

clent.php:

$client = new SoapClient(null, array('location' => "http://demo.test.com/wsdl/HelloWorldService.php?wsdl", 'uri' => 'http://test-uri/'));
try {
    $result = $client->outsider();
    var_dump($result);
    echo "The answer isresult";
} catch (SoapFault $f) {
    echo "Error Message: {$f->getMessage()}";
}

HellowWordServer.php:

require_once 'HelloWorld.class.php';
if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'POST') {
    $servidorSoap = new SoapServer('http://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['PHP_SELF'] . '?wsdl');
    $servidorSoap->setClass('HelloWorld');
    $servidorSoap->handle();
} else {
    require_once 'SoapDiscovery.class.php';
 
    // Crea el servidor de descubrimiento
    $disco = new SoapDiscovery('HelloWorld', 'Solsoft_HelloWorld');
    header("Content-type: text/xml");
    if (isset($_SERVER['QUERY_STRING']) && strcasecmp($_SERVER['QUERY_STRING'], 'wsdl') == 0) {
        echo $disco->getWSDL();
    } else {
        echo $disco->getDiscovery();
    }
}

HelloWorld.class.php

class HelloWorld {
	private $nombre = '';
 
	/**
	 * HelloWorld::__construct() HelloWorld class Constructor.
	 * 
	 * @param string $nombre
	 * @return string
	 **/
	public function __construct($name = 'World') {
		$this->name = $name;
	}
 
	/**
	 * HelloWorld::greet() Greets the World xor $this->name xor $name if $name is not empty.
	 * 
	 * @param string $nombre
	 * @return string
	 **/
	public function greet($name = '') {
		$name = $name?$name:$this->name;
		return 'Hello '.$name.'.';
	}
 
	/**
	 * HelloWorld::servidorEstampillaDeTiempo() Returns server timestamp.
	 * 
	 * @return string 
	 **/
	public function serverTimestamp() {
		return time();
	} 
        public function outsider(){
            return "OUTSIDER";
        }
}

HelloWorld.wsdl

<?xml version="1.0" ?>
<definitions name="Solsoft_HelloWorld" targetNamespace="urn:Solsoft_HelloWorld" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="urn:Solsoft_HelloWorld" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types xmlns="http://schemas.xmlsoap.org/wsdl/" />
<portType name="Solsoft_HelloWorldPort"><operation name="greet">
<input message="tns:greetRequest" />
<output message="tns:greetResponse" />
</operation>
<operation name="serverTimestamp">
<input message="tns:serverTimestampRequest" />
<output message="tns:serverTimestampResponse" />
</operation>
<operation name="outsider">
<input message="tns:outsiderRequest" />
<output message="tns:outsiderResponse" />
</operation>
</portType>
<binding name="Solsoft_HelloWorldBinding" type="tns:Solsoft_HelloWorldPort">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="greet">
<soap:operation soapAction="urn:Solsoft_HelloWorld#HelloWorld#greet" />
<input><soap:body use="encoded" namespace="urn:Solsoft_HelloWorld" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body use="encoded" namespace="urn:Solsoft_HelloWorld" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
<operation name="serverTimestamp">
<soap:operation soapAction="urn:Solsoft_HelloWorld#HelloWorld#serverTimestamp" />
<input><soap:body use="encoded" namespace="urn:Solsoft_HelloWorld" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body use="encoded" namespace="urn:Solsoft_HelloWorld" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
<operation name="outsider">
<soap:operation soapAction="urn:Solsoft_HelloWorld#HelloWorld#outsider" />
<input><soap:body use="encoded" namespace="urn:Solsoft_HelloWorld" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body use="encoded" namespace="urn:Solsoft_HelloWorld" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>
<service name="Solsoft_HelloWorld">
<documentation />
<port name="Solsoft_HelloWorldPort" binding="tns:Solsoft_HelloWorldBinding"><soap:address location="http://demo.test.com:80/wsdl/HelloWorldService.php" />
</port>
</service>
<message name="greetRequest">
<part name="name" type="xsd:string" />
</message>
<message name="greetResponse">
<part name="greet" type="xsd:string" />
</message>
<message name="serverTimestampRequest">
</message>
<message name="serverTimestampResponse">
<part name="serverTimestamp" type="xsd:string" />
</message>
<message name="outsiderRequest">
</message>
<message name="outsiderResponse">
<part name="outsider" type="xsd:string" />
</message>
</definitions>

SoapDiscovery.class.php

class SoapDiscovery {
	private $class_name = '';
	private $service_name = '';
 
	/**
	 * SoapDiscovery::__construct() SoapDiscovery class Constructor.
	 * 
	 * @param string $class_name
	 * @param string $service_name
	 **/
	public function __construct($class_name = '', $service_name = '') {
		$this->class_name = $class_name;
		$this->service_name = $service_name;
	}
 
	/**
	 * SoapDiscovery::getWSDL() Returns the WSDL of a class if the class is instantiable.
	 * 
	 * @return string
	 **/
	public function getWSDL() {
		if (empty($this->service_name)) {
			throw new Exception('No service name.');
		}
		$headerWSDL = "<?xml version=\"1.0\" ?>\n";
		$headerWSDL.= "<definitions name=\"$this->service_name\" targetNamespace=\"urn:$this->service_name\" xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\" xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\" xmlns:tns=\"urn:$this->service_name\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns=\"http://schemas.xmlsoap.org/wsdl/\">\n";
		$headerWSDL.= "<types xmlns=\"http://schemas.xmlsoap.org/wsdl/\" />\n";
 
		if (empty($this->class_name)) {
			throw new Exception('No class name.');
		}
 
		$class = new ReflectionClass($this->class_name);
 
		if (!$class->isInstantiable()) {
			throw new Exception('Class is not instantiable.');
		}
 
		$methods = $class->getMethods();
 
		$portTypeWSDL = '<portType name="'.$this->service_name.'Port">';
		$bindingWSDL = '<binding name="'.$this->service_name.'Binding" type="tns:'.$this->service_name."Port\">\n<soap:binding style=\"rpc\" transport=\"http://schemas.xmlsoap.org/soap/http\" />\n";
		$serviceWSDL = '<service name="'.$this->service_name."\">\n<documentation />\n<port name=\"".$this->service_name.'Port" binding="tns:'.$this->service_name."Binding\"><soap:address location=\"http://".$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['PHP_SELF']."\" />\n</port>\n</service>\n";
		$messageWSDL = '';
		foreach ($methods as $method) {
			if ($method->isPublic() && !$method->isConstructor()) {
				$portTypeWSDL.= '<operation name="'.$method->getName()."\">\n".'<input message="tns:'.$method->getName()."Request\" />\n<output message=\"tns:".$method->getName()."Response\" />\n</operation>\n";
				$bindingWSDL.= '<operation name="'.$method->getName()."\">\n".'<soap:operation soapAction="urn:'.$this->service_name.'#'.$this->class_name.'#'.$method->getName()."\" />\n<input><soap:body use=\"encoded\" namespace=\"urn:$this->service_name\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" />\n</input>\n<output>\n<soap:body use=\"encoded\" namespace=\"urn:$this->service_name\" encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" />\n</output>\n</operation>\n";
			    $messageWSDL.= '<message name="'.$method->getName()."Request\">\n";
				$parameters = $method->getParameters();
				foreach ($parameters as $parameter) {
					$messageWSDL.= '<part name="'.$parameter->getName()."\" type=\"xsd:string\" />\n";
				}
				$messageWSDL.= "</message>\n";
				$messageWSDL.= '<message name="'.$method->getName()."Response\">\n";
				$messageWSDL.= '<part name="'.$method->getName()."\" type=\"xsd:string\" />\n";
				$messageWSDL.= "</message>\n";
			}
		}
		$portTypeWSDL.= "</portType>\n";
		$bindingWSDL.= "</binding>\n";
		return sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, '</definitions>'); 
//生成wsdl文件,将上面的return注释 
//$fso = fopen($this->class_name . ".wsdl" , "w"); 
//fwrite($fso, sprintf('%s%s%s%s%s%s', $headerWSDL, $portTypeWSDL, $bindingWSDL, $serviceWSDL, $messageWSDL, '</definitions>')); 
exit; 
	}
 
	/**
	 * SoapDiscovery::getDiscovery() Returns discovery of WSDL.
	 * 
	 * @return string
	 **/
	public function getDiscovery() {
		return "<?xml version=\"1.0\" ?>\n<disco:discovery xmlns:disco=\"http://schemas.xmlsoap.org/disco/\" xmlns:scl=\"http://schemas.xmlsoap.org/disco/scl/\">\n<scl:contractRef ref=\"http://".$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['PHP_SELF']."?wsdl\" />\n</disco:discovery>";
	}
}

PHP简单图片采集

第一步先生成一个要采集的TEST文本文件

<?php
 
header('Content-type: text/html;charset=UTF-8');
/**
 * 生成要采集的图片URL地址
 */
$url = "http://outsiderla.me/nikita-creative-staff.html";
// 1. 初始化
$ch = curl_init();
// 2. 设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
// 3. 执行并获取HTML文档内
$con = curl_exec($ch);
// 4. 释放curl句柄
curl_close($ch);
//正则匹配图片
preg_match_all("/<img.*?src=\"(.*?)\".*?\/>/i", $con, $arr);
foreach ($arr[1] as $k => $v) {
//    $file = fopen("img.txt", 'w');
//    fwrite($file, $v);
//    fclose($file);
    file_put_contents('img.txt',"$v \r\n", FILE_APPEND);
}

下载生成上步中生成URL图片链接地址:

<?php
header('Content-type: text/html;charset=UTF-8');
set_time_limit(0);
 
/**
 * 写文件
 * @param    string  $file   文件路径
 * @param    string  $str    写入内容
 * @param    char    $mode   写入模式
 */
function wfile($file, $str, $mode='w') {
    $oldmask = @umask(0);
    $fp = @fopen($file, $mode);
    @flock($fp, 3);
    if (!$fp) {
        Return false;
    } else {
        @fwrite($fp, $str);
        @fclose($fp);
        @umask($oldmask);
        Return true;
    }
}
 
function savetofile($path_get, $path_save) {
    @$hdl_read = fopen($path_get, 'rb');
    if ($hdl_read == false) {
        echo("<span style='color:red'>$path_get can not get</span>");
        Return;
    }
    if ($hdl_read) {
        @$hdl_write = fopen($path_save, 'wb');
        if ($hdl_write) {
            while (!feof($hdl_read)) {
                fwrite($hdl_write, fread($hdl_read, 8192));
            }
            fclose($hdl_write);
            fclose($hdl_read);
            return 1;
        }
        else
            return 0;
    }
    else
        return -1;
}
 
function getExt($path) {
    $path = pathinfo($path);
    return strtolower($path['extension']);
}
 
/**
 * 按指定路径生成目录
 *
 * @param    string     $path    路径
 */
function mkDirs($path) {
    $adir = explode('/', $path);
    $dirlist = '';
    $rootdir = array_shift($adir);
    if (($rootdir != '.' || $rootdir != '..') && !file_exists($rootdir)) {
        @mkdir($rootdir);
    }
    foreach ($adir as $key => $val) {
        if ($val != '.' && $val != '..') {
            $dirlist .= "/" . $val;
            $dirpath = $rootdir . $dirlist;
            if (!file_exists($dirpath)) {
                @mkdir($dirpath);
                @chmod($dirpath, 0777);
            }
        }
    }
}
 
/**
 * 从文本中取得一维数组
 *
 * @param    string     $file_path    文本路径
 */
function getFileListData($file_path) {
    $arr = @file($file_path);
    $data = array();
    if (is_array($arr) && !empty($arr)) {
        foreach ($arr as $val) {
            $item = trim($val);
            if (!empty($item)) {
                $data[] = $item;
            }
        }
    }
    Return $data;
}
 
//采集开始
//传入自己的需要采集的图片url列表文本文件 每个图片url写一行
$url_file = isset($_GET['file']) && !empty($_GET['file']) ? $_GET['file'] : null;
$txt_url = "txt/" . $url_file;
 
$urls = array_unique(getFileListData($txt_url));
if (empty($urls)) {
    echo('<div style="color:red">无链接地址</div>');
    die();
}
$save_url = "images/" . date("y_m_d", time()) . "/";
mkDirs($save_url);  //按日期建立文件夹
$i = 1;
if (is_array($urls) && count($urls)) {
    foreach ($urls as $val) {
        savetofile($val, $save_url . date("His", time()) . "_" . $i . "." . getExt($val));
        echo($i . "." . getExt($val) . " got\n");
        $i++;
    }
}
echo('<div style="color:green">finish</div>');
?>

PHP SoapServer实例代码

PHP SoapServer实例代码
server端代码:

<?php
 
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) ||
        !($_SERVER['PHP_AUTH_USER'] == 'outsider' && $_SERVER['PHP_AUTH_PW'] == '123456')) {
    header('WWW-Authenticate: Basic realm="WEBSERVICE"');
    header("HTTP/1.0 401 Unauthorized");
    echo "You must enter a valid login ID and password to access this resource/n";
    die;
}
 
class test {
 
    function show($one, $two) {
        return $one + $two;
    }
 
    function user_info() {
        $user_info = array(
            'name' => 'Outsider',
            'sex' => '男',
            'email' => 'outsider@outsiderla.me',
            'tel' => '1369*******',
        );
        return json_encode($user_info);
    }
 
} 
$server = new SoapServer(null, array('uri' => 'server.php', 'location' => 'http://demo.test.com/server.php'));
$server->setClass('test');
//$server->addFunction('getUserInfo');   
$server->handle();
?>

第三方调用代码:

<?php
$soap = new SoapClient(null, array('location' => 'http://demo.test.com/server.php', 'uri' => 'server.php', "login" => "outsider", "password" => "123456"));
$user_info = json_decode($soap->user_info());
echo $user_info->email;
?>

“百字令”微情书:顺着读暗恋 倒着读失恋

0e2442a7d933c895d0424e34d01373f083025aafa40f287c
a8773912b31bb051d9c56567377adab44bed2e738ad4c8a0
香港中文大学微情书大赛一等奖作品《微情书·百字令》走红网络,网友称其顺着读、倒着念都别有一番韵味。20日,中南财经政法大学大二学生刘佳文仿写“分手版”百字微情书,可谓与前者难分伯仲,被网友狂转。

记者细品两首“百字令”,一个“暗恋”,一个“失恋”,一个情意深长;一个抚慰人心。均言辞优美,格式工整,网友直呼“两人杠上了”。

就读于法学院的刘佳文介绍,一位朋友知道她喜欢古典诗词,便推荐她读了这首“百字微情书”,美丽的诗词打动了她,她便开始仿写,本来只是想给原作者一种回应,没想到被众多网友转发。

网友将两首诗比对在一起传阅,不乏对两者优劣的比较评论。刘佳文也不回避这种比较,她认为原版的《百字令》将暗恋写得意境内敛而深厚,遣词造句也很古典,耐人寻味。至于她自己的这一首,传递的是一种笑对过往的正能量,因为是抱着好玩的心态写的,一些句子她并不十分满意。在她看来,“并不必太计较孰优孰劣,不然创作和阅读都失了趣味”。

据了解,刘佳文从小爱好古诗词,高中时曾有两首小诗上了校刊,现在也偶尔会练练笔,大多是仿宋词。

对作品走红,刘佳文说:“非常开心,其实其中有一定的机缘巧合,感谢大家对我的认可,受到这么多关注感到有一些压力,希望能有更好的作品。”

752960d3jw1e4jf0qotkpj20dw09ajsq

爱和恨,从来就没有单独存在过,一直是一起存在的,只不过是某个阶段中,爱比恨多了一点儿,所以看见了爱,模糊了恨;或者恨比爱多了一点儿,所以看见了恨,模糊了爱,而我们,就都在这些被模糊了情感中,最终模糊了自己。—— 十八子墨《等不到花开的时候》

程序员面试技巧

程序员面试技巧

程序员面试技巧

问:

请问你擅长哪方面?主要技能有哪些?

最佳答案:

本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、PS等软件的安装与卸载,精通CSS、JavaScript、PHP、C、C++、Java、Ruby、Perl、Lisp、Python、Objective-C、ActionScript等单词的拼写,熟悉Windows、Linux、Mac、Android、iOS等系统的开关机。

网传景德镇一学院发布“十大表白条例”

f33944f968ba1dbeb2b214e868386da0
“严禁使用烟花爆竹等易燃易爆物品进行表白;表白活动持续时间不宜过长,务必在当日24点结束……”5月5日,一条被称是“景德镇陶瓷学院在校大学生十大表白条例”的博文在网上被热传。5月6日,景德镇陶瓷学院党委宣传部一位负责人在接受记者采访时表示,该校从来未发布过类似条例,网上流传的消息是假的。

5月5日,这条“大学生十大表白条例”的博文在网上发布后,立即引起众多网友关注,不到一天时间,就被转发一万余次。而条例内容也是亮点频现——“严禁表白过程中因争风吃醋演变聚众斗殴,如经查实,处开除学籍处分。”“要求表白方感情真挚,杜绝玩弄感情现象。”“表白不成仁义在,不许霸王硬上弓。”……

“这学校真是与时俱进啊。”“笑哭了,表白不成仁义在,不许霸王硬上弓。”“哈哈!好有趣的条例!尤其是提前上交表白方案那一条!”……不少网友跟帖评论道。

记者发现,该条例的落款为“某高校校委会”,发布时间为2013年5月4日,学校的名称则被用马赛克隐去。事后,有不少自称是景德镇陶瓷学院学生的网友跟帖表示,该条例是他们学校的。

那么,该条例是否真的出自景德镇陶瓷学院?5月6日,记者联系了景德镇陶瓷学院党委宣传部。

“我们学校没有发过类似条例,这个消息应该是网友或者个别学生自己在网上杜撰、恶搞的,根本没有这回事。”据景德镇陶瓷学院党委宣传部一负责人介绍,该校并没有“校委会”这一组织机构,网上流传的消息不属实。

CSS布局:让页底内容永远固定在底部

CSS布局:让页底内容永远固定在底部
HTML

<div id="wrap"> 
    <div id="main"> 
    主体 
    </div> 
</div> 
 
<div id="footer"> 
   这里是页底footer内容 
</div>

CSS

style type="text/css"> 
* {margin:0;padding:0;}  
html, body {height: 100%;} 
#wrap {min-height: 100%;} 
#main {overflow:auto; 
    padding-bottom: 60px;}  /* 必须使用和footer相同的高度 */ 
#footer {position: relative; 
    margin-top: -60px;  
    height: 60px; 
    clear:both; 
    background:#369}  
 
/*Opera Fix*/ 
body:before { 
content:""; 
height:100%; 
float:left; 
width:0; 
margin-top:-32767px; 
} 
</style>

注意,以上代码在IE6上根本不起作用,必须使用以下代码来解决IE6下的BUG。

<!--[if !IE 7]> 
    <style type="text/css"> 
        #wrap {display:table;height:100%} 
    </style> 
<![endif]-->