<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    佳麗斯 加厚雙人/單人秋冬被子暖冬 羊毛被芯羊毛柔絲被特價包郵 憂憂魚冬外穿打底褲女秋冬厚長褲女褲加絨加厚高腰彈力鉛筆褲靴褲 韓國代購2013新款 韓版秋冬休閑女時尚磨破口袋衛衣韓版學生裝 潮

    有時,退一步,能一口氣進幾步,只是這先退一步需要勇氣和自信。

    用心愛你,努力工作。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      70 隨筆 :: 1 文章 :: 33 評論 :: 0 Trackbacks

    2009年7月9日 #

    人的生活方式有兩種:

      第一種方式是像草一樣活著,你盡管活著,每年還在成長,但是你畢竟是一棵草,你吸收雨露陽光,但是長不大。人們可以踩過你,但是人們不會因為你的痛苦,而他產生痛苦;人們不會因為你被踩了,而來憐憫你,因為人們本身就沒有看到你。

      第二種方式是像樹一樣成長,即使我們現在什么都不是,但是只要你有樹的種子,即使被人踩到泥土中間,你依然能夠吸收泥土的養分,自己成長起來。也許兩年三 年你長不大,但是八年,十年,二十年你一定能長成參天大樹,當你長成參天大樹以后,遙遠的地方人們就能看到你,走近你,你能給人一片綠色,一片陰涼,你能 幫助別人,即使人們離開你以后回頭一看,你依然是地平線上的一道美麗風景線。

      樹活著是美麗的風景,死了依然是棟梁之才,活著死了都有用,這就是我們做人的標準和成長的標準。

      盡管每一條河流都有自己不同的生命曲線,但是每一個河流都有自己的夢想,那就是奔向大海。我們的生命,有的時候會是泥沙,你可能慢慢的就會像泥沙一樣沉淀下去。

      一旦你沉淀下去,也許你不再為了前進而努力,但是你永遠見不到陽光了。

      所以不管你現在的生命是怎樣的狀態,一定要有水的精神,像水一樣不斷的積蓄自己的力量,不斷的沖破障礙,當你發現時機不到的時候,把自己的厚度給積累起來,當有一天機會來臨的時候,你就能夠奔騰入海,成就自己的生命。

     
      ”為了不苦一輩子,定要苦過這陣子“
    posted @ 2012-01-05 14:43 王生生 閱讀(263) | 評論 (0)編輯 收藏

         摘要:  教你怎樣混社會   很多人混到現在一事無成,或自認為一事無成。還有很多人混到現在感覺很失敗,或不成功。還有很多人混到現在就覺得過得沒意思,過得很機械,過得已經不會思考和心動。我們羨慕著社會上每一個成功人士,羨慕著身邊的有錢人,羨慕著身邊每一輛呼嘯而過的名車。我們時常有這樣的念頭:他媽的,我怎么混得這么差?   是啊,我怎么會混得這么差?當年班里(周圍)不如我的那個家伙怎么現...  閱讀全文
    posted @ 2010-09-16 20:43 王生生 閱讀(802) | 評論 (0)編輯 收藏

    因一直很猶豫不想發表這些只言片語,但鑒于各種經歷、思想、所感、所悟讓我寫下以下這些文字供大家參考、指正:


    問題:今天我們為 什么不成功?


    1、首先我們沒有定義好自己的成功標準是什么(是票子、車子、房子、妻子?),不清楚自己的真正目標,是為了理想、 愛好、錢、事業、家庭、權利、欲望、還是人生價值的體現,因此我們每天依舊重復過著糊里糊涂的日子。生活是那么單調、枯燥。


    2、 我們不清楚已所之長,己所之短,完全不了解自己,到底缺什么、需補什么、擅長什么、有哪些資源,是知識、錢、關系、項目、人脈、還是時勢。我們缺乏核心競 爭力和不可替代性(即唯一性),所以我們往往不知道該做什么,不該做什么。永遠盲目著、彷徨著。


    3、我們很容易圍著別人轉、被別 人感染、而不能讓別人圍著自己轉、去感染和影響別人,所以注定了把別人的思想放進自己的腦袋,把自己的錢包放進別人的口袋,自己的命運被別人牢牢把握著, 我們的靈魂和思想早被洗竊一空,剩下的只是行尸走肉。既然如此那么我們還能指望自己成就點什么。


    4、我們習慣了膚淺的東西,看表 面的文章、百般無聊、如出一轍的電視,掛QQ、玩游戲、搓麻將、泡館子、蹲酒吧、守休閑場所、談論眾說紛紜的炒作新聞等,卻少讀了幾本有價值的書、少見了 幾個有價值的人,少給了自己幾分鐘靜夜思,嚴重缺乏看透事物本質的能力。所以我們今天被這個專家、明天被那個大師、后天還有某個名人,前后左右、上上下 下、媒體廣告、報紙、雜志、電視、網絡、輪番轟炸著,在這個混淆視聽的環境里,我們缺乏起碼的判斷力、分析力、概括力、我們往往被迷失了方向,迷失了自 我。


    5、我們缺乏勇氣和魄力,習慣了三點一線的生活,沒有了當年的匹夫之勇,不敢走回頭路和不歸路。我們覺得生活很無奈、工作很 單調,發展很受限,卻往往詹前顧后,不敢改變自己,懶于學習、不敢做領導、不敢換職位、不敢換工作、不敢創業、不敢質疑、不敢反抗、不敢發表自己的意見、 不敢主動交流、不敢創新,因此我們依舊平淡無奇、素然寡味的過平凡人的日子,因為我們人生的旅途缺乏過程、缺乏那種能夠品位真正酸、甜、苦、辣的勇氣。


    6、 我們缺乏信任、合作、資源整合,我們總在猜測和矛盾中生活,仍在學著一個人打天下。我們很少擁有真正的朋友、能幫到上忙、借的上錢、鐵的了心、有心靈感應 時常掛念的朋友、平時不燒香臨時抱佛腳,我們不太懂得相互寬容、理解、互補、平衡、分享、互利這些道理,所謂的兄弟、酒肉朋友太多,危難之中,我們可信任 的人太少、信任的程度太低、信任的成本太高、我們都在相互猜忌著,力量相互內耗著。我們找不到資源的整合點,其實不會合理利用,仍在感嘆我能點做什么,到 底怎么辦,我們認識的人層次太低,我們的胸懷太狹隘,所以很多道理,真相明白不透,我們默默的做了墊腳石而已。


    7、我們缺乏行動 力、執行力、做人、處事方法,仍在日復一日,年復一年平淡、懵懂的過日子。我們每時每刻都有美妙的想法,唯獨缺沒有做法,沒有持之以恒的信心和耐力。我們 不能時常的照鏡子,予以自醒、禪悟。


    8、我們缺乏總結力,糾正力,失敗了,還是失敗了,錯誤了,依舊錯誤著。我們的習慣依舊沒有 改變,由此養成了這種性格,最終決定了這種命運。


    9、我們不懂得編織關系網,其實關系網是網狀結構,先從你認識和了解的人開始, 然后從認識你的人開始,最后從你朋友的朋友開始,依次類推,記得要用心和以誠相待,人與人之間其實是平等的,沒有高、低、貴、賤之分(除非你真的有求于他 /她),沒有什么了不起的,注意了解他/她人背景和整合資料很重要。


    10、我們缺乏理財,常常不知道該買什么,該賣什么,什么是 收入,什么是支出,什么是負債,什么是資產,何謂投資,如何開源節流,我們忽視了細節,量變成了質變,因此我們的現金數字依然很尷尬。我們不清楚如何找 錢、掙錢、存錢、借錢、還錢、花錢。


    11、我們嚴重缺知識,基礎知識+社會知識,即學歷太低、經歷太少,缺乏不斷學習補充、虛心 請教、拜師學藝的能力


    缺乏海納百川、中西合璧、文理交融的素質、缺乏一技之長、專攻和全面,我們還是懷著陳舊的思想和笨拙的方 法,我們不敢懷疑、挑戰、創新新思維。


    12、我們早被這個燈紅酒綠、物欲橫流的世界弄得焦躁不安,不能靜下心來,反復,認真的思 考自己的人生,穩重走好自己的每一步。我們不懂得管理時間、合理利用時間、守時。以至老大涂傷悲。


    13、我們缺乏快樂感、幸福 感、安全感,人與人之間太冷漠、太現實,許多家庭支離破碎、許多交際帶著有色眼鏡,許多圈子旁人所不能及,許多婚姻夾著交易,許多愛情不是愛情,許多親情 缺乏關心、許多兄弟背后插刀、我們害怕房奴、車奴、結婚、生子、生病、失業、人情、意外、整日惶惶,我們不知道什么是快樂幸福,不知道如何尋找、不知道調 整自己的心態和位置、不明白取、舍、知足常樂、超越、分享、順其自然這些東西。


    14、我們不懂得把握時勢,不懂得政治、經濟的厲 害關系,不明白風水輪流轉、天地合一、互利互惠的道理,不明白紅海和藍海戰略,不明白水能載舟亦能覆舟、沒有絕對的朋友和絕對的敵人。不懂得順應潮流和創 造潮流,我們依舊固步自封,停滯不前。


    15、最后我們看準了方向,做好充分的準備(破斧沉舟),請立即開始行動,堅持、堅持、再 堅持!熬過了今天,明天會很美好!其間我們不斷的完善自我,調整自我。愿所有有心人能成功!天道酬勤!

    轉自 http://topic.csdn.net/u/20100609/22/9f6cb6ec-8eaf-4aa4-a0e1-fd3a9ddda88e.html
    posted @ 2010-07-06 15:46 王生生 閱讀(242) | 評論 (0)編輯 收藏

    有 人工作,有人上學,大家千萬不要錯過這篇文章,能看到這篇文章也是一種幸運,真的受益匪淺,對我有很大啟迪,這篇文章將會改變你我的一生,真的太好了,希 望與有緣人分享,也希望對有緣人有所幫助!看完之后有種“相見恨晚”的感覺,特別激動,希望大家好好的珍藏這篇文章,相信多年以后,再來看這篇文章,一定 有不同的感覺。

    圖片

            正如"打工皇帝"唐駿說:"我覺得有兩種人不 要跟別人爭利益和價值回報。第一種人就是剛剛進入企業的人,頭5年千萬不要說你能 不能多給我一點兒工資,最重要的是能在企業里學到什么,對發展是不是有利……"
           
    人總是從平坦中獲得的教益少,從磨難中獲得的教益多;從平坦中獲得的教益淺,從磨難中獲得的教益深。 一個人在年輕時經歷磨難,如能正確視之,沖出黑暗,那就是一個值得敬慕的人。最要緊的是先練好內功,畢業后這5年就是練內功的最佳時期,練好內功,才有可能在未來攀得更高。

           
    出路在哪里?出路在于思路!
      其實,沒有錢、沒有經驗、沒有閱歷、沒有社會關系,這些都不可怕。沒有錢,可以通過辛勤勞動去 賺;沒有經驗,可以通過實踐操作去總結;沒有閱歷,可以一步一步去積累;沒有社會關系,可以一點一點去編織。但是,沒有夢想、沒有思路才是最可怕的,才讓 人感到恐懼,很想逃避
    !
      人必須有一個正確的方向。無論你多么意氣風發,無論你是多么足智多謀,無論你花費了多大的心血, 如果沒有一個明確的方向,就會過得很茫然,漸漸就喪失了斗志,忘卻了最初的夢想,就會走上彎路甚至不歸路,枉費了自己的聰明才智,誤了自己的青春年華。

        
    荷馬史詩《奧德賽》中有一句至理名 言:"沒有比漫無目的地徘徊更令人無法忍受的了。"畢業后這5年里的迷茫,會造 成10年后的恐慌,20年后的掙扎,甚 至一輩子的平庸。如果不能在畢業這5年盡快沖出困惑、走出迷霧,我們實在是無顏面對10年后、20年后的自己。畢業這5年里,我們既有很多的不確定,也有很多的可能性。
      畢業這5年里,我們既有很 多的待定,也有很多的決定。
    迷茫與困惑誰都會經歷,恐懼與逃避誰都曾經有過,但不要把迷茫與困惑當作可以自我放棄、甘于平庸的借口,更不要成為自怨自艾、祭奠失意的苦酒。生命需要 自己去承擔,命運更需要自己去把握。在畢業這5年里,越早找到方向,越早走出困惑,就 越容易在人生道路上取得成就、創造精彩。無頭蒼蠅找不到方向,才會四處碰壁;一個人找不到出路,才會迷茫、恐懼。
        
    生活中,面對困境,我們常常會有走投無路的感覺。不要氣餒,堅持下去,要相信年輕的人生沒有絕路,困境在前方,希望在拐角。只要我們有 了正確的思路,就一定能少走彎路,找到出路!
           
    成功的人不是贏在起點,而是贏在轉折點。
       
    不少剛剛畢業的年輕人,總是奢望馬上就能找到自己理想中的工作。然而,很多好工作是無法等來的,你必 須選擇一份工作作為歷練。職業旅程中的第一份工作,無疑是踏入社會這所大學的起點。也許你找了一份差強人意的工作,那么從這里出發,好好地沉淀自己,從這 份工作中汲取到有價值的營養,厚積薄發。千里之行,始于足下,只要出發,就有希望到達終點。

        
    起點可以相同,但是選擇了不同的拐點,終點就會大大不同!
        
    畢業這幾年,我們的生活、感情、職業 等都存在很多不確定的因素,未來也充滿了各種可能。這個時候,必須學會選擇,懂得放棄,給自己一個明確的定位,使自己穩定下來。如果你不主動定位,就會被 別人和社會"定型"
      可以這么說:一個人在畢業這5年培養起來的行為習慣,將決定他一生的高度。我們能否成功,在某種程度上取決于自己對自己的評價,這 就是定位。你給自己定位是什么,你就是什么。定位能決定人生,定位能改變命運。丑小鴨變成白天鵝,只要一雙翅膀;灰姑娘變成美公主,只要一雙水晶鞋。
       
    人的命,三 分天注定,七分靠打拼,有夢就"會紅",愛 拼才會贏。只要不把自己束縛在心靈的牢籠里,誰也束縛不了你去展翅高飛。
        
    現實情況遠非他們所想的那樣。于是, 當優越感逐漸轉為失落感甚至挫敗感時,當由堅信自己是一塊"金子"到懷疑自己是一粒"沙子"時,憤怒、迷茫、自卑就開始與日俱增。
       
    其實,應該仔細掂量一下自己,你是否真是金子?是真金,手中要有絕活,才能上要有過人之處才行。一句話:真金是要靠實力來證明的,只有 先把自己的本領修煉好了,才有資格考慮伯樂的事情
       
    每顆珍珠原本都是一粒沙子,但并不是每一粒沙子都能成為一顆珍 珠。
       
    想要卓爾不群,就要有鶴立雞群的資本。忍受不了打擊和挫折,承受不住忽視和平淡,就很難達到輝煌。年輕人要想讓自己得到重用,取得成 功,就必須把自己從一粒沙子變成一顆價值連城的珍珠。
           
    天有下雨與日出,人生高峰與低谷。
           
    莫為浮云遮望眼,風物長宜放眼量。

    只要拂去陰霾,就能亮出 朗朗晴空。如果你在工作上有些不如意,要相信自己不會一直處于人生的低谷期,總有一天能沖破重重云層。告訴自己:我并沒有失敗,只是暫時沒有成功!只要在 內心點亮一盞希望之燈,一定能驅散黑暗中的陰霾,迎來光明。
        
    的確,論資歷,他們是 不折不扣的職場菜鳥,業務涉及不深,人脈一窮二白,在工作中經常碰壁。他們的壓力并不一定都像千鈞大石,而是像大雨來臨前的天色,灰色低沉,明明有空間, 卻被灰色填滿每個縫隙,只能等待大雨傾盆之后的晴空。
      "起得比雞早,睡得比狗 晚,干得比驢多,吃得比豬差。"這是很多剛剛畢業的人喜 歡用來調侃自己生活狀態的話。雖然有點兒夸張,但是,他們中的很多人的確一直都被灰色心情所籠罩--心里永遠是多云轉陰。記得有位哲人曾說:"我們的痛苦不是問題本身帶來的,而是我們對這些問題的看法產生的。"換個角度看人生,是一種突破、一種解脫、一種超越、一種高層次的淡泊與寧 靜,從而獲得自由自在的快樂。
        
    一位哲人說:"人生就是一連串的抉擇,每個人的前途與命運,完全把握在自己手中,只要努 力,終會有成。"就業也好,擇業也罷,創 業亦如此,只要奮發努力,都會成功。你是不是準備把生命的承諾全部都交給別人?
      畢業后這5年,是改變自己命運的黃金時期。在最能決定自己命運時,如果還不把握,那你 還要等到什么時候呢?我的人生我做主,命運由己不由人。
      不要活在別人的 嘴里,不要活在別人的眼里,而是把命運握在自己手里。
      別說你沒有背景, 自己就是最大的背景。美國作家杰克·凱魯亞克說過一句話:"我還年輕,我渴望上 路。"在人生的旅途中,我們永 遠都是年輕人,每天都應該滿懷渴望。每個人的潛能都是無限的,關鍵是要發現自己的潛能和正確認識自己的才能,并找到一個能充分發揮潛能的舞臺,而不能只為 舞臺的不合適感到不快。要客觀公正地看待自己的能力,結合自己的實際情況和愛好冷靜選擇,盡可能到最需要自己、最適合自己的地方。
         在人力資源管理界,特別流行一個說法,即"騎馬,牽牛,趕豬,打狗"理論:人品很好,能力又很強的,是千里馬,我們要騎著他;人品很好但能力普 通的,是老黃牛,我們要牽著他;人品、能力皆普通的,就是"",我們要趕走他;人品很差能力很強的,那是"",我們要打擊他。
       
    我想,剛剛畢業幾年的 你,一樣胸懷大志,一樣想成為一匹被人賞識、馳騁沙場的千里馬吧?那么,就好好沉淀下來。低就一層不等于低人一等,今日的俯低是為了明天的高就。所謂生命 的價值,就是我們的存在對別人有價值。能被人利用是一件好事,無人問津才是真正的悲哀!
        
    能干工作、干好工作是職場生存的基本保障。
       
    任何人做工作的前提條件都是他的能力能夠勝任這項工作。能干是合格員工最基 本的標準,肯干則是一種態度。一個職位有很多人都能勝任,都有干好這份工作的基本能力,然而,能否把工作做得更好一些,就要看是否具有踏實肯干、苦于鉆研 的工作態度了。
        
    在 能干的基礎上踏實肯干。
        工作中,活干得比別人 多,你覺得吃虧;錢拿得比別人少,你覺得吃虧;經常加班加點,你覺得吃虧……其實,沒必要這樣計較,吃虧不是災難,不是失敗,吃虧也是一種生活哲學。現在 吃點兒小虧,為成功鋪就道路,也許在未來的某個時刻,你的大福突然就來了。
        
    能吃虧是做人的一種境界,是處世的一種睿智。
        
    在工作中并不是多做事 或多幫別人干點兒活就是吃虧。如果領導讓你加加班、趕趕任務,別以為自己吃了大虧,反而應該感到慶幸,因為領導只叫了你,而沒叫其他人,說明他信任你、賞 識你。吃虧是一種貢獻,你貢獻得越多,得到的回報也就越多。樂于加班,就是這樣的一種吃虧。
       
    舍 得舍得,有舍才有得;學會在適當時吃些虧的人絕對不是弱智,而是大智。
      給別人留余地就是給自己留余地,予人方便就是予己方便,善待別人就是善 待自己。
      傻人有傻福,因為 傻人沒有心計。和這樣的人在一起,身心放松,沒有太多警惕,就能相互靠近。傻在很多時候意味著執著和忠貞,也意味著寬厚和誠實,讓人不知不覺站到他一邊。 傻人無意中得到的,比聰明人費盡心機得到的還多。畢業這幾年,你的天空中只飄著幾片雪花,這樣你就滿足了嗎?成功需要堅持與積累,與其專注于搜集雪花,不 如省下力氣去滾雪球。巴菲特說:"人生就像滾雪球,最重要 的是發現很濕的雪和很長的坡。"讓自己沉淀下來,學著發 現"很濕的雪",努力尋找"很長的坡"。記住:散落的雪花會很快融化,化為烏有,只有雪球才更實在,才能長久。
    在畢業這幾年里,你要是 能做到比別人多付出一分努力,就意味著比別人多積累一分資本,就比別人多一次成功的機會。
        
    什么是職業化呢?職業化就是工作狀態的標準化、規范化、制度化,即在合適的時間、合適的地點用合適的方 式說合適的話、做合適的事,使知識、技能、觀念、思維、態度、心理等符合職業規范和標準。"在每個行業里,都有很 多出色的人才,他們之所以能存在,是因為比別人更努力、更智慧、更成熟。但是,最重要的是,他們比一般人更加職業化!這就是為什么我現在能當你老板的原 因。一個人僅僅專業化是不夠的,只有職業化的人才能飛在別人前面,讓人難以超越!"不要以為我們現在已經 生存得很安穩了。對于畢業5年的人來講,一定要認清 即將面臨的五大挑戰。

    一、贍養父母。
    二、結婚生子。
    三、升職加薪。
    四、工作壓力。
    五、生活質量。
        
    有的人為生存而雀躍,目 光總是停在身后,三天打魚兩天曬網,有始無終。
       有的人為發展而奮斗, 目光總是盯在正前方,每天進步一點點,堅持不懈。
      畢業這幾年,不能沒有追求和探索,不能沒有理想和目標。人生如逆水行舟,不進則退。甘于現狀的生活就是不再前行 的船,再也無法追上時代前進的步伐。一定要抓緊每一秒鐘的時間來學習,要明白學習不是學生的專利。小聰明的人最得意的是:自己做過什么?大智慧的人最渴望 的是:自己還要做什么?
      小聰明是戰術,大智慧是戰略;小聰明看到的是芝麻,大智慧看到的是西瓜。
      在這個世界上,既 有大人物,也有小角色,大人物有大人物的活法,小人物有小人物的瀟灑,每個人都有自己的生活方式,誰也勉強不了誰。但是,小聰明只能有小成績和小視野,大 智慧才能有大成就和大境界。小企業看老板,中企業看制度,大企業看文化。
        
    小公司與大企業都有生 存之道,沒有好壞之分,但對一個人不同階段的影響會不同。
      小公司肯定想要發展為大企業,這是一種目標,年輕人也要給自己的職業生 涯制定目標。畢業幾年的你,是否經常會怯場或者是感到沒有底氣?居安思危絕對不是危言聳聽!此刻打盹,你將做夢;此刻學習,你將圓夢。在競爭激烈的人生戰 場上,打盹的都是輸家!
      
    每個人在年輕的時候似乎 都豪情萬丈,什么都不怕,可是隨著年齡的增長,每天想著房子、工作、養家糊口這些俗事兒,再也沒有年輕時那種敢于"上天探星、下海撈月"的勇氣了。是我們改變了生活,還是生活改變了我們?我們的思想越來越復雜, 因為有了越來越多的舍不得、越來越多的顧慮,我們總是在徘徊、總是在猶豫。畢業開始一兩年,生活的重擔會壓得我們喘不過氣來,挫折和障礙堵住四面八方的通 口,我們往往在壓迫得自己發揮出潛能后,才能殺出重圍,找到出路。可是兩三年后,身上的重擔開始減輕,工作開始一帆風順,我們就松懈了下來,漸漸忘記了潛 在的危險。直到有一天危機突然降臨,我們在手足無措中被擊敗……畢業這幾年,仍然處于危險期,一定要有居安思危的意識,好好打拼,這樣才能有一個真正的安 全人生!
        
    生 于憂患,死于安樂。如果你想跨越自己目前的成就,就不能畫地自限,而是要勇于接受挑戰。對畏畏縮縮的人來說,真正的危險正在于不敢冒 險!
       
    年輕人在社會的重壓下, 適應能力已變得越來越強,只是他們不自覺地習慣被環境推著走。他們不敢冒險,怕給自己帶來終身的遺憾,于是告慰自己:"我對得起自己、對得起家人,因為我已竭盡全力。"其實,人只有不斷挑戰和突破才能逐漸成長。長期固守于已有的安全感中,就會 像溫水里的青蛙一樣,最終失去跳躍的本能。
        
    經歷了這幾年社會生 活,你應該明白:這個世界上有富也有貧,有陰也有亮,有丑也有美,到底看到什么,取決于自己是積極 還是消極。在年輕時學會勤勉地工作,用一種光明的思維對待生活,那么,只要張開手掌,你就會發現,里面有一片燦爛的人生。
        把感恩刻在石頭上,深深地感謝別人幫助過你,永遠銘記,這是人生應有的一種 境界;把仇恨寫在沙灘上,淡淡忘掉別人傷害過你,學會寬容,讓所有的怨恨隨著潮水一去不復返,這也是一種人生境界。
       
    學 會倒出水,才能裝下更多的水。從畢業那天開始,學會把每天都當成一個新的起點,每一次工作都從零開始。如果你懂得把"歸零"當成一種生活的常態, 當成一種優秀的延續,當成一種時刻要做的事情,那么,經過短短幾年,你就可以完成自己職業生涯的正確規劃與全面超越。
      在職業起步的短短道 路上,想要得到更好、更快、更有益的成長,就必須以歸零思維來面對這個世界。不要以大學里的清高來標榜自己,不要覺得自己特別優秀,而是要把自己的姿態放 下,把自己的身架放低,讓自己沉淀下來,抱著學習的態度去適應環境、接受挑戰。放下"身段"才能提高身價,暫時的俯低終會促成未來的高就。
      年輕人從校園或者從 一個環境進入一個新環境,就要勇于將原來環境里熟悉、習慣、喜歡的東西放下,然后從零開始。我們想在職場上獲得成功,首先就要培養適應力。從自然人轉化為 單位人是融入職場的基本條件。一個人起點低并不可怕,怕的是境界低。越計較自我,便越沒有發展前景;相反,越是主動付出,那么他就越會快速發展。很多今天 取得一定成就的人,在職業生涯的初期都是從零開始,把自己沉淀再沉淀、倒空再倒空、歸零再歸零,正因為這樣,他們的人生才一路高歌,一路飛揚。
      在畢業這幾年里,我 們要讓過去歸零,才不會成為職場上那只背著重殼爬行的蝸牛,才能像天空中的鳥兒那樣輕盈地飛翔。請好好品味一下杰克·韋爾奇說過的一句話:"糾正自己的行為,認清自己,從零開始,你將重新走上職場坦途。" 吐故才能納新,心靜才能身涼,有舍才能有得,杯空才能水滿,放下才能超 越。
       
    歸零思維五大表現:心中無我,眼中無錢,念中無他,朝中無人,學無止境。
        年輕人難免帶著幾分傲氣,認為自己無所不能、所向披靡,其實不然,初入職場 的新人還是個"嬰兒",正處在從爬到走的成長階段。在畢業這幾年里,一定要讓自己逐步培養起學徒 思維、海綿思維、空杯思維,具有這樣思維的人心靈總是敞開的,能隨時接受啟示和一切能激發靈感的東西,他們時刻都能感受到成功女神的召喚.

    posted @ 2010-03-29 13:30 王生生 閱讀(399) | 評論 (0)編輯 收藏

    Memcache函數庫是在PECL(PHP Extension Community Library)中,
    主要作用是搭建大容量的內存數據的臨時存放區域,
    在分布式的時候作用體現的非常明顯,否則不建議使用。以下為幾個例子,都很簡單。

    <?php
    $memcache = new Memcache;
    $memcache->connect('localhost', 11211) or die ("Could
    not connect");
    $version = $memcache->getVersion();
    echo "Server's version: ".$version." ";
    ?>

    <?php
    $memcache = new Memcache; $memcache->connect('localhost', 11211) or die ("Could not connect");
    print_r($memcache->getStats());
    /** * Array * ( * [pid] => 8052 * [uptime] => 9205 * [time] => 1205898428 * [version] => 1.2.5 * [pointer_size] => 32 * [rusage_user] => 0.008000 * [rusage_system] => 0.000000 * [curr_items] => 1 * [total_items] => 17 * [bytes] => 57 * [curr_connections] => 2 * [total_connections] => 15 * [connection_structures] => 3 * [cmd_get] => 9 * [cmd_set] => 23 * [get_hits] => 5 * [get_misses] => 4 * [evictions] => 0 * [bytes_read] => 671 * [bytes_written] => 850 * [limit_maxbytes] => 10485760 * [threads] => 1 * ) */
    ?>

    <?php
    $memcache = new Memcache;
    $memcache->connect('localhost', 11211) or die ("Could not connect");
    $memcache->set( 'name', 'leo', 0, 30);
    if(!$memcache->add( 'name', 'susan', 0, 30)){
     echo 'susan is exist';
    };
    $memcache->replace( 'name', 'lion', 0, 300);
    echo $memcache->get( 'name');
    $memcache->delete( 'name', 5);
    ?>

    <?php
    function _callback_memcache_failure($host, $port) {
     print "memcache '$host:$port' failed";
    }
    $memcache = new Memcache;
    $memcache->addServer('192.168.1.116', 11211);
    $memcache->setServerParams('192.168.1.116', 11211, 1, 15, true,'_callback_memcache_failure');
    echo $memcache->getServerStatus('192.168.1.116', 11211);
    ?>


    <?php
    $memcache = new Memcache;
    $memcache->connect('localhost', 11211);
    $memcache->set('test_item', 8);
    $memcache->increment('test_item', 4);
    echo $memcache->decrement('test_item', 7);
    // 顯示 5
    ?>

    Memcach方法說明:
    01.Memcache::add — 添加一個值,如果已經存在,則返回false
    02.Memcache::addServer — 添加一個可供使用的服務器地址
    03.Memcache::close — 關閉一個Memcache對象
    04.Memcache::connect — 創建一個Memcache對象
    05.memcache_debug — 控制調試功能
    06.Memcache::decrement — 對保存的某個key中的值進行減法操作
    07.Memcache::delete — 刪除一個key值
    08.Memcache::flush — 清除所有緩存的數據
    09.Memcache::get — 獲取一個key值
    10.Memcache::getExtendedStats — 獲取進程池中所有進程的運行系統統計
    11.Memcache::getServerStatus — 獲取運行服務器的參數
    12.Memcache::getStats — 返回服務器的一些運行統計信息
    13.Memcache::getVersion — 返回運行的Memcache的版本信息
    14.Memcache::increment — 對保存的某個key中的值進行加法操作
    15.Memcache::pconnect — 創建一個Memcache的持久連接對象
    16.Memcache::replace — R對一個已有的key進行覆寫操作
    17.Memcache::set — 添加一個值,如果已經存在,則覆寫
    18.Memcache::setCompressThreshold — 對大于某一大小的數據進行壓縮
    19.Memcache::setServerParams — 在運行時修改服務器的參數


    posted @ 2010-03-23 11:11 王生生 閱讀(453) | 評論 (0)編輯 收藏

    必須掌握的八個cmd 命令 

    一,ping    

      它是用來檢查網絡是否通暢或者網絡連接速度的命令。作為一個生活在網絡上的管理員或者黑客來說,ping命令是第一個必須掌握的DOS命令,它 所利用的原理是這樣的:網絡上的機器都有唯一確定的IP地址,我們給目標IP地址發送一個數據包,對方就要返回一個同樣大小的數據包,根據返回的數據包我 們可以確定目標主機的存在,可以初步判斷目標主機的操作系統等。下面就來看看它的一些常用的操作。先看看幫助吧,在DOS窗口中鍵入:ping /? 回車,。所示的幫助畫面。在此,我們只掌握一些基本的很有用的參數就可以了(下同)。    

      -t 表示將不間斷向目標IP發送數據包,直到我們強迫其停止。試想,如果你使用100M的寬帶接入,而目標IP是56K的小貓,那么要不了多久,目標IP就因為承受不了這么多的數據而掉線,呵呵,一次攻擊就這么簡單的實現了。    

      -l 定義發送數據包的大小,默認為32字節,我們利用它可以最大定義到65500字節。結合上面介紹的-t參數一起使用,會有更好的效果哦。    

      -n 定義向目標IP發送數據包的次數,默認為3次。如果網絡速度比較慢,3次對我們來說也浪費了不少時間,因為現在我們的目的僅僅是判斷目標IP是否存在,那么就定義為一次吧。    

      說明一下,如果-t 參數和 -n參數一起使用,ping命令就以放在后面的參數為標準,比如"ping IP -t -n 3",雖然使用了-t參數,但并不是一直ping下去,而是只ping 3次。另外,ping命令不一定非得ping IP,也可以直接ping主機域名,這樣就可以得到主機的IP。    

      下面我們舉個例子來說明一下具體用法。    

      這里time=2表示從發出數據包到接受到返回數據包所用的時間是2秒,從這里可以判斷網絡連接速度的大小。從TTL的返回值可以初步判斷被ping主機的操作系統,之所以說"初步判斷"是因為這個值是可以修改的。這里TTL=32表示操作系統可能是 win98。 

      (小知識:如果TTL=128,則表示目標主機可能是Win2000;如果TTL=250,則目標主機可能是Unix) 

      至于利用ping命令可以快速查找局域網故障,可以快速搜索最快的QQ服務器,可以對別人進行ping攻擊……這些就靠大家自己發揮了。    

    二,nbtstat    

      該命令使用TCP/IP上的NetBIOS顯示協議統計和當前TCP/IP連接,使用這個命令你可以得到遠程主機的NETBIOS信息,比如用戶名、所屬的工作組、網卡的MAC地址等。在此我們就有必要了解幾個基本的參數。    

      -a 使用這個參數,只要你知道了遠程主機的機器名稱,就可以得到它的NETBIOS信息(下同)。    

      -A 這個參數也可以得到遠程主機的NETBIOS信息,但需要你知道它的IP。 

      -n 列出本地機器的NETBIOS信息。    

      當得到了對方的IP或者機器名的時候,就可以使用nbtstat命令來進一步得到對方的信息了,這又增加了我們入侵的保險系數。    

    三,netstat 

      這是一個用來查看網絡狀態的命令,操作簡便功能強大。    

      -a 查看本地機器的所有開放端口,可以有效發現和預防木馬,可以知道機器所開的服務等信息,如圖4。    

      這里可以看出本地機器開放有FTP服務、Telnet服務、郵件服務、WEB服務等。用法:netstat -a IP。 

      -r 列出當前的路由信息,告訴我們本地機器的網關、子網掩碼等信息。用法:netstat -r IP。 

    四,tracert 

      跟蹤路由信息,使用此命令可以查出數據從本地機器傳輸到目標主機所經過的所有途徑,這對我們了解網絡布局和結構很有幫助。如圖5。    

      這里說明數據從本地機器傳輸到192.168.0.1的機器上,中間沒有經過任何中轉,說明這兩臺機器是在同一段局域網內。用法:tracert IP。    

    五,net    

      這個命令是網絡命令中最重要的一個,必須透徹掌握它的每一個子命令的用法,因為它的功能實在是太強大了,這簡直就是 微軟為我們提供的最好的入侵工具。首先讓我們來看一看它都有那些子命令,鍵入net /?回車如圖6。 

      在這里,我們重點掌握幾個入侵常用的子命令。    

      net view    

      使用此命令查看遠程主機的所以共享資源。命令格式為net view \IP。   

      net use 

      把遠程主機的某個共享資源影射為本地盤符,圖形界面方便使用,呵呵。命令格式為net use x: \IP\sharename。上面一個表示把192.168.0.5IP的共享名為magic的目錄影射為本地的Z盤。下面表示和192.168.0.7 建立IPC$連接(net use \IP\IPC$ "password" /user:"name"),    

      建立了IPC$連接后,呵呵,就可以上傳文件了:copy nc.exe \192.168.0.7\admin$,表示把本地目錄下的nc.exe傳到遠程主機,結合后面要介紹到的其他DOS命令就可以實現入侵了。    

      net start 

      使用它來啟動遠程主機上的服務。當你和遠程主機建立連接后,如果發現它的什么服務沒有啟動,而你又想利用此服務怎么辦?就使用這個命令來啟動吧。用法:net start servername,如圖9,成功啟動了telnet服務。    

      net stop 

      入侵后發現遠程主機的某個服務礙手礙腳,怎么辦?利用這個命令停掉就ok了,用法和net start同。    

      net user 

      查看和帳戶有關的情況,包括新建帳戶、刪除帳戶、查看特定帳戶、激活帳戶、帳戶禁用等。這對我們入侵是很有利的,最重要的,它為我們克隆帳戶提供了前提。鍵入不帶參數的net user,可以查看所有用戶,包括已經禁用的。下面分別講解。 

      1,net user abcd 1234 /add,新建一個用戶名為abcd,密碼為1234的帳戶,默認為user組成員。 

      2,net user abcd /del,將用戶名為abcd的用戶刪除。 

      3,net user abcd /active:no,將用戶名為abcd的用戶禁用。 

      4,net user abcd /active:yes,激活用戶名為abcd的用戶。 

      5,net user abcd,查看用戶名為abcd的用戶的情況   

      net localgroup 

      查看所有和用戶組有關的信息和進行相關操作。鍵入不帶參數的net localgroup即列出當前所有的用戶組。在入侵過程中,我們一般利用它來把某個帳戶提升為administrator組帳戶,這樣我們利用這個帳戶 就可以控制整個遠程主機了。用法:net localgroup groupname username /add。    

      現在我們把剛才新建的用戶abcd加到administrator組里去了,這時候abcd用戶已經是超級管理員了,呵呵,你可以再使用net user abcd來查看他的狀態,和圖10進行比較就可以看出來。但這樣太明顯了,網管一看用戶情況就能漏出破綻,所以這種方法只能對付菜鳥網管,但我們還得知 道。現在的手段都是利用其他工具和手段克隆一個讓網管看不出來的超級管理員,這是后話。有興趣的朋友可以參照《黑客防線》第30期上的《由淺入深解析隆帳 戶》一文。    

      net time 

      這個命令可以查看遠程主機當前的時間。如果你的目標只是進入到遠程主機里面,那么也許就用不到這個命令了。但簡單的入侵成功了,難道只是看看 嗎?我們需要進一步滲透。這就連遠程主機當前的時間都需要知道,因為利用時間和其他手段(后面會講到)可以實現某個命令和程序的定時啟動,為我們進一步入 侵打好基礎。用法:net time \IP。    

    六,at 

    這個命令的作用是安排在特定日期或時間執行某個特定的命令和程序(知道net time的重要了吧?)。當我們知道了遠程主機的當前時間,就可以利用此命令讓其在以后的某個時間(比如2分鐘后)執行某個程序和命令。用法:at time command \computer。    

      表示在6點55分時,讓名稱為a-01的計算機開啟telnet服務(這里net start telnet即為開啟telnet服務的命令)。    

    七,ftp    

      大家對這個命令應該比較熟悉了吧?網絡上開放的ftp的主機很多,其中很大一部分是匿名的,也就是說任何人都可以登陸上去。現在如果你掃到了一 臺開放 ftp服務的主機(一般都是開了21端口的機器),如果你還不會使用ftp的命令怎么辦?下面就給出基本的ftp命令使用方法。 

      首先在命令行鍵入ftp回車,出現ftp的提示符,這時候可以鍵入"help"來查看幫助(任何DOS命令都可以使用此方法查看其幫助)。    

      大家可能看到了,這么多命令該怎么用?其實也用不到那么多,掌握幾個基本的就夠了。    

      首先是登陸過程,這就要用到open了,直接在ftp的提示符下輸入"open 主機IP ftp端口"回車即可,一般端口默認都是21,可以不寫。接著就是輸入合法的用戶名和密碼進行登陸了,這里以匿名ftp為例介紹。    

      用戶名和密碼都是ftp,密碼是不顯示的。當提示**** logged in時,就說明登陸成功。這里因為是匿名登陸,所以用戶顯示為Anonymous。    

      接下來就要介紹具體命令的使用方法了。    

      dir 跟DOS命令一樣,用于查看服務器的文件,直接敲上dir回車,就可以看到此ftp服務器上的文件。 

      cd 進入某個文件夾。 

      get 下載文件到本地機器。 

      put 上傳文件到遠程服務器。這就要看遠程ftp服務器是否給了你可寫的權限了,如果可以,呵呵,該怎么 利用就不多說了,大家就自由發揮去吧。 

      delete 刪除遠程ftp服務器上的文件。這也必須保證你有可寫的權限。 

      bye 退出當前連接。 

      quit 同上。 

    八,telnet 

      功能強大的遠程登陸命令,幾乎所有的入侵者都喜歡用它,屢試不爽。為什么?它操作簡單,如同使用自己的機器一樣,只要你熟悉DOS命令,在成功 以 administrator身份連接了遠程機器后,就可以用它來干你想干的一切了。下面介紹一下使用方法,首先鍵入telnet回車,再鍵入help查看 其幫助信息。    

      然后在提示符下鍵入open IP回車,這時就出現了登陸窗口,讓你輸入合法的用戶名和密碼,這里輸入任何密碼都是不顯示的。    

      當輸入用戶名和密碼都正確后就成功建立了telnet連接,這時候你就在遠程主機上具有了和此用戶一樣的權限,利用DOS命令就可以實現你想干的事情了。這里我使用的超級管理員權限登陸的。   

      到這里為止,網絡DOS命令的介紹就告一段落了,這里介紹的目的只是給菜鳥網管一個印象,讓其知道熟悉和掌握網絡DOS命令的重要性。其實和網 絡有關的DOS命令還遠不止這些,這里只是拋磚引玉,希望能對廣大菜鳥網管有所幫助。學好DOS對當好網管有很大的幫助,特別的熟練掌握了一些網絡的 DOS命令。 

      另外大家應該清楚,任何人要想進入系統,必須得有一個合法的用戶名和密碼(輸入法漏洞差不多絕跡了吧),哪怕你拿到帳戶的只有一個很小的權限,你也可以利用它來達到最后的目的。所以堅決消滅空口令,給自己的帳戶加上一個強壯的密碼,是最好的防御弱口令入侵的方法。 

      最后,由衷的說一句,培養良好的安全意識才是最重要的。 

    ========================================= 

    開始→運行→命令集錦 

    winver---------檢查Windows版本 

    wmimgmt.msc----打開windows管理體系結構(WMI) 

    wupdmgr--------windows更新程序 

    wscript--------windows腳本宿主設置 

    write----------寫字板 

    winmsd---------系統信息 

    wiaacmgr-------掃描儀和照相機向導 

    winchat--------XP自帶局域網聊天 

    mem.exe--------顯示內存使用情況 

    Msconfig.exe---系統配置實用程序 

    mplayer2-------簡易widnows media player 

    mspaint--------畫圖板 

    mstsc----------遠程桌面連接 

    mplayer2-------媒體播放機 

    magnify--------放大鏡實用程序 

    mmc------------打開控制臺 

    mobsync--------同步命令 

    dxdiag---------檢查DirectX信息 

    drwtsn32------ 系統醫生 

    devmgmt.msc--- 設備管理器 

    dfrg.msc-------磁盤碎片整理程序 

    diskmgmt.msc---磁盤管理實用程序 

    dcomcnfg-------打開系統組件服務 

    ddeshare-------打開DDE共享設置 

    dvdplay--------DVD播放器 

    net stop messenger-----停止信使服務 

    net start messenger----開始信使服務 

    notepad--------打開記事本 

    nslookup-------網絡管理的工具向導 

    ntbackup-------系統備份和還原 

    narrator-------屏幕"講述人" 

    ntmsmgr.msc----移動存儲管理器 

    ntmsoprq.msc---移動存儲管理員操作請求 

    netstat -an----(TC)命令檢查接口 

    syncapp--------創建一個公文包 

    sysedit--------系統配置編輯器 

    sigverif-------文件簽名驗證程序 

    sndrec32-------錄音機 

    shrpubw--------創建共享文件夾 

    secpol.msc-----本地安全策略 

    syskey---------系統加密,一旦加密就不能解開,保護windows xp系統的雙重密碼 

    services.msc---本地服務設置 

    Sndvol32-------音量控制程序 

    sfc.exe--------系統文件檢查器 

    sfc /scannow---windows文件保護 

    tsshutdn-------60秒倒計時關機命令 

    tourstart------xp簡介(安裝完成后出現的漫游xp程序) 

    taskmgr--------任務管理器 

    eventvwr-------事件查看器 

    eudcedit-------造字程序 

    explorer-------打開資源管理器 

    packager-------對象包裝程序 

    perfmon.msc----計算機性能監測程序 

    progman--------程序管理器 

    regedit.exe----注冊表 

    rsop.msc-------組策略結果集 

    regedt32-------注冊表編輯器 

    rononce -p ----15秒關機 

    regsvr32 /u *.dll----停止dll文件運行 

    regsvr32 /u zipfldr.dll------取消ZIP支持 

    cmd.exe--------CMD命令提示符 

    chkdsk.exe-----Chkdsk磁盤檢查 

    certmgr.msc----證書管理實用程序 

    calc-----------啟動計算器 

    charmap--------啟動字符映射表 

    cliconfg-------SQL SERVER 客戶端網絡實用程序 

    Clipbrd--------剪貼板查看器 

    conf-----------啟動netmeeting 

    compmgmt.msc---計算機管理 

    cleanmgr-------垃圾整理 

    ciadv.msc------索引服務程序 

    osk------------打開屏幕鍵盤 

    odbcad32-------ODBC數據源管理器 

    oobe/msoobe /a----檢查XP是否激活 

    lusrmgr.msc----本機用戶和組 

    logoff---------注銷命令 

    iexpress-------木馬捆綁工具,系統自帶 

    Nslookup-------IP地址偵測器 

    fsmgmt.msc-----共享文件夾管理器 

    utilman--------輔助工具管理器 

    gpedit.msc-----組策略


    轉自 http://blog.csdn.net/ccsbb/archive/2010/01/27/5261954.aspx

    posted @ 2010-02-01 11:35 王生生 閱讀(430) | 評論 (0)編輯 收藏

    mysql> UPDATE EACONTACTGROUPS A

    SET GROUPNAME=(SELECT CONCAT(B.GROUPNAME,'-',A.GROUPNAME) FROM EACONTACTGROUPS B WHERE B.CORPID=A.CORPID AND B.USERID=A.USERID AND B.GROUPID=A.PARENTGROUPID)

    WHERE A.PARENTGROUPID IS NOT NULL;

    ERROR 1093 (HY000): You can't specify target table 'A' for update in FROM clause

    上面是目前MYSQL5.0仍然有的限制,文檔中說:

  • In general, you cannot modify a table and select from the same table in a subquery. For example, this limitation applies to statements of the following forms:

    DELETE FROM t WHERE ... (SELECT ... FROM t ...);UPDATE t ... WHERE col = (SELECT ... FROM t ...);{INSERT|REPLACE} INTO t (SELECT ... FROM t ...);

    Exception: The preceding prohibition does not apply if you are using a subquery for the modified table in the

    FROM

    clause. Example:

    UPDATE t ... WHERE col = (SELECT (SELECT ... FROM t...) AS _t ...);

    Here the prohibition does not apply because a subquery in the

    FROM

    clause is materialized as a temporary table, so the relevant rows in

    t

    have already been selected by the time the update to

    t

    takes place. 依據文檔,改成下面的樣子就行了:

    mysql> UPDATE EACONTACTGROUPS A

  • SET GROUPNAME=(SELECT CONCAT(B.GROUPNAME,'-',A.GROUPNAME) FROM ( SELECT GROUPNAME,CORPID,USERID,GROUPID,PARENTGROUPID FROM EACONTACTGROUPS) B

    WHERE B.CORPID=A.CORPID AND B.USERID=A.USERID AND B.GROUPID=A.PARENTGROUPID)

    WHERE A.PARENTGROUPID IS NOT NULL;

    Query OK, 16 rows affected (0.01 sec)

    Rows matched: 16 Changed: 16 Warnings: 0

    注:今天寫一個刪除語句時找到的一點資料.解決了一個簡單的刪除語句.呵呵,以后注意了,

    原句:delete  from menu_item  where parent_id =(select menu_item_id from menu_item where menu_data like '%manageVendors%');

    修改后:delete  from menu_item  where parent_id =(select temp.menu_item_id from (select m.menu_item_id,m.menu_data from menu_item m) temp where temp.menu_data like '%manageVendors%');

    posted @ 2010-01-28 12:56 王生生 閱讀(3850) | 評論 (0)編輯 收藏

    bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )

          setcookie() 定義一個和其余的 HTTP 標頭一起發送的 cookie。和其它標頭一樣,cookie 必須在腳本的任何其它輸出之前發送(這是協議限制)。這需要將本函數的調用放到任何輸出之前,包括 <html> 和 <head> 標簽以及任何空格。如果在調用 setcookie() 之前有任何輸出,本函數將失敗并返回 FALSE。如果 setcookie() 函數成功運行,將返回 TRUE。這并不說明用戶是否接受了 cookie。

         注: 自 PHP 4 起,可以用輸出緩存來在調用本函數前輸出內容,代價是把所有向瀏覽器的輸出都緩存在服務器,直到下命令發送它們。可以在代碼中使用 ob_start() 及 ob_end_flush() 來實現這樣的功能,或者通過修改 php.ini 中的 output_buffering 配置選項來實現,也可以通過修改服務器配置文件來實現。

          除了 name 外,其它所有參數都是可選的。可以用空字符串("")替換某參數以跳過該參數。因為參數 expire 是整型,不能用空字符串掉過,可以用零(0)來代替 。下面的說明對 setcookie() 的每一個參數都進行了解釋。可以對照 Netscape cookie 規范以了解 setcookie() 的每一個參數的細節以及通過閱讀 RFC 2965 了解 HTTP cookie 的工作方式。

    1. setcookie() 參數詳解
    參數 說明 舉例
    name Cookie 的名字:   使用 $_COOKIE['cookiename'] 調用名為 cookiename 的 cookie。
    value Cookie 的值:此值保存在客戶端,不要用來保存敏感數據。   假定 name 是 'cookiename',可以通過 $_COOKIE['cookiename'] 取得其值。
    expire Cookie 過期的時間:這是個 Unix 時間戳,即從 Unix 紀元開始的秒數。換而言之,通常用 time() 函數再加上秒數來設定 cookie 的失效期。或者用 mktime()來實現。   time()+60*60*24*30 將設定 cookie 30 天后失效。如果未設定,cookie 將會在會話結束后(一般是瀏覽器關閉)失效。
    path Cookie 在服務器端的有效路徑:   如果該參數設為 '/' 的話,cookie 就在整個 domain 內有效,如果設為 '/foo/',cookie 就只在 domain 下的 /foo/ 目錄及其子目錄內有效,例如 /foo/bar/。默認值為設定 cookie 的當前目錄。
    domain 該 cookie 有效的域名:   要使 cookie 能在如 example.com 域名下的所有子域都有效的話,該參數應該設為 '.example.com'。雖然 . 并不必須的,但加上它會兼容更多的瀏覽器。如果該參數設為 www.example.com 的話,就只在 www 子域內有效。細節見 Cookie 規范中的 tail matching。
    secure 指明: cookie 是否僅通過安全的 HTTPS 連接傳送。當設成 TRUE 時,cookie 僅在安全的連接中被設置。默認值為 FALSE。   0 或 1

          當 cookie 被設置后,便可以在其它頁面通過 $_COOKIE 或 $HTTP_COOKIE_VARS 數組取得其值。需要注意的是,autoglobals 的 $_COOKIE 形式適用于 PHP 4.1.0 或更高版本。而 $HTTP_COOKIE_VARS 則從 PHP 3 起就可以使用。Cookie 的值也會被保存到 $_REQUEST 數組中。

         注: 如果 PHP 的選項 register_globals 被設為 on 的話,cookie 的值仍然會被斌到變量內。在下面的例子中,$TestCookie 會被注冊,但是仍然推薦使用 $_COOKIE 數組。

    常見缺陷:

         *       Cookies 不會在設置它的本頁生效,要測試一個 cookie 是否被成功的設定,可以在其到期之前通過另外一個頁面來訪問其值。過期時間是通過參數 expire 來設置的。可以簡單地使用 print_r($_COOKIE); 來調試現有的 cookies。

         *       Cookie 必須用和設定時的同樣的參數才能刪除。如果其值一個空字符串,或者是 FALSE,并且其它的參數都和前一次調用 setcookie 時相同,那么所指定名稱的 cookie 將會在遠程客戶端被刪除。

         *       由于把 cookie 的值設為 FALSE 會使客戶端嘗試刪除這個 cookie,所以要在 cookie 上保存 TRUE 或 FALSE 時不應該直接使用 boolean 值,而應該用 0 來表示 FALSE,用 1 來表示 TRUE

         *       可以把 cookie 的名稱設置成一個數組,但是數組 cookie 中的每個元素的值將會被單獨保存在用戶的系統中。考慮使用 explode() 函數用多個名稱和值設定一個 cookie。不推薦將 serialize() 用于此目的,因為它可能會導致一個安全漏洞。

            在 PHP 3 中,在同一個 PHP 腳本中多次使用 setcookie() 來設置 cookie,將會按照倒序的方式來分別執行,如果想要在插入另外一個 cookie 之前刪除一個 cookie,要把插入放到刪除之前。自 PHP 4 起,多次調用 setcookie() 則是按照順序來執行的。

    下面一些例子說明了如何發送 cookie:

    例子 1. setcookie() 發送例子
    $value = 'something from somewhere';

    setcookie("TestCookie", $value);
    setcookie("TestCookie", $value,time()+3600);   /* expire in 1 hour */
    setcookie("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);

    注意 cookie 中值的部分在發送的時候會被自動用 urlencode 編碼并在接收到的時候被自動解碼并把值賦給與自己同名的 cookie 變量。如果不想這樣并且在使用 PHP 5 的話,可以用 setrawcookie() 來代替。下面這個簡單的例子可以得到剛才所設定的 cookie 的值:

    <?php
    // 輸出單獨的 cookie
    echo $_COOKIE["TestCookie"];
    echo $HTTP_COOKIE_VARS["TestCookie"];

    // 另一個調試的方法就是輸出所有的 cookie
    print_r($_COOKIE);
    ?>

          要刪除 cookie 需要確保它的失效期是在過去,才能觸發瀏覽器的刪除機制。下面的例子說明了如何刪除剛才設置的 cookie:

    例子 2. setcookie() 刪除例子
    // 將過期時間設為一小時前
    setcookie("TestCookie", "", time() - 3600);
    setcookie("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);

          也可以通過在 cookie 名稱中使用數組符號來設定數組 cookie,可以設定多個 cookie 作為數組單元,在腳本提取 cookie 時所有的值都放在一個數組中:

    例子 3. setcookie() 中使用數組的例子
    <?php
    // 設定 cookie
    setcookie("cookie[three]", "cookiethree");
    setcookie("cookie[two]", "cookietwo");
    setcookie("cookie[one]", "cookieone");

    // 刷新頁面后,顯示出來
    if (isset($_COOKIE['cookie'])) {
        foreach ($_COOKIE['cookie'] as $name => $value) {
            echo "$name : $value <br />\n";
        }
    }
    ?>

    上例將輸出:

    three : cookiethree
    two : cookietwo
    one : cookieone

         注: 下面的一些 RFC 也具參考價值:RFC 2109 和 RFC 2695。

         注意 expire 參數的接受的是 Unix 時間戳,而不是日期格式 Wdy, DD-Mon-YYYY HH:MM:SS GMT,這是因為 PHP 在內部進行了轉換。

         expire 是與客戶端的時間相比較,和服務器時間可能不同。

         注: 向 Microsoft Internet Explorer 4 Service Pack 1 不能正確處理設定了 path 的 cookie。

         Netscape Communicator 4.05 及 Microsoft Internet Explorer 3.x 不能正確處理沒有設定 path 和 time 的 cookie。

    參見 header(),setrawcookie()

    posted @ 2009-12-31 16:22 王生生 閱讀(658) | 評論 (0)編輯 收藏

    方法主要有三種

    轉換函數、強制類型轉換、利用js變量弱類型轉換。

    1. 轉換函數

    js提供了parseInt()和parseFloat()兩個轉換函數。前者把值轉換成整數,后者把值轉換成浮點數。只有對String類型調用這些方法,這兩個函數才能正確運行;對其他類型返回的都是NaN(Not a Number)。

    在判斷字符串是否是數字值前,parseInt()和parseFloat()都會仔細分析該字符串。parseInt()方法首先查看位置0處的字符, 判斷它是否是個有效數字;如果不是,該方法將返回NaN,不再繼續執行其他操作。但如果該字符是有效數字,該方法將查看位置1處的字符,進行同樣的測試。 這一過程將持續到發現非有效數字的字符為止,此時parseInt()將把該字符之前的字符串轉換成數字。

    例如,如果要把字符串 "1234blue "轉換成整數,那么parseInt()將返回1234,因為當它檢測到字符b時,就會停止檢測過程。字符串中包含的數字字面量會被正確轉換為數字,因此 字符串 "0xA "會被正確轉換為數字10。不過,字符串 "22.5 "將被轉換成22,因為對于整數來說,小數點是無效字符。一些示例如下:

    parseInt("1234blue");   //returns   1234
    parseInt("0xA");   //returns   10
    parseInt("22.5");   //returns   22
    parseInt("blue");   //returns   NaN

    parseInt()方法還有基模式,可以把二進制、八進制、十六進制或其他任何進制的字符串轉換成整數。基是由parseInt()方法的第二個參數指定的,所以要解析十六進制的值,需如下調用parseInt()方法:
    parseInt("AF",   16);   //returns   175
    當然,對二進制、八進制,甚至十進制(默認模式),都可以這樣調用parseInt()方法:
    parseInt("10",   2);   //returns   2
    parseInt("10",   8);   //returns   8
    parseInt("10",   10);   //returns   10
    如果十進制數包含前導0,那么最好采用基數10,這樣才不會意外地得到八進制的值。例如:
    parseInt("010");   //returns   8
    parseInt("010",   8);   //returns   8
    parseInt("010",   10);   //returns   10
    在這段代碼中,兩行代碼都把字符串 "010 "解析成了一個數字。第一行代碼把這個字符串看作八進制的值,解析它的方式與第二行代碼(聲明基數為8)相同。最后一行代碼聲明基數為10,所以iNum3最后等于10。

    parseFloat()方法與parseInt()方法的處理方式相似,從位置0開始查看每個字符,直到找到第一個非有效的字符為止,然后把該字符之前 的字符串轉換成數字。不過,對于這個方法來說,第一個出現的小數點是有效字符。如果有兩個小數點,第二個小數點將被看作無效的,parseFloat() 方法會把這個小數點之前的字符串轉換成數字。這意味著字符串 "22.34.5 "將被解析成22.34。
    使用parseFloat()方法的另一不同之處在于,字符串必須以十進制形式表示浮點數,而不能用八進制形式或十六進制形式。該
    方法會忽略前導0,所以八進制數0908將被解析為908。對于十六進制數0xA,該方法將返回NaN,因為在浮點數中,x不是有效字符。此外,parseFloat()也沒有基模式。

    下面是使用parseFloat()方法的示例:
    parseFloat("1234blue");   //returns   1234.0
    parseFloat("0xA");   //returns   NaN
    parseFloat("22.5");   //returns   22.5
    parseFloat("22.34.5");   //returns   22.34
    parseFloat("0908");   //returns   908
    parseFloat("blue");   //returns   NaN

    2. 強制類型轉換

    還可使用強制類型轉換(type casting)處理轉換值的類型。使用強制類型轉換可以訪問特定的值,即使它是另一種類型的。
    ECMAScript中可用的3種強制類型轉換如下:
    Boolean(value)——把給定的值轉換成Boolean型;
    Number(value)——把給定的值轉換成數字(可以是整數或浮點數);
    String(value)——把給定的值轉換成字符串。
    用這三個函數之一轉換值,將創建一個新值,存放由原始值直接轉換成的值。這會造成意想不到的后果。
    當要轉換的值是至少有一個字符的字符串、非0數字或對象(下一節將討論這一點)時,Boolean()函數將返回true。如果該值是空字符串、數字0、#ff0000或null,它將返回false。

    可以用下面的代碼段測試Boolean型的強制類型轉換。

    Boolean("");   //false   –   empty   string
    Boolean("hi");   //true   –   non-empty   string
    Boolean(100);   //true   –   non-zero   number
    Boolean(null);   //false   -   null
    Boolean(0);   //false   -   zero
    Boolean(new   Object());   //true   –   object

    Number()的強制類型轉換與parseInt()和parseFloat()方法的處理方式相似,只是它轉換的是整個值,而不是部分值。還記得 嗎,parseInt()和parseFloat()方法只轉換第一個無效字符之前的字符串,因此 "4.5.6 "將被轉換為 "4.5 "。用Number()進行強制類型轉換, "4.5.6 "將返回NaN,因為整個字符串值不能轉換成數字。如果字符串值能被完整地轉換,Number()將判斷是調用parseInt()方法還是調用 parseFloat()方法。下表說明了對不同的值調用Number()方法會發生的情況:

    用  法  結  果
    Number(false)  0
    Number(true)  1
    Number(undefined) NaN
    Number(null)  0
    Number( "5.5 ")  5.5
    Number( "56 ")  56
    Number( "5.6.7 ") NaN
    Number(new   Object())  NaN
    Number(100)  100 

    最后一種強制類型轉換方法String()是最簡單的,因為它可把任何值轉換成字符串。要執行這種強制類型轉換,只需要調用作為參數傳遞進來的值的 toString()方法,即把1轉換成   "1 ",把true轉換成 "true ",把false轉換成 "false ",依此類推。強制轉換成字符串和調用toString()方法的唯一不同之處在于,對null或undefined值強制類型轉換可以生成字符串而不引 發錯誤:

    var   s1   =   String(null);   //"null"
    var   oNull   =   null;
    var   s2   =   oNull.toString();   //won’t   work,   causes   an   error

    3. 利用js變量弱類型轉換

    舉個小例子,一看,就會明白了。
    <script>
    var   str= '012.345 ';
    var   x   =   str-0;
    x   =   x*1;
    </script>

    上例利用了js的弱類型的特點,只進行了算術運算,實現了字符串到數字的類型轉換,不過這個方法還是不推薦的。

    posted @ 2009-12-21 18:20 王生生 閱讀(2300) | 評論 (0)編輯 收藏

        1、你以為最酸的感覺是吃醋嗎?不是,最酸的感覺是沒權吃醋。
    2、低頭要有勇氣,抬頭要有底氣。
    3、上天決定了誰是你的親戚,幸運的是在選擇朋友方面它給你留了余地。
    4、人生就像一杯茶,不會苦一輩子,但總會苦一陣子。
    5、不要見一個愛一個,愛的太多,你的愛就要貶值。
    6、當我們搬開別人架下的絆腳石時,也許恰恰是在為自己鋪路。  7、不是每句 “ 對不起 ” ,都能換來 “ 沒關系 ” 。
    8、世界上只有想不通的人,沒有走不通的路。
    9、地球是運動的,一個人不會永遠處在倒霉的位置。
    10、在事實面前,我們的想象力越發達,后果就越不堪設想。
    11、當別人開始說你是瘋子的時候,你離成功就不遠了 ……
    12、理想和現實總是有差距的,幸好還有差距,不然,誰還稀罕理想?  
    13、說有上輩子的人是在騙自己;說有下輩子的人是在騙別人。
    14、任何人都可以變得狠毒,只要你嘗試過嫉妒。
    15、常常告誡自己不要在一棵樹上吊死,結果 …… 在樹林里迷路了。
    16、愛情就像攥在手里的沙子,攥的越緊,流失的越快。
    17、人生有兩大悲劇:一個是得不到想要的東西,另一個是得到了不想要的東西。
    18、成熟不是心變老,而是眼淚在眼里打轉卻還保持微笑。  
    19、問候不一定要鄭重其事,但一定要真誠感人。
    20、同樣的一瓶飲料,便利店里 2 塊錢,五星飯店里 60 塊,很多的時候,一個人的價值取決于所在的位置。
    21、真壞人并不可怕,可怕的是假好人。
    22、把不忙不閑的工作做的出色,把不咸不淡的生活過得精彩。
    23、忙碌是一種幸福,讓我們沒時間體會痛苦;奔波是一種快樂,讓我們真實地感受生活;疲憊是一種享受,讓我們無暇空虛。
    24、就算不快樂也不要皺眉,因為你永遠不知道誰會愛上你的笑容。  
    25、當大部分人都在關注你飛的高不高時,只有少部分人關心你飛的累不累,這就是友情。
    26、天使之所以會飛,是因為她們把自己看得很輕 ……
    27、試金可以用火,試女人可以用金,試男人可以用女人。
    28、喜歡一個人,就是在一起很開心;愛一個人,就是即使不開心,也想在一起。
    29、幽默就是一個人想哭的時候還有笑話的興致。
    30、人之所以活得累,是因為放不下架子,撕不開面子,解不開情節。  
    31、漂亮只能為別人提供眼福,卻不一定換到幸福。
    32、美麗讓男人停下,智慧讓男人留下。
    33、如果你為自己定的所有目標都已達到,那么說明你定的目標還不夠遠大。
    34、生活可以將就,生活也可以講究。
    35、女人的眼淚是沒用的液體,但你讓女人流淚說明你很沒用。
    36、付出真心,才會得到真心,卻可能傷的徹底;保持距離,才能保護自己,卻注定永遠寂寞。
    37、說真話的最大好處就是你不必記得你都說些什么。
    38、有時候,不是對方不在乎你,而是你把對方看的太重。
    posted @ 2009-12-03 21:24 王生生 閱讀(386) | 評論 (0)編輯 收藏

         摘要: Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal";...  閱讀全文
    posted @ 2009-11-24 13:38 王生生 閱讀(258) | 評論 (0)編輯 收藏

    急事,慢慢的說;大事,清楚的說;小事,幽默的說;沒把握的事,謹慎的說; 沒發生的事,不要胡說; 做不到的事,別亂說; 傷害人的事,不能說; 討厭的事,對事不對人的說; 開心的事,看場合說; 傷心的事,不要見人就說; 別人的事,小心的說; 自己的事,聽聽自己的心怎么說; 現在的事,做了再說。
    posted @ 2009-11-22 18:39 王生生 閱讀(205) | 評論 (0)編輯 收藏

    1 echo 和 @
    回顯命令
    @                        #關閉單行回顯
    echo off                 #從下一行開始關閉回顯
    @echo off                #從本行開始關閉回顯。一般批處理第一行都是這個
    echo on                  #從下一行開始打開回顯
    echo                     #顯示當前是 echo off 狀態還是 echo on 狀態
    echo.                    #輸出一個”回車換行”,空白行
                                #(同echo, echo; echo+ echo[ echo] echo/ echo)


    2 errorlevel
    echo %errorlevel%
    每個命令運行結束,可以用這個命令行格式查看返回碼
    默認值為0,一般命令執行出錯會設 errorlevel 為1


    3 dir
    顯示文件夾內容
    dir                     #顯示當前目錄中的文件和子目錄
    dir /a                  #顯示當前目錄中的文件和子目錄,包括隱藏文件和系統文件
    dir c: /a:d             #顯示 C 盤當前目錄中的目錄
    dir c: /a:-d            #顯示 C 盤根目錄中的文件
    dir c: /b/p            #/b只顯示文件名,/p分頁顯示
    dir *.exe /s            #顯示當前目錄和子目錄里所有的.exe文件


    4 cd
    切換目錄
    cd                     #進入根目錄
    cd                      #顯示當前目錄
    cd /d d:sdk            #可以同時更改盤符和目錄


    5 md
    創建目錄
    md d:abc             #如果 d:a 不存在,將會自動創建中級目錄
    #如果命令擴展名被停用,則需要鍵入 mkdir abc。

    6 rd
    刪除目錄
    rd abc                  #刪除當前目錄里的 abc 子目錄,要求為空目錄
    rd /s/q d:temp         #刪除 d:temp 文件夾及其子文件夾和文件,/q安靜模式


    7 del
    刪除文件
    del d:test.txt         #刪除指定文件,不能是隱藏、系統、只讀文件
    del /q/a/f d:temp*.*
    刪除 d:temp 文件夾里面的所有文件,包括隱藏、只讀、系統文件,不包括子目錄
    del /q/a/f/s d:temp*.*
    刪除 d:temp 及子文件夾里面的所有文件,包括隱藏、只讀、系統文件,不包括子目錄


    8 ren
    重命名命令
    ren d:temp tmp         #支持對文件夾的重命名

    9 cls
    清屏

    10 type
    顯示文件內容
    type c:boot.ini        #顯示指定文件的內容,程序文件一般會顯示亂碼
    type *.txt              #顯示當前目錄里所有.txt文件的內容


    11 copy
    拷貝文件
    copy c:test.txt d:test.bak
    復制 c:test.txt 文件到 d: ,并重命名為 test.bak
    copy con test.txt
    從屏幕上等待輸入,按 Ctrl+Z 結束輸入,輸入內容存為test.txt文件
    con代表屏幕,prn代表打印機,nul代表空設備
    copy 1.txt + 2.txt 3.txt
    合并 1.txt 和 2.txt 的內容,保存為 3.txt 文件
    如果不指定 3.txt ,則保存到 1.txt
    copy test.txt +
    復制文件到自己,實際上是修改了文件日期


    12 title
    設置cmd窗口的標題
    title 新標題            #可以看到cmd窗口的標題欄變了


    13 ver
    顯示系統版本

    14 label 和 vol
    設置卷標
    vol                     #顯示卷標
    label                   #顯示卷標,同時提示輸入新卷標
    label c:system          #設置C盤的卷標為 system

    15 pause
    暫停命令

    16 rem 和 ::
    注釋命令
    注釋行不執行操作

    17 date 和 time
    日期和時間
    date              #顯示當前日期,并提示輸入新日期,按"回車"略過輸入
    date/t            #只顯示當前日期,不提示輸入新日期
    time              #顯示當前時間,并提示輸入新時間,按"回車"略過輸入
    time/t            #只顯示當前時間,不提示輸入新時間


    18 goto 和 :
    跳轉命令
    :label            #行首為:表示該行是標簽行,標簽行不執行操作
    goto label        #跳轉到指定的標簽那一行


    19 find (外部命令)
    查找命令
    find "abc" c:test.txt
    在 c:test.txt 文件里查找含 abc 字符串的行
    如果找不到,將設 errorlevel 返回碼為1
    find /i “abc” c:test.txt
    查找含 abc 的行,忽略大小寫
    find /c "abc" c:test.txt
    顯示含 abc 的行的行數


    20 more (外部命令)
    逐屏顯示
    more c:test.txt        #逐屏顯示 c:test.txt 的文件內容


    21 tree
    顯示目錄結構
    tree d:                #顯示D盤的文件目錄結構


    22 &
    順序執行多條命令,而不管命令是否執行成功

    23 && 和 ||
    &&順序執行多條命令,當碰到執行出錯的命令后將不執行后面的命令
    | | 順序執行多條命令,當碰到執行正確的命令后將不執行后面的命令

    find "ok" c:test.txt && echo 成功
    如果找到了"ok"字樣,就顯示"成功",找不到就不顯示

    find "ok" c:test.txt || echo 不成功
    如果找不到"ok"字樣,就顯示"不成功",找到了就不顯示

    24 |
    管道命令
    dir *.* /s/a | find /c ".exe"
    管道命令表示先執行 dir 命令,對其輸出的結果執行后面的 find 命令
    該命令行結果:輸出當前文件夾及所有子文件夾里的.exe文件的個數
    type c:test.txt|more
    這個和 more c:test.txt 的效果是一樣的


    25 > 和 >> 和 ^
    輸出重定向命令
    > 清除文件中原有的內容后再寫入
    >> 追加內容到文件末尾,而不會清除原有的內容
    主要將本來顯示在屏幕上的內容輸出到指定文件中
    指定文件如果不存在,則自動生成該文件
    type c:test.txt >prn
    屏幕上不顯示文件內容,轉向輸出到打印機
    echo hello world>con
    在屏幕上顯示hello world,實際上所有輸出都是默認 >con 的
    copy c:test.txt f: >nul
    拷貝文件,并且不顯示"文件復制成功"的提示信息,但如果f盤不存在,還是會顯示出錯信息
    copy c:test.txt f: >nul 2>nul
    不顯示”文件復制成功”的提示信息,并且f盤不存在的話,也不顯示錯誤提示信息
    ^的作用是把命令符號轉意成文本符號,它也可以轉意自己,如:
    echo ^^W ^> ^W>c:test.txt
    生成的文件內容為 ^W > W
    ^ 和 > 是控制命令,要把它們輸出到文件,必須在前面加個 ^ 符號
    set /p=^|
    |是管道命令,要顯示|,就要加^

    26 '' 和 ""
    單引號的作用是,將多個命令組成的復合語句當成一條語句
    雙引號的表示其內部內容為文本符號,它也可以連接兩個或多個以空格間隔的文本符號
    for /f "tokens=15" %%i in ('ipconfig ^| find /i "ip address"') do set ip=%%i
    ipconfig為語句一,find /i "ip address"為語句二,用單引號合為一條語句

    IF /I "%c%"=="1" ECHO %c%
    set p="I Love You!!"
    find if set

    27 <
    從文件中獲得輸入信息,而不是從屏幕上
    一般用于 date time label 等需要等待輸入的命令
    @echo off
    echo 2005-05-01>temp.txt
    date <temp.txt
    del temp.txt
    這樣就可以不等待輸入直接修改當前日期

    28 %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*
    命令行傳遞給批處理的參數
    %0 批處理文件本身
    %1 第一個參數
    %9 第九個參數
    %* 從第一個參數開始的所有參數

    批參數(%n)的替代已被增強。您可以使用以下語法:

            %~1             - 刪除引號("),擴充 %1
            %~f1            - 將 %1 擴充到一個完全合格的路徑名
            %~d1            - 僅將 %1 擴充到一個驅動器號
            %~p1            - 僅將 %1 擴充到一個路徑
            %~n1            - 僅將 %1 擴充到一個文件名
            %~x1            - 僅將 %1 擴充到一個文件擴展名
            %~s1            - 擴充的路徑指含有短名
            %~a1            - 將 %1 擴充到文件屬性
            %~t1            - 將 %1 擴充到文件的日期/時間
            %~z1            - 將 %1 擴充到文件的大小
            %~$PATH : 1 - 查找列在 PATH 環境變量的目錄,并將 %1
                          擴充到找到的第一個完全合格的名稱。如果環境
                          變量名未被定義,或者沒有找到文件,此組合鍵會
                          擴充到空字符串

    可以組合修定符來取得多重結果:

           %~dp1           - 只將 %1 擴展到驅動器號和路徑
           %~nx1           - 只將 %1 擴展到文件名和擴展名
           %~dp$PATH:1 - 在列在 PATH 環境變量中的目錄里查找 %1,
                          并擴展到找到的第一個文件的驅動器號和路徑。
           %~ftza1         - 將 %1 擴展到類似 DIR 的輸出行。
    可以參照 call/? 或 for/? 看出每個參數的含意
    echo load "%%1" "%%2">c:test.txt
    生成的文件內容為 load "%1" "%2"
    批處理文件里,用這個格式把命令行參數輸出到文件

    29 if
    判斷命令
    if "%1"=="/a" echo 第一個參數是/a
    if /i "%1" equ "/a" echo 第一個參數是/a
    /i 表示不區分大小寫,equ 和 == 是一樣的,其它運算符參見:
        EQU - 等于
        NEQ - 不等于
        LSS - 小于
        LEQ - 小于或等于
        GTR - 大于
        GEQ - 大于或等于
    if exist c:test.bat echo 存在c:test.bat文件
    if not exist c:windows (
            echo 不存在c:windows文件夾
            )
    if exist c:test.bat (
            echo 存在c:test.bat
            ) else (
            echo 不存在c:test.bat
            )

    30 setlocal 和 endlocal
    設置”命令擴展名”和”延緩環境變量擴充”
    SETLOCAL ENABLEEXTENSIONS                #啟用"命令擴展名"
    SETLOCAL DISABLEEXTENSIONS               #停用"命令擴展名"
    SETLOCAL ENABLEDELAYEDEXPANSION          #啟用"延緩環境變量擴充"
    SETLOCAL DISABLEDELAYEDEXPANSION         #停用"延緩環境變量擴充"
    ENDLOCAL                                 #恢復到使用SETLOCAL語句以前的狀態
    “命令擴展名”默認為啟用
    “延緩環境變量擴充”默認為停用
    批處理結束系統會自動恢復默認值
    可以修改注冊表以禁用"命令擴展名",詳見 cmd /? 。所以用到"命令擴展名"的程
    序,建議在開頭和結尾加上 SETLOCAL ENABLEEXTENSIONS 和 ENDLOCAL 語句,以確
    保程序能在其它系統上正確運行
    "延緩環境變量擴充"主要用于 if 和 for 的符合語句,在 set 的說明里有其實用例程

    31 set
    設置變量
    引用變量可在變量名前后加 % ,即 %變量名%
    set                        #顯示目前所有可用的變量,包括系統變量和自定義的變量
    echo %SystemDrive%         #顯示系統盤盤符。系統變量可以直接引用
    set p                      #顯示所有以p開頭的變量,要是一個也沒有就設errorlevel=1
    set p=aa1bb1aa2bb2         #設置變量p,并賦值為 = 后面的字符串,即aa1bb1aa2bb2
    echo %p%                   #顯示變量p代表的字符串,即aa1bb1aa2bb2
    echo %p:~6%                #顯示變量p中第6個字符以后的所有字符,即aa2bb2
    echo %p:~6,3%              #顯示第6個字符以后的3個字符,即aa2
    echo %p:~0,3%              #顯示前3個字符,即aa1
    echo %p:~-2%               #顯示最后面的2個字符,即b2
    echo %p:~0,-2%             #顯示除了最后2個字符以外的其它字符,即aa1bb1aa2b
    echo %p:aa=c%              #用c替換變量p中所有的aa,即顯示c1bb1c2bb2
    echo %p:aa=%               #將變量p中的所有aa字符串置換為空,即顯示1bb12bb2
    echo %p:*bb=c%             #第一個bb及其之前的所有字符被替換為c,即顯示c1aa2bb2
    set p=%p:*bb=c%            #設置變量p,賦值為 %p:*bb=c% ,即c1aa2bb2
    set /a p=39                #設置p為數值型變量,值為39
    set /a p=39/10             #支持運算符,有小數時用去尾法,39/10=3.9,去尾得3,p=3
    set /a p=p/10              #用 /a 參數時,在 = 后面的變量可以不加%直接引用
    set /a p=”1&0″             #”與”運算,要加引號。其它支持的運算符參見set/?
    set p=                     #取消p變量
    set /p p=請輸入
    屏幕上顯示”請輸入”,并會將輸入的字符串賦值給變量p
    注意這條可以用來取代 choice 命令
    注意變量在 if 和 for 的復合語句里是一次性全部替換的,如
    @echo off
    set p=aaa
    if %p%==aaa (
            echo %p%
            set p=bbb
            echo %p%
            )
    結果將顯示
    aaa
    aaa
    因為在讀取 if 語句時已經將所有 %p% 替換為aaa
    這里的"替換",在 /? 幫助里就是指"擴充"、"環境變量擴充"
    可以啟用”延緩環境變量擴充”,用 ! 來引用變量,即 !變量名!
    @echo off
    SETLOCAL ENABLEDELAYEDEXPANSION
    set p=aaa
    if %p%==aaa (
            echo %p%
            set p=bbb
            echo !p!
            )
    ENDLOCAL
    結果將顯示
    aaa
    bbb
    還有幾個動態變量,運行 set 看不到
    %CD%                      #代表當前目錄的字符串
    %DATE%                    #當前日期
    %TIME%                    #當前時間
    %RANDOM%                  #隨機整數,介于0~32767
    %ERRORLEVEL%              #當前 ERRORLEVEL 值
    %CMDEXTVERSION%           #當前命令處理器擴展名版本號
    %CMDCMDLINE%              #調用命令處理器的原始命令行
    可以用echo命令查看每個變量值,如 echo %time%
    注意 %time% 精確到毫秒,在批處理需要延時處理時可以用到

    32 start
    批處理中調用外部程序的命令,否則等外部程序完成后才繼續執行剩下的指令

    33 call
    批處理中調用另外一個批處理的命令,否則剩下的批處理指令將不會被執行
    有時有的應用程序用start調用出錯的,也可以call調用

    34 choice (外部命令)
    選擇命令
    讓用戶輸入一個字符,從而選擇運行不同的命令,返回碼errorlevel為1234……
    win98里是choice.com
    win2000pro里沒有,可以從win98里拷過來
    win2003里是choice.exe
    choice /N /C y /T 5 /D y>nul
    延時5秒


    35 assoc 和 ftype
    文件關聯
    assoc 設置'文件擴展名'關聯,關聯到'文件類型'
    ftype 設置'文件類型'關聯,關聯到'執行程序和參數'
    當你雙擊一個.txt文件時,windows并不是根據.txt直接判斷用 notepad.exe 打開
    而是先判斷.txt屬于 txtfile '文件類型'
    再調用 txtfile 關聯的命令行 txtfile=%SystemRoot%system32NOTEPAD.EXE %1
    可以在"文件夾選項"→"文件類型"里修改這2種關聯
    assoc               #顯示所有'文件擴展名'關聯
    assoc .txt          #顯示.txt代表的'文件類型',結果顯示 .txt=txtfile
    assoc .doc          #顯示.doc代表的'文件類型',結果顯示 .doc=Word.Document.8
    assoc .exe          #顯示.exe代表的'文件類型',結果顯示 .exe=exefile
    ftype               #顯示所有'文件類型'關聯
    ftype exefile       #顯示exefile類型關聯的命令行,結果顯示 exefile="%1" %*
    assoc .txt=Word.Document.8
    設置.txt為word類型的文檔,可以看到.txt文件的圖標都變了
    assoc .txt=txtfile
    恢復.txt的正確關聯
    ftype exefile="%1" %*
    恢復 exefile 的正確關聯
    如果該關聯已經被破壞,可以運行 command.com ,再輸入這條命令

    36 pushd 和 popd
    切換當前目錄
    @echo off
    c: & cd & md mp3           #在 C: 建立 mp3 文件夾
    md d:mp4                   #在 D: 建立 mp4 文件夾
    cd /d d:mp4                #更改當前目錄為 d:mp4
    pushd c:mp3                #保存當前目錄,并切換當前目錄為 c:mp3
    popd                        #恢復當前目錄為剛才保存的 d:mp4

    37 for
    循環命令
    這個比較復雜,請對照 for/? 來看
    for %%i in (c: d: e: f:) do echo %%i
    依次調用小括號里的每個字符串,執行 do 后面的命令
    注意%%i,在批處理中 for 語句調用參數用2個%
    默認的字符串分隔符是"空格鍵","Tab鍵","回車鍵"
    for %%i in (*.txt) do find "abc" %%i
    對當前目錄里所有的txt文件執行 find 命令
    for /r . %%i in (*.txt) do find "abc" %%i
    在當前目錄和子目錄里所有的.txt文件中搜索包含 abc 字符串的行
    for /r . %%i in (.) do echo %%~pni
    顯示當前目錄名和所有子目錄名,包括路徑,不包括盤符
    for /r d:mp3 %%i in (*.mp3) do echo %%i>>d:mp3.txt
    把 d:mp3 及其子目錄里的mp3文件的文件名都存到 d:mp3.txt 里去
    for /l %%i in (2,1,8) do echo %%i
    生成2345678的一串數字,2是數字序列的開頭,8是結尾,1表示每次加1
    for /f %%i in ('set') do echo %%i
    對 set 命令的輸出結果循環調用,每行一個
    for /f "eol=P" %%i in ('set') do echo %%i
    取 set 命令的輸出結果,忽略以 P 開頭的那幾行
    for /f %%i in (d:mp3.txt) do echo %%i
    顯示 d:mp3.txt 里的每個文件名,每行一個,不支持帶空格的名稱
    for /f "delims=" %%i in (d:mp3.txt) do echo %%i
    顯示 d:mp3.txt 里的每個文件名,每行一個,支持帶空格的名稱
    for /f "skip=5 tokens=4" %%a in ('dir') do echo %%a
    對 dir 命令的結果,跳過前面5行,余下的每行取第4列
    每列之間的分隔符為默認的"空格"
    可以注意到 dir 命令輸出的前5行是沒有文件名的
    for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do (
            echo %%a
            echo %%b
            echo %%c
            )
    對 date /t 的輸出結果,每行取1、2、3列
    第一列對應指定的 %%a ,后面的 %%b 和 %%c 是派生出來的,對應其它列
    分隔符指定為 - 和"空格",注意 delims=- 后面有個"空格"
    其中 tokens=1,2,3 若用 tokens=1-3 替換,效果是一樣的
    for /f "tokens=2* delims=- " %%a in ('date /t') do echo %%b
    取第2列給 %%a ,其后的列都給 %%b


    38 subst (外部命令)
    映射磁盤。
    subst z: serverd         #這樣輸入z:就可以訪問serverd了
    subst z: /d                 #取消該映射
    subst                       #顯示目前所有的映時

    39      xcopy (外部命令)
    文件拷貝
    xcopy d:mp3 e:mp3 /s/e/i/y
    復制 d:mp3 文件夾、所有子文件夾和文件到 e: ,覆蓋已有文件
    加 /i 表示如果 e: 沒有 mp3 文件夾就自動新建一個,否則會有詢問


    轉自http://blog.csdn.net/mydriverc/archive/2008/01/16/2047152.aspx

     

    posted @ 2009-11-19 09:02 王生生 閱讀(400) | 評論 (0)編輯 收藏

    人生成功第1課

    做一個終生學習的人

    離開學校并不意味著學習就結束了。

    學習可以成為一種生活方式,幫助你發揮最大的潛能。

    我們從未停止學習,總會有新的,有趣的東西等待我們去發現。

    學習新的技能可能讓人感到有一點恐懼,但每當我們在個人學習上停滯不前時,我們都需要去學習新的東西。

    積極地尋求支援和建議,突破停滯期。

    參加一些培訓,進修,夜校-任何新的興趣都將會有助于發展你的優勢。

    多看,多聽,讓你的頭腦保持活躍。活到老,學到老。

    人生成功第2課

    令自己感到沮喪的秘訣就是用空閑時間去煩惱自己是否快樂。所以不要費事去想它!摩拳擦掌干起來吧。你將熱血沸騰,你會頭腦清醒。很快,在你身體中的這種高漲的積極人生觀將把煩惱從你的頭腦中趕出去。

    行動起來,忙碌起來。這是世界上最便宜的一種藥,也是最好的一種。

    人生成功第3課

    在困境中尋找成功的希望 

    逆境是一所最好的學校。每一次失敗,每一次打擊,每一次損失,都蘊育著成功的萌芽,都教會我在下一次有更出色的表現。我再也不會逃避現實,也不會拒絕從以往的錯誤中獲取經驗,我不再因此而促成自己的失敗。因為我知道,寶玉不經磨礪就不能發光,沒有,我也不能完善自我。

    現在我知道,靈魂倍受煎熬的時刻,也正是生命中最多選擇與機會的時刻。任何事情的成敗取決于我在尋求幫助時是抬起頭還是低下頭。無論何時,當我被可怕的 失敗擊倒,在最初的陣痛過去之后,我都要想方設法將苦難變成好事。偉大的機遇就在這一刻閃現-這苦澀的根必將迎來滿園芬芳!

    我將一直在困境中尋找成功的希望。 

    人生成功第4課

    沒有人可以使你感到自卑

    我選擇自我感覺良好,這樣我能更加開放地學習。如果人們給我負面的回應或是批評我做的事情,我不會認為他們所說的就表明我是一個“差勁的”人。我堅信自尊由我掌控,這讓我毫無戒心地去聽取別人的反饋,想看看是否有我可以學習的東西。

    我們每天都有兩種選擇。我們可以感到自己很棒,也可以感到自己很差勁。難道有人會選擇后者嗎?

    人生成功第5課

    緊緊抓住夢想

    我們每個人都有夢想。我們每個人都希望能發自內心地相信自已有一種特殊的天賦,相信自己能發揮重要的作用,相信自己能以一種特殊的方式感動他人,相信自己能夠把世界變得更加美好。

    在一生中,我們都曾經對自己渴望并追求的生活品質抱有憧憬。然而,對我們大多數人來說,這些憧憬在日常生活的成規和挫敗中已經變得如此渺茫,以到于我們 甚至不再努力去實現它們。對太多人來說,夢想已經遠離,隨之遠離的還有塑造我們命運的意愿。很多人已經推動了堅定的信念,而正是堅定的信念為勝利者創造了 優勢。

    我們所要做的就是重拴夢想,并實現夢想,讓我們每個人都記住,并去運用深藏在自己身上的無限潛能。

    人生成功第6課

    毅力無法替代

    世界上沒有任何東西可以替代毅力。才干不可以,無所作為的能人十分普遍;天分不可以,碌碌無為的天才盡人皆知;教育不可以,受過良好教育的沒落者更是隨處可見。只要有毅力和決心,就是無所不能的。

    毅力并不總是意味著永遠堅持做同一件事。它意味著無論你做任何事情,你都要立刻全心投入,竭盡全力;它意味著先做艱苦的工作,再去期待隨之而來的滿足和 回報。它意味著開心地工作,渴望更多的知識和進步。它意味著多打幾個電話,多夏裝幾里路,多除草,早起床,意味著總是尋求更好的方式去做你在做的事情。毅 力就是經歷考驗和過失的成功。

    人生成功第7課

    駐足片刻聞花香

    在現代生活的忙忙碌碌中,人們很少會停下來欣賞自然的美。

    問問自己,你有多少次傾聽過鳥兒的歌唱。你最近一次抬頭仰望閃耀的星空又是在什么時候?

    時光飛逝,人生苦短。不要忘記駐足聞聞花香。我們在急于謀生的過程中,往往忽視了我們生活的品質。多少次,你聽見人們為這為那說“我忙死了。”多可惜啊!有一天,當他們真的找到時間能夠駐足片刻聞花香時,可能已經太遲了。

    人生成功第8課

    加入到微笑者和贊美者的行列來

    當你對別人,別人也會對你報以,你自然會感覺很棒。即使他有對你報以,你也會感覺很棒,因為你認識到世界上最貧窮的人就是從不微笑的人,當你對那個人微笑,你立刻變得更加富有。

    贊美也是這個道理。當你真誠地毛病抑或恭維一個人時,他將立刻受益,更喜歡自己。當你讓別人感覺更好時,你自己也會感覺更好。

    人生成功第9課

    讓自己快樂

    調查表明,我們當中70%的人在生活中時間有臨床性的抑郁現象。

    如今我們有這么多的機遇,為什么我們還這么不快樂呢?

    人們嘗試各種東西:金錢,**,事業,婚姻,離婚,酒精,搖滾甚至毒品,但我們大多數人只是想要得到一樣東西-快樂。

    快樂是人的一種自然的身心狀態;我們只要去相信快樂,讓自己感受快樂。

    要宣稱:我應當得到快樂。說出來,唱出來,喊出來。

    優先考慮快樂,讓快樂成為你最重要的事情。

    對你所擁有的一切抱以感激之情吧。

    人生成功第10課

    我擁有無與倫比的想象力   

    現在我將通過這種神奇的力量得到我想要的。如果我害怕發表演講,我就想象自己在公眾場合無所畏懼,充滿信心;如果我在病魔的煎熬,我就想象我以前健康的樣子;如果我感到貧窮,我就想象我將要富有。

    現在我明白了:人類惟一的限制就是想象力。我之所以沒有成功,原因就在于我不知道如何使用我的想象力。現在,我精通這個技巧,我將從中受益。最大的回報將是成功和愈加快樂。(摘自網絡)
    posted @ 2009-11-06 13:46 王生生 閱讀(192) | 評論 (0)編輯 收藏

        命令行下具體用法如下:  mysqldump -u用戶名 -p密碼 -d 數據庫名 表名 腳本名;

        1、導出數據庫為dbname的表結構(其中用戶名為root,密碼為dbpasswd,生成的腳本名為db.sql)
        mysqldump -uroot -pdbpasswd -d dbname >db.sql;

        2、導出數據庫為dbname某張表(test)結構
        mysqldump -uroot -pdbpasswd -d dbname test>db.sql;

        3、導出數據庫為dbname所有表結構及表數據(不加-d)
        mysqldump -uroot -pdbpasswd  dbname >db.sql;

        4、導出數據庫為dbname某張表(test)結構及表數據(不加-d)
        mysqldump -uroot -pdbpasswd dbname test>db.sql;

       

    posted @ 2009-11-06 10:14 王生生 閱讀(2891) | 評論 (0)編輯 收藏

    1.$_SERVER['HTTP_ACCEPT_LANGUAGE']//瀏覽器語言

    顯示:zh-cn

    2.$_SERVER['REMOTE_ADDR'] //當前用戶 IP 。

    顯示:127.0.0.1

    3.$_SERVER['REMOTE_HOST'] //當前用戶主機名

    顯示:

    4.$_SERVER['REQUEST_URI'] //URL

    顯示:/test.php

    5.$_SERVER['REMOTE_PORT'] //端口。

    顯示:3864

    6.$_SERVER['SERVER_NAME'] //服務器主機的名稱。

    顯示:127.0.0.1

    7.$_SERVER['PHP_SELF']//正在執行腳本的文件名

    顯示:/test.php

    8.$_SERVER['argv'] //傳遞給該腳本的參數。

    顯示:ARRAY

    9.$_SERVER['argc'] //傳遞給程序的命令行參數的個數。

    顯示:0

    10.$_SERVER['GATEWAY_INTERFACE']//CGI 規范的版本。

    顯示: CGI/1.1

    11.$_SERVER['SERVER_SOFTWARE'] //服務器標識的字串

    顯示:Apache/2.0.52 (Win32) PHP/5.2.1

    12.$_SERVER['SERVER_PROTOCOL'] //請求頁面時通信協議的名稱和版本

    顯示:HTTP/1.1

    13.$_SERVER['REQUEST_METHOD']//訪問頁面時的請求方法

    顯示:GET

    14.$_SERVER['QUERY_STRING'] //查詢(query)的字符串。

    顯示:

    15.$_SERVER['DOCUMENT_ROOT'] //當前運行腳本所在的文檔根目錄

    顯示:D:/Program Files/Apache/www

    16.$_SERVER['HTTP_ACCEPT'] //當前請求的 Accept: 頭部的內容。

    顯示:*/*

    17.$_SERVER['HTTP_ACCEPT_CHARSET'] //當前請求的 Accept-Charset: 頭部的內容。

    顯示:

    18.$_SERVER['HTTP_ACCEPT_ENCODING'] //當前請求的 Accept-Encoding: 頭部的內容

    顯示:gzip,deflate

    19.$_SERVER['HTTP_CONNECTION'] //當前請求的 Connection: 頭部的內容。例如:“Keep-Alive”。

    顯示:Keep-Alive

    20.$_SERVER['HTTP_HOST'] //當前請求的 Host: 頭部的內容。

    顯示:127.0.0.1:8080

    21.$_SERVER['HTTP_REFERER'] //鏈接到當前頁面的前一頁面的 URL 地址。

    顯示:http://127.0.0.1:8080/

    22.$_SERVER['HTTP_USER_AGENT'] //當前請求的 User_Agent: 頭部的內容。

    顯示:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

    23.$_SERVER['HTTPS']//如果通過https訪問,則被設為一個非空的值(on),否則返回off

    顯示:

    24.$_SERVER['SCRIPT_FILENAME'] #當前執行腳本的絕對路徑名。

    顯示:D:/Program Files/Apache/www/test.php

    25.$_SERVER['SERVER_ADMIN'] #管理員信息

    顯示:w@w.com

    26.$_SERVER['SERVER_PORT'] #服務器所使用的端口

    顯示:8080

    27.$_SERVER['SERVER_SIGNATURE'] #包含服務器版本和虛擬主機名的字符串。

    顯示:Apache/2.0.52 (Win32) PHP/5.2.1 Server at 10.145.40.150 Port 8080

    28.$_SERVER['PATH_TRANSLATED'] #當前腳本所在文件系統(不是文檔根目錄)的基本路徑。

    顯示:

    29.$_SERVER['SCRIPT_NAME'] #包含當前腳本的路徑。這在頁面需要指向自己時非常有用。

    顯示 :/test.php

    30.$_SERVER['PHP_AUTH_USER'] #當 PHP 運行在 Apache 模塊方式下,并且正在使用 HTTP 認證功能,這個變量便是用戶輸入的用戶名。

    顯示:

    31.$_SERVER['PHP_AUTH_PW'] #當 PHP 運行在 Apache 模塊方式下,并且正在使用 HTTP 認證功能,這個變量便是用戶輸入的密碼。

    顯示:

    32.$_SERVER['AUTH_TYPE'] #當 PHP 運行在 Apache 模塊方式下,并且正在使用 HTTP 認證功能,這個變量便是認證的類型

    posted @ 2009-11-05 09:31 王生生 閱讀(193) | 評論 (0)編輯 收藏

    將A用戶下所有的表授權給B用戶;
    sqlplus A/A
    select 'grant select,insert,update,delete on A.' || table_name || ' to B;' from user_tables;
    然后選擇上面出現的所有的語句,進入sysdba權限進行操作:
    sqlplus "/as sysdba"             
    然后執行上面的所有的語句就可以了;                 

    posted @ 2009-10-22 17:05 王生生 閱讀(1020) | 評論 (0)編輯 收藏

    page- break-before和page-break-after CSS屬性并不會修改網頁在屏幕上的顯示,這兩個屬性是用來控制文件的打印方式。每個打印屬性都可以設定4種設定值:auto、always、left和 right。其中Auto是默認值,只有在有需要時,才需設定分頁符號 (Page breaks)。page-break-before若設定成always,則是在遇到特定的組件時,打印機會重新開始一個新的打印頁。page- break-before若設定成left,則會插入分頁符號,直到指定的組件出現在一個左邊的空白頁上。page-break-before若設定成 right,則會插入分頁符號,直到指定的組件出現在一個右邊的空白頁上。page-break-after屬性會將分頁符號加在指定組件后,而非之前。 在下列程序中您將可以看到這些屬性的設定。

    <HTML>

    <HEAD>

    <TITLE>Listing 14-4</TITLE>

    </HEAD>

    <BODY>

    <DIV>This is the first DIV.</DIV>

    <DIV STYLE="page-break-before:always">This is the second DIV.</DIV>

    <DIV STYLE="page-break-after:always">This is the third DIV.</DIV>

    <DIV>This is the fourth DIV.</DIV>

    <DIV STYLE="page-break-before:right">This is the fifth DIV.</DIV>

    <DIV STYLE="page-break-after:right">This is the sixth DIV.</DIV>

    <DIV>This is the last DIV.</DIV>

    </BODY>

    </HTML>


    轉自 http://www.cnblogs.com/JustinYoung/articles/710734.html
    posted @ 2009-10-22 14:00 王生生 閱讀(354) | 評論 (0)編輯 收藏

        在開發中,經常遇到需要用去解析各類非結構化文本,像doc,xls,pdf,ppt,xml,html.
        本人在開發站內搜索時,需要加入對各類文件類型的支持,以方便建立索引。解析各類文檔調用了幾個開源的包。像dom4j-1.6.1.jar,FontBox-0.1.0-dev.jar,htmllexer.jar,htmlparser.jar,PDFBox-0.7.3.jar,poi-3.5-FINAL-20090928.jar,poi-scratchpad-3.5-FINAL-20090928.jar。這些開源的包可以讓我們很方便去解析各類非結構化文本。

    jar包的下載地址: http://www.ziddu.com/download/7017588/devlib.rar.html

    代碼如下:
    package com.ducklyl;

    import java.io.File;
    import java.io.FileInputStream;
    import java.util.Iterator;
    import org.apache.poi.hslf.model.Slide;
    import org.apache.poi.hslf.model.TextRun;
    import org.apache.poi.hslf.usermodel.SlideShow;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hwpf.HWPFDocument;
    import org.apache.poi.hwpf.usermodel.Paragraph;
    import org.apache.poi.hwpf.usermodel.Range;
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    import org.htmlparser.Parser;
    import org.htmlparser.filters.*;

    import org.htmlparser.*;
    import org.htmlparser.nodes.TextNode;
    import org.htmlparser.util.*;

    import org.pdfbox.pdfparser.PDFParser;
    import org.pdfbox.pdmodel.PDDocument;
    import org.pdfbox.util.PDFTextStripper;



    public class HandleFile {
        
    public static void main(String args[]){
            String str
    ="e:\\test.HTML";
            System.out.println(handleFile(str));
        }

        
    public static String handleFile(String filename){
            String result
    ="";
            String fileType
    =filename.substring(filename.lastIndexOf(".")+1, filename.length());
            
    if(fileType.equalsIgnoreCase("pdf"))
                result
    =handlePdf(filename);
            
    else if(fileType.equalsIgnoreCase("xls"))
                result
    =handleExcel(filename);
            
    else if(fileType.equalsIgnoreCase("doc"))
                result
    =handleDoc(filename);
            
    else if(fileType.equalsIgnoreCase("xml"))
                result
    =handleXml(filename);
            
    else if(fileType.equalsIgnoreCase("ppt"))
                result
    =handlePPT(filename);
            
    else if(fileType.equalsIgnoreCase("htm")||fileType.equalsIgnoreCase("html"))
                result
    =handleHtml(filename);
            
    return result;
        }
    /**
     * 解析HTML
     * 
    @param filename
     * 
    @return
     
    */
        
    public static String handleHtml(String filename){
            String content
    ="";
            
    try{
                File file
    =new File(filename);
                
    if(!file.exists()) return content;
                
                Parser parser
    =new Parser(filename);
                parser.setEncoding(
    "UTF-8");
                NodeFilter textFilter
    =new NodeClassFilter(TextNode.class);
                NodeList nodes
    =parser.extractAllNodesThatMatch(textFilter);
                
    for(int i=0;i<nodes.size();i++){
                    TextNode textnode
    =(TextNode)nodes.elementAt(i);
                    String line
    =textnode.toPlainTextString().trim();
                    
    if(line.equals("")) continue;
                    content
    =content+line;
                }
            }
    catch(Exception e){
                e.printStackTrace();
            }
            
    return content;
        }
        
    /**
         * 解析PPT
         * 
    @param filename
         * 
    @return
         
    */
        
    public static String handlePPT(String filename){
            StringBuffer content 
    = new StringBuffer("");
            
    try{
                File file
    =new File(filename);
                
    if(!file.exists()) {
                    
    return content.toString();
                }
                FileInputStream instream
    =new FileInputStream(file);
                SlideShow ppt 
    = new SlideShow(instream);
                Slide[] slides 
    = ppt.getSlides();
                
    for(int i=0;i<slides.length;i++){
                    TextRun[] t 
    = slides[i].getTextRuns();//為了取得幻燈片的文字內容,建立TextRun
                    for(int j=0;j<t.length;j++){
                        content.append(t[j].getText());
    //這里會將文字內容加到content中去
                    }
                    content.append(slides[i].getTitle());
                }
            }
    catch(Exception e){
                e.printStackTrace();
            }
            
    return content.toString();
        }
        
    /**
         * 解析XML
         * 
    @param filename
         * 
    @return
         
    */
        
    public static String handleXml(String filename){
            String content
    ="",value="",text="";
            
    try{
                File file
    =new File(filename);
                
    if(!file.exists()) {
                    
    return content;
                }
                  SAXReader saxReader 
    = new SAXReader();
                  Document document 
    = saxReader.read(file);
                  Element root 
    = document.getRootElement() ;
                  
                  Iterator iter
    =root.elementIterator() ;
                   
    while(iter.hasNext()){
                      Element element
    =(Element)iter.next();
                      value
    =element.getStringValue();
                      
    if(!value.trim().equals(""))    content=content+value;
                   }
            }
    catch(Exception e){
                    e.printStackTrace();
            }
            
    return content;
        }
        
    /**
         * 解析DOC
         * 
    @param filename
         * 
    @return
         
    */
        
    public static String handleDoc(String filename){
            String content
    ="";
            
    try{
                File file
    =new File(filename);
                
    if(!file.exists()) {
                    
    return content;
                }
                FileInputStream instream
    =new FileInputStream(file);
                HWPFDocument doc
    =new HWPFDocument(instream);
                Range range
    =doc.getRange();
                String text
    =range.text();
                
    for(int i=0;i<range.numParagraphs();i++){
                    Paragraph p
    =range.getParagraph(i);
                    content
    =content+p.text().trim()+"\n";
                }
            }
    catch(Exception e){
                e.printStackTrace();
            }
            
    return content;
        }
        
    /**
         * 解析PDF
         * 
    @param filename
         * 
    @return
         
    */
        
    public static String handlePdf(String filename){
            String contenttxt
    ="";
            
    try{
                File file
    =new File(filename);
                
    if(!file.exists()){
                    
    return contenttxt;
                }
                FileInputStream instream
    =new FileInputStream(file);
                PDFParser parser
    =new PDFParser(instream);
                parser.parse();
                PDDocument pdfdocument
    =parser.getPDDocument();
                PDFTextStripper pdfstripper
    =new PDFTextStripper();
                contenttxt
    =pdfstripper.getText(pdfdocument);
            }
    catch(Exception e){
                e.printStackTrace();
            }
            
    return contenttxt;
        }
        
    /**
         * 解析EXCEL
         * 
    @param filename
         * 
    @return
         
    */
        
    public static String handleExcel(String filename){
            String content
    ="";
            
    try{
                File file
    =new File(filename);
                
    if(!file.exists()) {
                    
    return content;
                }
                HSSFWorkbook workbook
    =new HSSFWorkbook(new FileInputStream(file));
                HSSFSheet sheet
    =workbook.getSheetAt(0);
                
                
    for(int i=0;i<workbook.getNumberOfSheets();i++){
                    sheet
    =workbook.getSheetAt(i);
                    
    if(sheet!=null){
                        
    for(int m=0;m<sheet.getLastRowNum();m++){
                            HSSFRow row
    =sheet.getRow(m);
                            
    if(row==nullbreak;
                            
                            
    for(int n=0;n<row.getLastCellNum();n++){
                                HSSFCell cell
    =row.getCell(n);
                                
    if(cell==nullbreak;
                                
    int type=cell.getCellType();
                                
    switch(type){
                                    
    case 0:
                                        content
    =content+cell.getNumericCellValue();
                                        
    break;
                                    
    case 1:
                                        content
    =content+cell.getStringCellValue();
                                        
    break;
                                    
    case 3:
                                        
    break;
                                    
    default:
                                        ;
                                }
                            }
                            content
    =content+"\n";
                        }
                    }
                    content
    =content+"\n";
                }

            }
    catch(Exception e){    
                e.printStackTrace();
            }
            
    return content;
        }
    }
    不想拷貝的朋友可以直接下載源代碼:http://www.ziddu.com/download/7017614/src.txt.html

    以上代碼比較簡單,就不作說明,希望能幫到需要用的朋友。當然上面只是一個簡單的例子,如果要具體應用,大家可以自己再改寫。如果你有其它的想法,歡迎分享你的精彩想法。


    轉載請注明出處

    posted @ 2009-10-22 10:55 王生生 閱讀(1630) | 評論 (0)編輯 收藏

    在看本文之前,請確保你已掌握了PHP的一些知識以及MYSQL的查詢操作基礎哦。

    作為一個Web程序,經常要和不計其數的數據打交道,比如會員的數據,文章數據,假如只有幾十個會員那很好辦,在一頁顯示就可以了,可是假如你的網站是幾千甚至幾十萬會員的話,如果都在一頁打開的話無論對瀏覽器還是觀看者都是一種折磨。

    相信每個學習PHP的新手都會對分頁這個東西感覺很頭疼,不過有了默默的這一水帖,你肯定會拍拍腦袋說,嘿,原來分頁竟然如此簡單?的確,現在請深呼吸一口新鮮的空氣,仔細的聽默默給你一點一點的分解。

    假設我們要處理1000條數據,要在每頁中顯示10條,這樣的話就會分100頁來顯示,咱們先看一看在mysql里提取10條信息是如何操作的。

    Select * from table limit 0,10

    上面是一句很簡單的mysql查詢語句,它的作用是從一個名叫table的表里提取10條數據,并且把所有字段的值都獲得。

    關鍵的地方就在這段“limit 0,10”,它其中的0是以0為起始點,后面的10則是顯示10條數據,那么我們要以10為起始點,顯示到第20條數據該怎么寫呢?

    可能很多大大會心直口快的說“limit 10,20”嘛!啊哦,這樣可就錯誤了哦,正確的寫法是“limit 10,10”它后面的參數并非是結束點而是要提取的數目,記住哦。

    懂得了如何提取10條數據,那么提取1000條也就是做100次這種查詢呀,就是說要做如下的查詢:

    Limit 0,10                 //第一頁
    Limit 10,10                 //第二頁
    Limit 20,10                 //第三頁
    Limit 30,10                 //第四頁
    ……
    看出有什么規律了嗎?沒錯,第一個參數每翻一頁就增加10,可是第二個參數是不變的。
    也就是說咱們設法根據頁數來改變第一個參數的值,就可以進行分頁顯示數據了,怎么樣,原理是不是很簡單?

    可是要怎么設法根據頁數來改變第一個參數的值呢?首先,咱們要有一個頁數的值,用url的GET方式獲取。
    比如index.php?page=18
    相信大部分的大大對這個東西不陌生吧,這種url地址可是隨處可見,其中的page參數的作用就是傳入要顯示的頁數。

    咱們通過一段代碼來看一看究竟是如何實現的吧:

    <?php

    /*

    Author:默默
    Date   :2006-12-03

    */

    $page=isset($_GET['page'])?intval($_GET['page']):1;        //這句就是獲取page=18中的page的值,假如不存在page,那么頁數就是1。
    $num=10;                                      //每頁顯示10條數據

    $db=mysql_connect("host","name","pass");           //創建數據庫連接
    $select=mysql_select_db("db",$db);                 //選擇要操作的數據庫

    /*
    首先咱們要獲取數據庫中到底有多少數據,才能判斷具體要分多少頁,具體的公式就是
    總數據數除以每頁顯示的條數,有余進一。
    也就是說10/3=3.3333=4 有余數就要進一。
    */

    $total=mysql_num_rows(mysql_query("select id from table")); //查詢數據的總數,id是數據庫中的一個自動賦值的字段
    $pagenum=ceil($total/$num);                                    //獲得總頁數

    //假如傳入的頁數參數大于總頁數,則顯示錯誤信息
    If($page>$pagenum || $page == 0){
            Echo
    "Error : Can Not Found The page .";
            Exit;
    }

    $offset=($page-1)*$num;                                        //獲取limit的第一個參數的值,假如第一頁則為(1-1)*10=0,第二頁為(2-1)*10=10。

    $info=mysql_query("select name from table limit $offset,$num");   //獲取相應頁數所需要顯示的數據,name是數據里的一個字段
    While($it=mysql_fetch_array($info)){
            Echo
    $it['name']."<br />";
    }                                                              
    //顯示數據
       
    For($i=1;$i<=$pagenum;$i++){
           
           
    $show=($i!=$page)?"<a href='index.php?page=".$i."'>$i</a>":"<b>$i</b>";
            Echo
    $show." ";
    }

    /*顯示分頁信息,假如是當頁則顯示粗體的數字,其余的頁數則為超連接,假如當前為第三頁則顯示如下
    1 2 3 4 5 6
    */
    ?>

    假如你仔細的讀過上面的代碼,把數據庫連接和查詢的表替換成你的,那么就能看見它的執行效果哦。

    是不是很簡單,只要動動腦筋,可以讓它顯示的更為個性化哦,給大家出一個小題,如何實現“首頁 上一頁 下一頁 尾頁”這種格式的分頁呢?

    OK,水帖灌完,收工。^_^
    輝老大『阿輝』:
    好帖子啊,我來頂默默的提問,代碼,如下:

    <?php
    /*
    Author:默默
    Date   :2006-12-03
    */

    $page=isset($_GET['page'])?intval($_GET['page']):1;        //這句就是獲取page=18中的page的值,假如不存在page,那么頁數就是1。
    $num=10;                                      //每頁顯示10條數據

    $db=mysql_connect("localhost","root","7529639");           //創建數據庫連接
    mysql_select_db("cr_download");                 //選擇要操作的數據庫

    /*
    首先咱們要獲取數據庫中到底有多少數據,才能判斷具體要分多少頁,具體的公式就是
    總數據庫除以每頁顯示的條數,有余進一。
    也就是說10/3=3.3333=4 有余數就要進一。
    */

    $result=mysql_query("select * from cr_userinfo");
    $total=mysql_num_rows($result); //查詢所有的數據

    $url='test.php';//獲取本頁URL

    //頁碼計算
    $pagenum=ceil($total/$num);                                    //獲得總頁數,也是最后一頁
    $page=min($pagenum,$page);//獲得首頁
    $prepg=$page-1;//上一頁
    $nextpg=($page==$pagenum ? 0 : $page+1);//下一頁
    $offset=($page-1)*$num;                                        //獲取limit的第一個參數的值,假如第一頁則為(1-1)*10=0,第二頁為(2-1)*10=10。

    //開始分頁導航條代碼:
    $pagenav="顯示第 <B>".($total?($offset+1):0)."</B>-<B>".min($offset+10,$total)."</B> 條記錄,共 $total 條記錄 ";


    //如果只有一頁則跳出函數:
    if($pagenum<=1) return false;

    $pagenav.=" <a href='$url?page=1'>首頁</a> ";
    if(
    $prepg) $pagenav.=" <a href='$url?page=$prepg'>前頁</a> "; else $pagenav.=" 前頁 ";
    if(
    $nextpg) $pagenav.=" <a href='$url?page=$nextpg'>后頁</a> "; else $pagenav.=" 后頁 ";
    $pagenav.=" <a href='$url?page=$pagenum'>尾頁</a> ";

    //下拉跳轉列表,循環列出所有頁碼:
    $pagenav.=" 到第 <select name='topage' size='1' onchange='window.location=""$url?page=""+this.value'>"n";
    for(
    $i=1;$i<=$pagenum;$i++){
    if(
    $i==$page) $pagenav.="<option value='$i' selected>$i</option>"n";
    else
    $pagenav.="<option value='$i'>$i</option>"n";
    }
    $pagenav.="</select> 頁,共 $pagenum 頁";

    //假如傳入的頁數參數大于總頁數,則顯示錯誤信息
    If($page>$pagenum){
            Echo
    "Error : Can Not Found The page ".$page;
            Exit;
    }

    $info=mysql_query("select * from cr_userinfo limit $offset,$num");   //獲取相應頁數所需要顯示的數據
    While($it=mysql_fetch_array($info)){
            Echo
    $it['username'];
            echo
    "<br>";
    }                                                              
    //顯示數據
      
    echo"<br>";
       echo
    $pagenav;//輸出分頁導航
    ?>


    轉自 http://www.cnblogs.com/justforfun/archive/2009/04/27/1444358.html
    posted @ 2009-10-21 10:08 王生生 閱讀(198) | 評論 (0)編輯 收藏

        最近在開發站內搜索,以開源的lucene作為基礎框架。Lucene可以實現自定義過濾器Filter接口,也可以直接調用lucene已經提供的類。
        本文使用 FilteredQuery 進行多條件過濾。

    import java.util.*;
    import org.apache.lucene.index.Term;
    import org.apache.lucene.search.*;

    public class ezfilter{   
            private List<Filter> filterList;
            public ezfilter(){
                filterList = new ArrayList<Filter>();
            }
            public void addFilter(String Field,String Value){
                Term term=new Term(Field,Value);//添加term
                QueryWrapperFilter filter=new QueryWrapperFilter(new TermQuery(term));//添加過濾器
                filterList.add(filter);//加入List,可以增加多個過濾
            }
            public Query getFilterQuery(Query query){
                for(int i=0;i<filterList.size();i++){
                    //取出多個過濾器,在結果中再次定位結果
                    query = new FilteredQuery(query, filterList.get(i));
                }
                return query;
            }   
    }

    在查詢時,調用方式如下:

    ezfilter filter = new ezfilter();
    filter.addFilter("id","1000");//過濾id=1000
    filter.addFilter("type","school");//過濾type=school
    .....
    query=filter.getFilterQuery(query);//結果過濾
    hits = searcher.search(query);


    以上代碼只是簡化說明,希望有碰到的朋友可以參考。





    posted @ 2009-10-13 17:28 王生生 閱讀(1259) | 評論 (0)編輯 收藏

    簡單實現網頁采集程序,運行程序后,把抓到的網頁放到目錄下面

    package com.ducklyl;

    import java.net.*;
    import java.io.*;

    public class WebHttpClient {
        //網頁保存路徑
        private static String Text_File_Path="D:\\Test\\index.html";
        public static void main(String args[]){
            try{
                File file=new File(Text_File_Path);
                FileWriter fpWriter=new FileWriter(file);
               
                //生成下載對象
                String URL="www.bnu.edu.cn",Host="www.bnu.edu.cn";
                int Port=80;
                Socket webclient=new Socket(URL,Port);
                //輸出流
                PrintWriter result=new PrintWriter(webclient.getOutputStream(),true);
                //讀取流
                BufferedReader receiver=new BufferedReader(new InputStreamReader(webclient.getInputStream()));
               
                //發送http request
                result.println("GET / HTTP1.1");
                result.println("Host:"+Host);
                result.println("Connection:Close");
                result.println();

                //接收Http response
                boolean bRet=true;
                StringBuffer sb=new StringBuffer(8096);
                while(bRet){
                    if(receiver.ready()){
                        int idx=0;
                        while(idx!=-1){
                            idx=receiver.read();
                            sb.append((char)idx);
                        }
                        bRet=false;
                    }
                }
                //打印結果
                System.out.println(sb.toString());
                //寫到文件里面
                fpWriter.write(sb.toString());
                webclient.close();
                fpWriter.close();
            }catch(UnknownHostException e){
                System.err.println("don't get the host");
                System.exit(1);   
            }catch(IOException e){
                System.err.println("Download error,please check the URL.");
                System.exit(1);
            }
        }
    }


    posted @ 2009-10-12 14:04 王生生 閱讀(231) | 評論 (0)編輯 收藏

         摘要: Normal 0 7.8 pt 0 2 false false false MicrosoftInternetExplorer4 /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal";...  閱讀全文
    posted @ 2009-10-12 13:28 王生生 閱讀(2245) | 評論 (0)編輯 收藏

        orangeHRM是一套全面的人力資源管理(HRM)系統。它實現了任何企業都需要的一些重要HR功能,包括雇員資料管理、員工自服務系統、考勤、津貼以及招聘等功能。基于模塊化架構,這個全面的開源解決方案反映了HR管理的主要領域從簡單的人事管理到今天復雜的管理策略。 它是開源的人力資源管理軟件中最活躍的一個,擁有超過175000的下載量,迅速的成為了使用最廣泛的人力資源管理應用軟件。

    你們決定開始做這個項目的原因是什么?


    我們在企業人力資源的軟件中看到了一些弊端:對于中小型企業來說,這種軟件是很昂貴的,所以有些公司只選擇使用一些簡單的技術,這樣很不利于公司的發展。

    我們開始把OrangeHRM作為一個研究項目就是為了解決這些問題。因為它是免費的(并不代表不收費),所以任何人都何以負擔的起。因為是開源的,所以任何人都可以使用,而且基于 PHP, MySQL和 Apache 會有更大的可移植性。


    讓您最為自豪的是什么?

    OrangeHRM的下載已將超過了15萬。雖然不是所有的下載都能運用到生產系統,但是據我們的估計數目,運用于生產系統的大約是數千人。我們感到自豪的是,我們為全世界的人們提供了一個系統,改善了他們的工作效率。

    OrangeHRM2.5下載: http://www.ziddu.com/download/6849421/orangehrm-2.5.tar.gz.html

    OrangeHRM2.5中文包下載(解壓覆蓋language即可):http://www.ziddu.com/download/6849422/OrangeHRM_v2.5.x_Chinese_language.zip.html
    posted @ 2009-10-10 08:51 王生生 閱讀(1261) | 評論 (0)編輯 收藏

         上一次提到用HTML轉PDF功能,生成了多個PDF之后,想要合并成一個怎么辦?用程序生成,那就麻煩了。
    找了半天,找到一個解決的辦法,前提是在linux系統下,你需要事先在系統中安裝好 Ghostscript 和 PDFtk 這兩個軟件:

    打開終端,并粘貼下列命令:

    pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf

    需要說明的是,此示例將 1.pdf 、 2.pdf 和 3.pdf 這三個 PDF 文檔合并成 123.pdf 文件。請根據你的實際情況更改這些名稱。另外,除了合并兩個文件之外,你也可以合并三個、甚至更多。

    Ghostscript 和 PDFtk 這兩個軟件,大家可以網上搜一下。

    PDFtk :http://www.accesspdf.com/pdftk/#examples

    posted @ 2009-07-09 22:32 王生生 閱讀(980) | 評論 (1)編輯 收藏

        項目中有用到需要生成PDF文件,網上找了一些關于生成PDF文件的技術,基本上都是用程序去生成。因為項目到了后期,客戶才提出轉PDF的需求,所以不太可能采用常規的方法。
        最后找到一個支持命令行的軟件(HTML2PDF Pilot),可以直接將HTML頁面轉成PDF。這樣一來可以省很多時間去再去開發。
        用java實現命令行調用HTML2PDF是一件很簡單的事,如此一來,解決了項目中目前棘手的問題,不過有一點比較郁悶,轉成PDF的時間要好幾秒,因此有一個比較長的等待過程。
        在這里記錄下這個方案,希望能給有遇到這個問題的朋友參考。如果大家有更好的方法,不妨提出來分享。

    HTML2PDF Pilot(破解)下載:(支持用命令行調用,可以參看壓縮包中的help.chm)

    http://www.ziddu.com/download/5538757/HTML2PDFPilot.rar.html



    posted @ 2009-07-09 22:25 王生生 閱讀(569) | 評論 (0)編輯 收藏

    森露2013新款豹紋打底衫 高領 女 長袖 修身長袖t恤女 加絨加厚冬 2013春秋新款女裝 潮修身大碼長袖小西裝外套女 韓版中長款小西裝 憂憂魚2013秋冬新款直筒褲女顯瘦長褲加絨黑色休閑褲修身西褲女褲
    主站蜘蛛池模板: 国产日韩AV免费无码一区二区 | 成在线人视频免费视频| 亚洲日韩AV一区二区三区中文| 亚洲mv国产精品mv日本mv| 亚洲黄色网站视频| 亚洲黄色免费电影| 亚洲综合男人的天堂色婷婷| 亚洲第一二三四区| 亚洲中文无码a∨在线观看| 亚洲国产美女精品久久| 亚洲国产av高清无码| 亚洲中文字幕无码av在线| 精品亚洲AV无码一区二区三区| 中文文字幕文字幕亚洲色| 亚洲成人激情小说| 丰满亚洲大尺度无码无码专线| 国产精品日本亚洲777| 免费看一级高潮毛片| 国产免费区在线观看十分钟| 精品熟女少妇aⅴ免费久久| 久久国产精品国产自线拍免费| 午夜不卡久久精品无码免费| 久久久久av无码免费网| 久久精品a一国产成人免费网站| 女人18毛片水真多免费看| 又黄又爽一线毛片免费观看| 亚洲精品国自产拍在线观看| 亚洲乱码日产一区三区| 久久亚洲精品人成综合网 | 免费a级毛片永久免费| 亚洲av无码国产精品色在线看不卡 | 国产福利免费视频| 国产自国产自愉自愉免费24区| 99爱在线观看免费完整版| 成人免费在线看片| 国产精品酒店视频免费看| 亚洲无av在线中文字幕| 亚洲成人在线免费观看| 亚洲国产精品18久久久久久| 好吊色永久免费视频大全| 2019中文字幕免费电影在线播放|