技术瓶颈表现 作为一名web技术开发人员,也是我们说的IT人员。 刚刚入门时候,会发现有很强的兴趣。天天会遇到新的事情,可以不断做一些新的功能。到后来,会发现。自己所做的工作,技术点都差不多,然后感觉学习东西越来越少。最后,也慢慢对该行业兴趣不强烈了。 而后,慢慢有些油了。 总是感觉学习知识是在炒旧饭,很久也没有感觉到自己的提升。 这个时候,也就是我们经常说的技术瓶颈。 怎么样突破技术瓶颈 我们知道,行行出状元。并且能熟能生巧,那么我们做技术是不是做的多,也自然而然会成为状元,会生巧呢? 确实,作为web技术人员,做得多,对自己编码速度,处理问题提升会很多。 但是,却又不完全成正比。我们发现很多时候,看似我...
阅读全文
常常做了一段时间的web开发,然后就慢慢迷失了方向。感觉自己的技术到一个瓶颈,不知道下一步该要学习哪些知识。常常这个时候,很多人因为瓶颈,导致一直原地踏步!也有写朋友,感觉自己什么都可以了。 记得,我当时刚做1年多网站时候。就有那个感觉,觉得自己什么都可以做了。什么留言板、用户系统、论坛、产品管理等,然后去一家大一点的公司谋职,被一个招聘人员问了几个问题。然后,觉得自己非常自信,回答非常好!但是结果音信全无,指导后来过来几年后,对当时那段时间回忆起来,觉得自己当时勇气可嘉! 下面,这个图,是作为web开发人员,技能知识点汇总。里面常常包括,ui人员、js人员、web编码人员的所有知识点。但是,这3者之间开发中...
阅读全文
断言(Assertions)在正则表达式概念里面难理解,它通常指的是在目标字符串的当前匹配位置进行的一种测试但这种测试并不占用目标字符串,也即不会移动模式在目标字符串中的当前匹配位置。详细可以看看,正则表达式匹配解析过程探讨分析(正则表达式匹配原理),里面提到“零宽度“很多元字符,只是对特殊位置进行匹配,它们可以理解为断言。 断言元字符 常见断言元字符有: \b, \B, \A, \Z, \z, ^ ,$ 它们只是表示特殊位置,各自作用如有字符串AB,带位置表示为:0A1B2 元字符 意义(以上面带位置字符串说明) ^ 行首,字符串首 表示位置0 $ 行尾,字符串尾部,表示位置2 \b 字分界线,可以表示:0,2位置 \B 非字分界线,可以表示1位置 ...
阅读全文
正则表达式贪婪匹配模式,对于初学者,往往也很容易出错。有时候需要匹配一个段代码内容,发现匹配与想要不一致。发现原来,跟贪婪模式有关系。如下,我们看下例子: 什么是贪婪模式 字符串有: “<h3>abd</h3><h3>bcd</h3>”,我们想匹配<h3>…</h3>内容,正则表达式如下: 1、h3开头与结尾,”<h3>待添加</h3>” <h3></h3>都作为普通字符 2、中间可以出现任意字符,个数可以是0个或者多个,正则表达式可以用:.* ,“.”代表任意字符,默认模式不匹配换行,”*” 重复前面字符0个或者多个。 3、最终我们考虑结果将是:”<h3>.*</h3>” ,也可以是:”<h3>.{0,...
阅读全文
什么是正则表达式呢? 正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),它是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。几乎在各种计算机编程语言中都有用到。可以分为普通正则表达式、扩展正则表达式、高级正则表达式。普通正则表达式在linux shell中常用到,高级正则表达式语法规范,基本由perl演化而来。目前常见程序语言(php,perl,python,java,c#)都支持高级正则表达式。 我们为什么要学习正则表达式? 高级程序语言的正则表达式几乎都从perl语言发展而来,因此,语法几乎一致。你学好了,一门正则...
阅读全文
接上一篇:正则表达式(regex)错误使用导致功能漏洞 ,我们继续梳理,正则表达式错误使用,导致功能设计漏洞(bug),做web方面,需要掌握的知识很多,网站开发这项工作,在国内也就10多年,很多开发人员,都是通过:培训(自学) ->模仿->做项目 ,这样一个过程。很多就是修修改改后,就成为了web开发工程师。这行入门低,很容易上手。但是想成为大师级的,还是很不容易。需要学习,掌握的知识几十门。而对于刚刚入门同人,很多时候因为缺乏系统学习,理论支持。导致提升有些心有余而力不足啦!因此,出现这些或多或少的功能设计漏洞,是很常见的! 好了,有些跑题了,在做代码走查时候,这类漏洞也是时常出现。我们看下,下面代码: &...
阅读全文
写在前面的话 正则表达式它的强大字符串匹配功能,导致目前在各种程序语言中,都非常流行!它被用来描述或者匹配一系列符合某个句法规则的字符串。很多刚刚使用正则表达式都是从听说这个,然后在要使用时候去网上搜索。 很少人一开始就系统去学习正则表达式,从定义原理使用系统学习。因为,对应初学者觉得它太麻烦了,好多原字符。看到那么长一串字符,就很头痛。因此,也懒得去学习。一般遇到问题,直接去网上搜索。如:“邮箱正则表达式,手机号正则表达式,url正则表达式…..” ,我们发现一个很有意思现象,“怎么邮箱正则表达式可以各种各样,url正则表达式也不相同“,都出都在推荐,都说自己是正确的,到底那个是正确的呢? 从各异的正则表...
阅读全文
最近工作中,时不时有用户输入自己真实姓名,然后申请银行提款时候,遇到一些特殊字符。而输入错误,提款失败!其中最多就是少数名字,姓名中的点字符。如:某某·李四,经常有人输入:某某.李四 或 某某・李四。其中:”·・” 这2个中间点很容易输入错误。都是中间点,一个大一个细。 那一个才是中文姓名中间点呢? 作为技术开发人员,我们有办法知道,到底那个点才是中文中间分割点。因为,这些都是常见姓名字符,因此,我们只要检测下,这2个字符对应在gb2312字符集中,字符编码即可。对于计算机而言,无论多怪的字符,看起来还怎么像,其实计算机本质去区分,是按照字符在字符集中,对应编码(字符编码)来保存、传输的。 因此,...
阅读全文
最近工作中遇到个问题,就是有一些资源,不希望别人很派发的抓取,这样会占用我们带宽还有资源。因此,我们对页面访问做了频率限制。这样一来,又怕搜索蜘蛛给限制了。 因此,我们有个需求,就是除了常见搜索蜘蛛,其它都要做频率限制。 工作就变成了,首先我们怎么样正确表示搜索蜘蛛。 怎么样识别搜索蜘蛛 搜索引擎基本上由最先google,和国内的baidu统一了。刚开始比较混乱,后期有很多规则协议,可以遵循。基本上一些新兴的搜索引擎在访问站点时候,都会延用google制定的一些规则。它们一般都会有特定的user-agent,但是,如果我们只通过user-agent去识别搜索蜘蛛的话,那样第三方抓取程序,都会去伪造个user-agent。变成搜索...
阅读全文
以前看了,很多框架,基本上很少使用相对路径包含。而一般很多做php web站点,喜欢用相对路径。 认为这样,无论目录放到那里。 只要跟另外目录关系一致。那么就不会出现问题。如果一个站点,一般都认为,如果用根目录,经常会改变网站地址,觉得很不方便。其实,我们从各大常见框架里面会发现,基本上都是采用是绝对路径方法。 相对路径带来问题 我们有如下结构的目录。 <web>(网站根目录)
├<a>文件夹
│ │
│ └a.php
├<b>文件夹
│ │
│ └b.php
└test.php
如果b.php 包含a.php (include(“../a/a.php”)) ,然后test.php 包含b.php (include(“b/b.php”)) ,我们发现很奇怪问题。
首先访问:b.php 可...
阅读全文