Submitted by 孤魂 on 2009, July 23, 8:56 PM
正则表达式的匹配先后顺序:
1.模式单元
2.重复匹配 ? * + {}
3.边界限定 ^ $ b B
4.模式选择 |
模式修正符:
模式修正符是标记在整个模式之外的.
i :模式中的字符将同时匹配大小写字母.
m :字符串视为多行.
s :将字符串视为单行,换行符作为普通字符.
x :将模式中的空白忽略.
A :强制仅从目标字符串的开头开始匹配.
D :模式中的美元元字符仅匹配目标字符串的结尾.
U :匹配最近的字符串.
» 阅读全文
Tags: php, 正则
学习┊取长补短 | 评论:2
| 阅读:3428
Submitted by 孤魂 on 2009, July 21, 2:07 PM
PHP代码
- <?php
- function preg_substr($start, $end, $str)
- {
- $temp = preg_split($start, $str);
- $content = preg_split($end, $temp[1]);
- return $content[0];
- }
- function str_substr($start, $end, $str)
- {
- $temp = explode($start, $str, 2);
- $content = explode($end, $temp[1], 2);
- return $content[0];
- }
-
- $str = iconv("UTF-8", "GB2312", file_get_contents("http://www.kalvin.cn/?action=show&id=197"));
- echo ('标题: ' . str_substr("<title>", "</title>", $str));
- echo ('作者: ' . preg_substr("/userid=\d+\">/", "/<\//", $str));
- echo ('内容: ' . str_substr('<div class="content">', '</div>', $str));
- ?>
Tags: php, 正则
学习┊取长补短 | 评论:0
| 阅读:3088
Submitted by 孤魂 on 2009, July 21, 9:47 AM
PHP代码
- <?php
-
- function dologin ($url, $postdata, $referer)
- {
- $optionlogin = array('http' => array('method' => "POST", 'header' => "User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.0.04506; CIBA)\r\nAccept:*/*\r\nReferer:" . $referer,
- 'content' => $postdata,));
- $file = file_get_contents($url, false , stream_context_create($optionlogin));
- preg_match_all("/Set-Cookie:(.*?)\r\n/", implode("\r\n", $http_response_header), $cookies);
- session_start();
- $_SESSION["doCookie"] = implode(";", $cookies[1]);
- return $file;
- }
-
- function dopost ($url, $postdata, $referer, $cookie)
- {
- $optionpost = array('http' => array('method' => "POST", 'header' => "User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.0.04506; CIBA)\r\nAccept:*/*\r\nReferer:" . $referer . "\r\nCookie:" . $cookie, 'content' => $postdata,));
- $file = file_get_contents($url, false , stream_context_create($optionpost));
- return $file;
- }
-
- function doget ($url, $referer, $cookie)
- {
- $optionget = array('http' => array('method' => "GET", 'header' => "User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 3.0.04506; CIBA)\r\nAccept:*/*\r\nReferer:" . $referer . "\r\nCookie:" . $cookie));
- $file = file_get_contents($url, false , stream_context_create($optionget));
- return $file;
- }
-
- ?>
百分百原创,欢迎拍砖!需要PHP5.0以上版本才可以使用以上函数!
Tags: php
学习┊取长补短 | 评论:0
| 阅读:3195
Submitted by 孤魂 on 2009, July 19, 11:50 AM
XML/HTML代码
- <script type="text/javascript">
- <!--
- function addFavorite() {
- var url = this.location.href;
- var title = this.document.title;
- if (document.all) {
- window.external.addFavorite(url,title);
- }
- else if (window.sidebar) {
- window.sidebar.addPanel(title, url, "");
- }
- else {
- alert("暂时不支持您使用的浏览器版本");
- }
- return false;
- }
- //-->
- </script>
- <a href="#" onclick="return addFavorite();" target="_top" rel="sidebar">加入收藏夹</a>
以上代码可以通用IE及Firefox,但是不支持Chrome及Opera,不过
当不支持某种浏览器时,会弹出提示!原来有发布一个简洁的加入收藏夹代码,兼容ie,firefox,opera等浏览器,是一个不错的选择!
Tags: html
学习┊取长补短 | 评论:0
| 阅读:2695
Submitted by 孤魂 on 2009, July 18, 4:35 PM
PHP代码
- <?php
- $option = array(
- 'http' => array(
- 'method' => "POST",
- 'header' => "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) \r\n Accept: */*",
- 'content' => "domain=www.kalvin.cn&author=kalvin",
- )
- );
- $xoption = stream_context_create($option);
- echo $str = file_get_contents("http://www.kalvin.cn", false, $xoption); // 执行请求
- print_r($http_response_header);
- ?>
File_get_contents 的 POST 方式需要 PHP5 以后才支持,孤魂原来还是习惯使用 Curl ,不过有的虚拟主机没有打开 Curl 扩展的情况下,就可以考虑使用到以上代码了。另外今天还看到了一个 http_build_query() 函数,以后整理火车头发布模块的数据包时,效率提高不少!
Tags: php, curl
学习┊取长补短 | 评论:2
| 阅读:3324