網頁針對搜索引擎的加註技巧

1.如何確定關鍵詞
2.使用 META 值
3.指引Web robot(網際機器人)為你服務

4.提高排名的幾點技巧5.全球著名搜索引擎介紹

1.如何確定關鍵詞

“關鍵詞(Keywords)”是搜索引擎將站點進行分類的依據,同時也就是我們在查找信息時輸入的那些詞,所以關鍵詞在註冊搜索引擎時至關重要。那麼有什麼辦法能幫助我們選擇正確的關鍵詞呢?

方法一:選幾個主要的搜索引擎(例如:AltaVista,Lycos,Excite 等);
1)輸入你認為的自己站點的關鍵詞,然後Search。一般情況下,你會得到一個很長的列表;
2)打開前十位的站點,然後查看每一個的META 標籤(打開源文件,META 標籤在<head>...</head> 中);
3)檢查他們的Keywords,從其中藉鑑你沒有想到的一些詞;

4)最後歸納出自己的關鍵詞。

可以多選幾個詞重複進行這個過程。

方法二:選擇人們最常用的一些搜索詞(亦即站點的關鍵詞),然後進行選擇。網上有很多這樣的資源:
到http://www.searchterms.com/ 看一看,那裡有每個月網上最流行搜索詞的排行榜;
想知道YAHOO 最流行的200個KEYWORDS? 去http://eyescream.com/yahootop200.htm
……這些資源值得去看,但也有很大局限性,例如: YAHOO 前20名KEYWORDS 中,有60%是關於“SEX”的,看來人們最感興趣的還是那神秘的“性”。如果你的網站是關於電腦方面的,似乎蜂馬牛不相及。怎麼辦?需要更廣泛的統計數據,GOTO 搜索引擎中提供了一個這樣的服務“搜索詞使用頻率統計”:
  *進入 GOTO 站點
  *點擊左下角 "GetListedonGoTo" 按鈕
  *點擊上方 "ClientToolKit" 鏈接
*選擇"Tools" 中的"SearchTermSuggestionList"
*在跳出的新窗口中輸入要查詢的關鍵詞
  *點擊 "FindIt" 查詢
 

2.使用 META 值

Meta 標籤放在每個網頁的<head>...</head> 中,常見格式如:

<meta name="GENERATOR" content="Microsoft FrontPage 3.0"> 說明編輯工具;
<meta name="KEYWORDS" content="...">說明關鍵詞;
<meta name="DESCRIPTION" content="...">說明主頁描述;

<meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80">和
<meta http-equiv="Content-Language" content="zh-CN">說明所用語言及文字

可見META 有兩種,name 和http-equiv。

name 主要用於描述網頁,對應於content,以便於搜索引擎機器人查找、分類(目前幾乎所有的搜索引擎都使用網上機器人自動查找META 值來給你的網頁分類)。這其中最重要的是DESCRIPTION(你的站點在引擎上的描述)和KEYWORDS(搜索引擎籍以分類的關鍵詞),應該給你的“每一頁”都插入這兩個META 值。當然你也可以不要搜索引擎檢索,可用:
<meta name="ROBOTS" content="all | none | index | noindex | follow | nofollow"> 來確定:
設定為"all" 時文件將被檢索,且頁上鍊接可被查詢;
設定為"none" 則表示文件不被檢索,而且不查詢頁上的鏈接;
  設定為 "index" 時文件將被檢索;
設定為"follow" 則可查詢頁上的鏈接;
設定為"noindex" 時文件不檢索,但可被查詢鏈接;
設定為"nofollow" 則表示文件不被檢索,但可查詢頁上的鏈接.

http-equiv 顧名思義相當於http 文件頭的作用,可以直接影響網頁的傳輸。比較直接的例子,如:

  a、自動刷新,並指向新網頁
<meta http-equiv="Refresh" content="10; url=http://newlink"> 10秒後刷新
  b、網頁間轉換時加入效果
<meta http-equiv="Page-Enter" content="revealTrans(duration=10,transition=50)">
<meta http-equiv="Page-Exit" content="revealTrans(duration=20,transition=6)">
加在一個網頁中,進出時有一些特殊效果,這個功能即FrontPage98的Format/PageTransition. 不過注意所加網頁不能是一個Frame頁;
  c、強製網頁不被存入Cache中
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="wed,26Feb199708:21:57GMT">
大家可以到http://www.internet.com/ 上看看,它的首頁當你斷線後,就無法在cache 中再調出。 (本身是關於建站很棒的站點)
  d、定義指向窗口
<meta http-equiv="win​​dow-target" content="_top">
可以防止網頁被別人作為一個Frame調用.

  以下舉幾例很有用的META值設置:
<meta name="robots" content="ALL"> 可以告訴搜索ROBOTS 查找站點中所有內容;
<meta name="revisit-after" content="7days">,則ROBOTS 會在7天后再次前來搜索,這對於定期更新的站點非常有用;
<meta http-equiv="pragma" content="no-cache">,網頁內容就不能被放在CACHE 中離線瀏覽,每次訪問都會強制刷新;
  ……

3.指引Web robot(網際機器人)為你服務

有時你會莫名其妙地發現你的主頁的內容在一個搜索引擎中被索引,即使你從未與他們有過任何联系。其實這正是Web Robot的功勞。 Web Robot其實是一些程序,它可以穿越大量Internet網址的超文本結構,遞歸地檢索網絡站點所有的內容。這些程序有時被叫“蜘蛛(Spider)”,“網上流浪漢(WebWanderer)”,“網絡蠕蟲(webworms)”或Webcrawler。一些Internet 網上知名的搜索引擎站點(SearchEngines)都有專門的Web Robot 程序來完成信息的採集,例如Lycos,Webcrawler,Altavista 等,以及中文搜索引擎站點例如北極星,網易,GOYOYO 等。
WebRobot 就像一個不速之客,不管你是否在意,它都會忠於自己主人的職責,任勞任怨、不知疲倦地奔波於萬維網的空間,當然也會光臨你的主頁,檢索主頁內容並生成它所需要的記錄格式。或許有的主頁內容你樂於世人皆知,但有的內容你卻不願被洞察、索引。你可以用以下方法佈置下路標,告訴Web Robot 應該怎麼去檢索你的主頁,哪些可以檢索,哪些不可以訪問。

  a.RobotsExclusionProtocol 協議

網絡站點的管理員可以在站點上建立一個專門格式的文件,來指出站點上的哪一部分可以被robot 訪問,這個文件放在站點的根目錄下,即http://.../robots.txt 。當Robot 訪問一個Web 站點時,比如http://www.sti.net.cn/,它先去檢查文件http://www.sti.net.cn/robots.txt。如果這個文件存在,它便會按照這樣的記錄格式去分析:

  User-agent:*
  Disallow:/cgi-bin/
  Disallow:/tmp/
  Disallow:/~joe/

以確定它是否應該檢索站點的文件。在一個站點上只能有一個"/robots.txt" 文件,而且文件名的每個字母要求全部是小寫。在Robot 的記錄格式中每一個單獨的"Disallow" 行表示你不希望Robot 訪問的URL,每個URL 必須單獨占一行,不能出現"Disallow:/cgi-bin//tmp/" 這樣的病句。同時在一個記錄中不能出現空行,這是因為空行是多個記錄分割的標誌。
User-agent 行指出的是Robot 或其他代理的名稱。在User-agent 行,'*' 表示一個特殊的含義---所有的robot。

  下面是幾個 robot.txt 的例子:

在整個服務器上拒絕所有的robots:
  User-agent:*
  Disallow:/

允許所有的robots 訪問整個站點:
  User-agent:*
  Disallow:
或者產生一個空的"/robots.txt" 文件。

服務器的部分內容允許所有的robot 訪問
  User-agent:*
  Disallow:/cgi-bin/
  Disallow:/tmp/
  Disallow:/private/

  拒絕某一個專門的 robot:
  User-agent:BadBot
  Disallow:/

  只允許某一個 robot光顧:
  User-agent:WebCrawler
  Disallow:
  User-agent:*
  Disallow:/

  b、RobotsMETAtag

一個網頁作者可以使用專門的HTMLMETAtag,來指出某一個網頁是否可以被索引、分析或鏈接。這些方法適合於大多數的Web Robot,至於是否在軟件中實施了這些方法,還依賴於Robot 的開發者,並非可以保證對任何Robot 都靈驗。如果你迫切需要保護自己內容,則應考慮採用諸如增加密碼等其他保護方法。
RobotsMETAtag 指令使用逗號隔開,可以使用的指令包括[NO]INDEX 和[NO]FOLLOW。 INDEX 指令指出一個索引性robot 是否可以對本頁進行索引;FOLLOW指令指出robot 是否可以跟踪本頁的鏈接。缺省的情況是 INDEX 和 FOLLOW。例如:
  <meta name="robots" content="index,follow">
<meta name="robots" content="noindex,follow">
<meta name="robots" content="index,nofollow">
<meta name="robots" content="noindex,nofollow">

c.提高排名的幾點技巧

用關鍵字的複數形式,(如,用"books" 來代替"book", 那麼,當有人查詢book 或者books 時,你的站點都會呈現在他面前)

關鍵字的大寫和小寫多種拼寫方式都用上。 (如:books,Books,BOOKS)同一個單詞的三種以上的拼寫方式並不會起到多大作用,儘管通常的錯誤拼寫倒能奏效。

  用你選定的關鍵字的組合方式。人們經常使用包含2或2個以上關鍵字的短語來搜索。 (如:"storagefacilities", "STORAG​​EFACILITIES" 為了真正找准你的目標市場,加上"self,"SELF" 和"你的城市/州" 等單詞。那些不需要你的產品和服務的訪問者即便再多,也沒什麼價值。

  必須使用 META 值。許多搜索引擎都是根據這些META 值為你的站點做索引的。 META 值位於你頁面HTML 中的<head> 和</head> 之間,並不會在你的頁面中顯示出來。為了更精確的使用這些 META 值。可以找一個排名最高的站點的源文件來做些參考分析。

使用你10到20個最好的關鍵字的組合。關鍵字豐富的META 內容通常都是你站點排名的決定性因素。
提示:如果可能,盡量在每一段的開頭或者搜索短語較靠前的位置使用你最具代表性的關鍵字。

用關鍵字來填滿你圖像鏈接中的ALT 值。

你站點中的每一頁都應該單獨登錄到搜索引擎,而不僅僅是登錄了首頁就結束了。
提示:許多搜索引擎都會定期對你的站點重新檢索,如果站點上沒有變化你的排名可就會下降了,所以,保持你的站點常新。

為你的每一個主要的關鍵字創造或定制一個獨立的頁面,並為每個主要的搜索引擎單獨設計。這會花上些時間,但是,一旦你做好了,將會令人不可置信的提高你的排名。
提示:確保每個頁面都能直接鏈接到首頁以及其它一些相關頁面。
警告!過去很多人投機取巧,濫用關鍵字來取得更高的排名。就是將自己的關鍵字一再重複使用,並改變文字顏色使之

適應頁面背景色。現在如果一旦發現你這麼做了,大多數搜索引擎都會採取懲罰措施。

php解析進入網站搜尋爬蟲,並針對不同的搜尋爬蟲定義顯示或隱藏內容的方法。

搜尋引擎網路爬蟲,自己控制被加入顯示的內容。
簡單說明一下,先設定需過濾的搜尋引擎為陣列形態,
然後在進行回圈比對 搜尋引擎,之後再來比對不想顯示的內容。

PHPExcel 類型查詢

例如 框線類型
$objPHPExcel->getActiveSheet()->getStyle('H2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_DASHED);

查詢還有哪些寬線類型
Classes/PHPExcel/Style/Border.php

 /* Border style */
 const BORDER_NONE    = 'none';
 const BORDER_DASHDOT   = 'dashDot';
 const BORDER_DASHDOTDOT   = 'dashDotDot';
 const BORDER_DASHED    = 'dashed';
 const BORDER_DOTTED    = 'dotted';
 const BORDER_DOUBLE    = 'double';
 const BORDER_HAIR    = 'hair';
 const BORDER_MEDIUM    = 'medium';
 const BORDER_MEDIUMDASHDOT  = 'mediumDashDot';
 const BORDER_MEDIUMDASHDOTDOT = 'mediumDashDotDot';
 const BORDER_MEDIUMDASHED  = 'mediumDashed';
 const BORDER_SLANTDASHDOT  = 'slantDashDot';
 const BORDER_THICK    = 'thick';
 const BORDER_THIN    = 'thin';

最好用的MYSQL密碼忘記的解決方法

相信大家都一定會遇到安裝好Web Server後,設定錯誤,或者忘記MYSQL密碼。
筆者在此分享一下之前收集的筆記。

php excel类,phpExcel使用方法介绍

下面是总结的几个使用方法
  include ‘PHPExcel.php’;
  include ‘PHPExcel/Writer/Excel2007.php’;
  //或者include ‘PHPExcel/Writer/Excel5.php’; 用于输出.xls的
  创建一个excel
  $objPHPExcel = new PHPExcel();
  保存excel—2007格式
  $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  //或者$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 非2007格式
  $objWriter->save(”xxx.xlsx”);
  直接输出到浏览器
  $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
  header(”Pragma: public”);
  header(”Expires: 0″);
  header(”Cache-Control:must-revalidate, post-check=0, pre-check=0″);
  header(”Content-Type:application/force-download”);
  header(”Content-Type:application/vnd.ms-execl”);
  header(”Content-Type:application/octet-stream”);
  header(”Content-Type:application/download”);;
  header(’Content-Disposition:attachment;filename=”resume.xls”‘);
  header(”Content-Transfer-Encoding:binary”);
  $objWriter->save(’php://output’);
  ——————————————————————————————————————–
  设置excel的属性:
  创建人
  $objPHPExcel->getProperties()->setCreator(”Maarten Balliauw”);
  最后修改人
  $objPHPExcel->getProperties()->setLastModifiedBy(”Maarten Balliauw”);
  标题
  $objPHPExcel->getProperties()->setTitle(”Office 2007 XLSX Test Document”);
  题目
  $objPHPExcel->getProperties()->setSubject(”Office 2007 XLSX Test Document”);
  描述
  $objPHPExcel->getProperties()->setDescription(”Test document for Office 2007 XLSX, generated using PHP classes.”);
  关键字
  $objPHPExcel->getProperties()->setKeywords(”office 2007 openxml php”);
  种类
  $objPHPExcel->getProperties()->setCategory(”Test result file”);
  ——————————————————————————————————————–
  设置当前的sheet
  $objPHPExcel->setActiveSheetIndex(0);
  设置sheet的name
  $objPHPExcel->getActiveSheet()->setTitle(’Simple’);
  设置单元格的值
  $objPHPExcel->getActiveSheet()->setCellValue(’A1′, ‘String’);
  $objPHPExcel->getActiveSheet()->setCellValue(’A2′, 12);
  $objPHPExcel->getActiveSheet()->setCellValue(’A3′, true);
  $objPHPExcel->getActiveSheet()->setCellValue(’C5′, ‘=SUM(C2:C4)’);
  $objPHPExcel->getActiveSheet()->setCellValue(’B8′, ‘=MIN(B2:C5)’);
  合并单元格
  $objPHPExcel->getActiveSheet()->mergeCells(’A18:E22′);
  分离单元格
  $objPHPExcel->getActiveSheet()->unmergeCells(’A28:B28′);

phpExcel常用方法詳解【附有php導出excel加超級鏈接】

操作excel


1.header

        header("Content-Type:application/vnd.ms-excel");
        header("Content-Disposition:attachment;filename=product.xls");
        header("Pragma:no-cache");
        header("Expires:0");


2.PHPExcel

        http://www.codeplex.com/PHPExcel
        http://www.phpexcel.net

        开发包Tests目录有详细使用实例
        支持中文,注意文件编码,文件保存为utf-8

        写excel

                //Include class
                require_once('Classes/PHPExcel.php');
                require_once('Classes/PHPExcel/Writer/Excel2007.php');
                $objPHPExcel = new PHPExcel();

                //Set properties 设置文件属性
                $objPHPExcel->getProperties()->setCreator("Maarten Balliauw");
                $objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
                $objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document");
                $objPHPExcel->getProperties()->setSubject("Office 2007 XLSX Test Document");
                $objPHPExcel->getProperties()->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.");
                $objPHPExcel->getProperties()->setKeywords("office 2007 openxml php");
                $objPHPExcel->getProperties()->setCategory("Test result file");

                //Add some data 添加数据
                $objPHPExcel->setActiveSheetIndex(0);
                $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello');//可以指定位置
                $objPHPExcel->getActiveSheet()->setCellValue('A2', true);
                $objPHPExcel->getActiveSheet()->setCellValue('A3', false);
                $objPHPExcel->getActiveSheet()->setCellValue('B2', 'world!');
                $objPHPExcel->getActiveSheet()->setCellValue('B3', 2);
                $objPHPExcel->getActiveSheet()->setCellValue('C1', 'Hello');
                $objPHPExcel->getActiveSheet()->setCellValue('D2', 'world!');
                //循环
                for($i = 1;$i<200;$i++) {
                    $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $i);
                    $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, 'Test value');
                }
                //日期格式化
                $objPHPExcel->getActiveSheet()->setCellValue('D1', time());
                $objPHPExcel->getActiveSheet()->getStyle('D1')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH);

                //Add comment 添加注释
                $objPHPExcel->getActiveSheet()->getComment('E11')->setAuthor('PHPExcel');
                $objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('PHPExcel:');
                $objCommentRichText->getFont()->setBold(true);
                $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun("\r\n");
                $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('Total amount on the current invoice, excluding VAT.');

                //Add rich-text string 添加文字 可设置样式
                $objRichText = new PHPExcel_RichText( $objPHPExcel->getActiveSheet()->getCell('A18') );
                $objRichText->createText('This invoice is ');
                $objPayable = $objRichText->createTextRun('payable within thirty days after the end of the month');
                $objPayable->getFont()->setBold(true);
                $objPayable->getFont()->setItalic(true);
                $objPayable->getFont()->setColor( new PHPExcel_Style_Color( PHPExcel_Style_Color::COLOR_DARKGREEN ) );
                $objRichText->createText(', unless specified otherwise on the invoice.');

                //Merge cells 合并分离单元格
                $objPHPExcel->getActiveSheet()->mergeCells('A18:E22');
                $objPHPExcel->getActiveSheet()->unmergeCells('A18:E22');

                //Protect cells 保护单元格
                $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);//Needs to be set to true in order to enable any worksheet protection!
                $objPHPExcel->getActiveSheet()->protectCells('A3:E13', 'PHPExcel');

                //Set cell number formats 数字格式化
                $objPHPExcel->getActiveSheet()->getStyle('E4')->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE);
                $objPHPExcel->getActiveSheet()->duplicateStyle( $objPHPExcel->getActiveSheet()->getStyle('E4'), 'E5:E13' );

                //Set column widths 设置列宽度
                $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
                $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);

                //Set fonts 设置字体
                $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara');
                $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(20);
                $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true);
                $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
                $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);

                //Set alignments 设置对齐
                $objPHPExcel->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
                $objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);
                $objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
                $objPHPExcel->getActiveSheet()->getStyle('A3')->getAlignment()->setWrapText(true);

                //Set column borders 设置列边框
                $objPHPExcel->getActiveSheet()->getStyle('A4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
                $objPHPExcel->getActiveSheet()->getStyle('A10')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
                $objPHPExcel->getActiveSheet()->getStyle('E10')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
                $objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THICK);
                $objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THICK);

                //Set border colors 设置边框颜色
                $objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getLeft()->getColor()->setARGB('FF993300');
                $objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getTop()->getColor()->setARGB('FF993300');
                $objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getBottom()->getColor()->setARGB('FF993300');
                $objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()->getRight()->getColor()->setARGB('FF993300');

                //Set fills 设置填充
                $objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
                $objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF808080');

                //Add a hyperlink to the sheet 添加链接
                $objPHPExcel->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net');
                $objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('http://www.phpexcel.net');
                $objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setTooltip('Navigate to website');
                $objPHPExcel->getActiveSheet()->getStyle('E26')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);

                //Add a drawing to the worksheet 添加图片
                $objDrawing = new PHPExcel_Worksheet_Drawing();
                $objDrawing->setName('Logo');
                $objDrawing->setDescription('Logo');
                $objDrawing->setPath('./images/officelogo.jpg');
                $objDrawing->setHeight(36);
                $objDrawing->setCoordinates('B15');
                $objDrawing->setOffsetX(110);
                $objDrawing->setRotation(25);
                $objDrawing->getShadow()->setVisible(true);
                $objDrawing->getShadow()->setDirection(45);
                $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());

                //Play around with inserting and removing rows and columns
                $objPHPExcel->getActiveSheet()->insertNewRowBefore(6, 10);
                $objPHPExcel->getActiveSheet()->removeRow(6, 10);
                $objPHPExcel->getActiveSheet()->insertNewColumnBefore('E', 5);
                $objPHPExcel->getActiveSheet()->removeColumn('E', 5);

                //Add conditional formatting
                $objConditional1 = new PHPExcel_Style_Conditional();
                $objConditional1->setConditionType(PHPExcel_Style_Conditional::CONDITION_CELLIS);
                $objConditional1->setOperatorType(PHPExcel_Style_Conditional::OPERATOR_LESSTHAN);
                $objConditional1->setCondition('0');
                $objConditional1->getStyle()->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);
                $objConditional1->getStyle()->getFont()->setBold(true);

                //Set autofilter 自动过滤
                $objPHPExcel->getActiveSheet()->setAutoFilter('A1:C9');

                //Hide "Phone" and "fax" column 隐藏列
                $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false);
                $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false);

                //Set document security 设置文档安全
                $objPHPExcel->getSecurity()->setLockWindows(true);
                $objPHPExcel->getSecurity()->setLockStructure(true);
                $objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel");

                //Set sheet security 设置工作表安全
                $objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel');
                $objPHPExcel->getActiveSheet()->getProtection()->setSheet(true);// This should be enabled in order to enable any of the following!
                $objPHPExcel->getActiveSheet()->getProtection()->setSort(true);
                $objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true);
                $objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true);

                //Calculated data 计算
                echo 'Value of B14 [=COUNT(B2:B12)]: ' . $objPHPExcel->getActiveSheet()->getCell('B14')->getCalculatedValue() . "\r\n";

                //Set outline levels
                $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1);
                $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setVisible(false);
                $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setCollapsed(true);

                //Freeze panes
                $objPHPExcel->getActiveSheet()->freezePane('A2');

                //Rows to repeat at top
                $objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1);

                //Set data validation 验证输入值
                $objValidation = $objPHPExcel->getActiveSheet()->getCell('B3')->getDataValidation();
                $objValidation->setType( PHPExcel_Cell_DataValidation::TYPE_WHOLE );
                $objValidation->setErrorStyle( PHPExcel_Cell_DataValidation::STYLE_STOP );
                $objValidation->setAllowBlank(true);
                $objValidation->setShowInputMessage(true);
                $objValidation->setShowErrorMessage(true);
                $objValidation->setErrorTitle('Input error');
                $objValidation->setError('Number is not allowed!');
                $objValidation->setPromptTitle('Allowed input');
                $objValidation->setPrompt('Only numbers between 10 and 20 are allowed.');
                $objValidation->setFormula1(10);
                $objValidation->setFormula2(20);
                $objPHPExcel->getActiveSheet()->getCell('B3')->setDataValidation($objValidation);

                //Create a new worksheet, after the default sheet 创建新的工作标签
                $objPHPExcel->createSheet();
                $objPHPExcel->setActiveSheetIndex(1);

                //Set header and footer. When no different headers for odd/even are used, odd header is assumed. 页眉页脚
                $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&C&HPlease treat this document as confidential!');
                $objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N');

                //Set page orientation and size 方向大小
                $objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);
                $objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);

                //Rename sheet 重命名工作表标签
                $objPHPExcel->getActiveSheet()->setTitle('Simple');

                //Set active sheet index to the first sheet, so Excel opens this as the first sheet
                $objPHPExcel->setActiveSheetIndex(0);

                //Save Excel 2007 file 保存
                $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
                $objWriter->save(str_replace('.php', '.xlsx', __FILE__));
  
                //Save Excel 5 file 保存
                require_once('Classes/PHPExcel/Writer/Excel5.php');
                $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
                $objWriter->save(str_replace('.php', '.xls', __FILE__));

                //1.6.2新版保存
                require_once('Classes/PHPExcel/IOFactory.php');
                $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
                $objWriter->save(str_replace('.php', '.xls', __FILE__));


        读excel
                //Include class
                require_once('Classes/PHPExcel/Reader/Excel2007.php');
                $objReader = new PHPExcel_Reader_Excel2007;

                $objPHPExcel = $objReader->load("05featuredemo.xlsx");


        读写csv
      
                require_once("05featuredemo.inc.php");
                require_once('Classes/PHPExcel/Writer/CSV.php');
                require_once('Classes/PHPExcel/Reader/CSV.php');
                require_once('Classes/PHPExcel/Writer/Excel2007.php');

                //Write to CSV format 写
                $objWriter = new PHPExcel_Writer_CSV($objPHPExcel);
                $objWriter->setDelimiter(';');
                $objWriter->setEnclosure('');
                $objWriter->setLineEnding("\r\n");
                $objWriter->setSheetIndex(0);
                $objWriter->save(str_replace('.php', '.csv', __FILE__));

                //Read from CSV format 读
                $objReader = new PHPExcel_Reader_CSV();
                $objReader->setDelimiter(';');
                $objReader->setEnclosure('');
                $objReader->setLineEnding("\r\n");
                $objReader->setSheetIndex(0);
                $objPHPExcelFromCSV = $objReader->load(str_replace('.php', '.csv', __FILE__));

                //Write to Excel2007 format
                $objWriter2007 = new PHPExcel_Writer_Excel2007($objPHPExcelFromCSV);
                $objWriter2007->save(str_replace('.php', '.xlsx', __FILE__));


        写html

                require_once("05featuredemo.inc.php");
                require_once('Classes/PHPExcel/Writer/HTML.php');

                //Write to HTML format
                $objWriter = new PHPExcel_Writer_HTML($objPHPExcel);
                $objWriter->setSheetIndex(0);
                $objWriter->save(str_replace('.php', '.htm', __FILE__));


        写pdf

                require_once("05featuredemo.inc.php");
                require_once('Classes/PHPExcel/IOFactory.php');

                //Write to PDF format
                $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
                $objWriter->setSheetIndex(0);
                $objWriter->save(str_replace('.php', '.pdf', __FILE__));
                //Echo memory peak usage
                echo date('H:i:s') . " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB\r\n";

http://hi.baidu.com/%C1%B5%C4%E3no%C1%BD%C8%FD%CC%EC/blog/item/79a4dbc46f090ac5d10060d9.html

Windows 防火牆 造成 Ping 無回應

控制台->Windows防火牆->進階->ICMP->設定值->允許傳入的回應要求(打勾)

總結PHPExcel的用法

總結一下PHPExcel的用法~ <?
//設置PHPExcel類庫的include path//這裡貌似直接include類文件就可以了
# set_include_path('.'. PATH_SEPARATOR .
# 'ExcelPHP_LIBS' . PATH_SEPARATOR .
# get_include_path());
/**
* 以下是使用示例,對於以//// 開頭的行是不同的可選方式,請根據實際需要
* 打開對應行的註釋。
* 如果使用Excel5 ,輸出的內容應該是GBK編碼。
*/
require_once 'PHPExcel.php';
// uncomment
////require_once 'PHPExcel/Writer/Excel5.php';// 用於其他低版本xls
// or
////require_once 'PHPExcel/Writer/Excel2007.php'; // 用於excel-2007 格式
// 創建一個處理對象實例
$objExcel = new PHPExcel();
// 創建文件格式寫入對象實例, uncomment
////$objWriter = new PHPExcel_Writer_Excel5($objExcel);// 用於其他版本格式
// or
////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用於2007 格式
//$objWriter->setOffice2003Compatibility(true);//實際使用中並無此方法,去掉之後使用正常。可能是版本問題。
//*************************************
//設置文檔基本屬性
$objProps = $objExcel->getProperties();
$objProps->setCreator("Zeal Li");
$objProps->setLastModifiedBy("Zeal Li");
$objProps->setTitle("Office XLS Test Document");
$objProps->setSubject("Office XLS Test Document, Demo");
$objProps->setDescription("Test document, generated by PHPExcel.");
$objProps->setKeywords("office excel PHPExcel");
$objProps->setCategory("Test");
//*************************************
//設置當前的sheet索引,用於後續的內容操作。
//一般只有在使用多個sheet的時候才需要顯示調用。
//缺省情況下,PHPExcel會自動創建第一個sheet被設置SheetIndex=0
$objExcel->setActiveSheetIndex(0);

$objActSheet = $objExcel->getActiveSheet();
//設置當前活動sheet的名稱
$objActSheet->setTitle('測試Sheet');
//*************************************
//設置單元格內容
//
//由PHPExcel根據傳入內容自動判斷單元格內容類型
$objActSheet->setCellValue('A1', '字符串內容');// 字符串內容
$objActSheet->setCellValue('A2', 26);// 數值
$objActSheet->setCellValue('A3', true);// 布爾值
$objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式
//顯式指定內容類型
$objActSheet->setCellValueExplicit('A5', '847475847857487584', PHPExcel_Cell_DataType::TYPE_STRING);//實際使用中這里報錯,是說沒有PHPExcel_Cell_DataType方法,去掉之後運行正常
//合併單元格
$objActSheet->mergeCells('B1:C22');
//分離單元格
$objActSheet->unmergeCells('B1:C22');
//*************************************
//設置單元格樣式
//
//設置寬度
$objActSheet->getColumnDimension('B')->setAutoSize(true);//這個比較有用,能自適應列寬
$objActSheet->getColumnDimension('A')->setWidth(30);
$objStyleA5 = $objActSheet->getStyle('A5');
//設置單元格內容的數字格式。
//
//如果使用了PHPExcel_Writer_Excel5 來生成內容的話,
//這裡需要注意,在PHPExcel_Style_NumberFormat 類的const 變量定義的
//各種自定義格式化方式中,其它類型都可以正常使用,但當setFormatCode
//為FORMAT_NUMBER 的時候,實際出來的效果被沒有把格式設置為"0"。需要
//修改PHPExcel_Writer_Excel5_Format 類源代碼中的getXf($style) 方法,
//在if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一
//行代碼:
//if($ifmt === '0') $ifmt = 1;
//
//設置格式為PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大數字
//被使用科學記數方式顯示,配合下面的setAutoSize 方法可以讓每一行的內容
//都按原始內容全部顯示出來。
$objStyleA5
&&&&->getNumberFormat()
&&&&->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER);
//設置字體
$objFontA5 = $objStyleA5->getFont();
$objFontA5->setName('Courier New');
$objFontA5->setSize(10);
$objFontA5->setBold(true);
$objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objFontA5->getColor()->setARGB('FF999999');
//設置對齊方式
$objAlignA5 = $objStyleA5->getAlignment();
$objAlignA5-​​>setHorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objAlignA5-​​>setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
//設置邊框
$objBorderA5 = $objStyleA5->getBorders();
$objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getTop()->getColor()->setARGB('FFFF0000'); // color
$objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//設置填充顏色
$objFillA5 = $objStyleA5->getFill();
$objFillA5->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objFillA5->getStartColor()->setARGB('FFEEEEEE');
//從指定的單元格複製樣式信息.
$objActSheet->duplicateStyle($objStyleA5, 'B1:C22');

//*************************************
//添加圖片
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('ZealImg');
$objDrawing->setDescription('Image inserted by Zeal');
$objDrawing->setPath('./zeali.net.logo.gif');
$objDrawing->setHeight(36);
$objDrawing->setCoordinates('C23');
$objDrawing->setOffsetX(10);
$objDrawing->setRotation(15);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(36);
$objDrawing->setWorksheet($objActSheet);

//添加一個新的worksheet
$objExcel->createSheet();
$objExcel->getSheet(1)->setTitle('測試2');
//保護單元格
$objExcel->getSheet(1)->getProtection()->setSheet(true);
$objExcel->getSheet(1)->protectCells('A1:C22', 'PHPExcel');

//*************************************
//輸出內容
//
$outputFileName = "output.xls";
//到文件
////$objWriter->save($outputFileName);
//or
//到瀏覽器
////header("Content-Type: application/force-download");
////header("Content-Type: application/octet-stream");
////header("Content-Type: application/download");
////header('Content-Disposition:inline;filename="'.$outputFileName.'"');
////header("Content-Transfer-Encoding: binary");
////header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
////header("Last-Modified: " . gmdate("D, d MYH:i:s") . " GMT");
////header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
////header("Pragma: no-cache");
////$objWriter->save('php://output');
?>
PS.PHP果然是個好東西~~什麼包都有~~
文章來源:
http://www.5kai.com/post/359/
http://blog.chinaunix.net/u/13284/showart_1071984.html
另:header的用法:http://zhidao.baidu.com/question/8681288.html?si=2
       header中各文件類型的表示方法:http://hi.baidu.com/phpyao/blog/item/d4ab4ab11e27ca52092302d4.html
       PHP導出EXCEL的不完全總結:http://hi.baidu.com/jricode/blog/item/165a66245cfd023b8744f9bb.htmlChūntiān jiùshì ràng rén chōngmǎn huólì ~yīgè xiàwǔ gǎo dìng liǎo bù shǎo shìqíng.

使用PHPExcel導入Excel

PHPExcel 官方網站: http://www.codeplex.com/PHPExcel
運行環境:
» PHP version 5.2.0 或更高
» PHP extension php_zip 支持 *)
» PHP extension php_xml 支持
» PHP extension php_gd2 支持
*) php_zip 是被PHPExcel_Reader_Excel2007,PHPExcel_Writer_Excel2007 和PHPExcel_Reader_OOCalc所使用。換句話說,如果你需要使用PHPExcel 去處理.xlsx 或者.ods 後綴的文件時,就需要zip 擴展的支持,否則就不需要。
安裝簡介:
安裝過程相當簡單: 把下載到文件中的Classes 文件夾複製你程序中需要使用的地方。
例如:
假如你的網站目錄是/var/www/ 你可​​以時面新建一個文件夾如/var/www/Classes/ 然後將文件複製進去就可以了,文件的名字如下面的:
/var/www/Classes/PHPExcel.php
/var/www/Classes/PHPExcel/Calculation.php
/var/www/Classes/PHPExcel/Cell.php

原文:http://www.vipaq.com/Detail/view/item/90.html

使用phpExcel類導出excel文件相關問題總結

用phpExcel類導出excel文件相關問題總結

                      
Autor:霍小慶time:2011-04-22



總結一下最近使用phpexcel類導出excel 文件時遇到的問題,主要包括三大類:

  
1.導​​出時提示找不到文件怎麼辦?

  
2.導出excel時中文出現亂碼的問題。

  
3.導出數據量大時,提示內存超過最大值或者運行時間超時的問題。


先看下phpexcel常用的方法總結(摘錄自zeal_blog:http://www.zeali.net/entry/556)

<?
/**

 
* 如果使用Excel5 ,輸出的內容應該是GBK編碼。

 
*/
require_once 'PHPExcel.php';
//require_once 'PHPExcel/Writer/Excel5.php'; // 用於其他低版本xls
//require_once 'PHPExcel/Writer/Excel2007.php'; // 用於excel-2007 格式
// 創建一個處理對象實例
$table = new PHPExcel();
//設置文檔基本屬性
$table = $table->getProperties();
$table->setCreator("username");
$table->setLastModifiedBy("username");
$table->setTitle("document_title");
$table->setSubject("");
$table->setDescription("Test document, generated by PHPExcel.");
$table->setKeywords("office excel PHPExcel");
$table->setCategory("Test");
//設置當前的sheet索引,用於後續的內容操作。
//一般只有在使用多個sheet的時候才需要顯示調用。
//缺省情況下,PHPExcel會自動創建第一個sheet被設置SheetIndex=0
$table->setActiveSheetIndex(0);
//設置當前活動sheet的名稱
$table->setActiveSheetIndex(0)->setTitle('test_title');
$ohjActSheet=$table->setActiveSheetIndex(0);

//設置單元格內容
//由PHPExcel根據傳入內容自動判斷單元格內容類型
$objActSheet->setCellValue('A1', '字符串內容'); // 字符串內容
$objActSheet->setCellValue('A2', 26); // 數值
$objActSheet->setCellValue('A3', true); // 布爾值
$objActSheet->setCellValue('A4', '=SUM(A2:A2)'); // 公式
//顯式指定內容類型
$objActSheet->setCellValueExplicit('A5', '847475847857487584',

 
PHPExcel_Cell_DataType::TYPE_STRING);
//合併單元格
$objActSheet->mergeCells('B1:C22');
//分離單元格
$objActSheet->unmergeCells('B1:C22');
//設置單元格樣式
$objActSheet->getColumnDimension('B')->setAutoSize(true);
$objActSheet->getColumnDimension('A')->setWidth(30);
$objStyleA5 = $objActSheet->getStyle('A5');


//設置字體
$objFontA5 = $objStyleA5->getFont();
$objFontA5->setName('Courier New');
$objFontA5->setSize(10);
$objFontA5->setBold(true);
$objFontA5->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objFontA5->getColor()->setARGB('FF999999');
//設置對齊方式
$objAlignA5 = $objStyleA5->getAlignment();
$objAlignA5-​​>setHorizo​​ntal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); //水平
$objAlignA5-​​>setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //垂直
//設置邊框
$objBorderA5 = $objStyleA5->getBorders();
$objBorderA5->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getTop()->getColor()->setARGB('FFFF0000'); // color
$objBorderA5->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objBorderA5->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
//設置填充顏色
$objFillA5 = $objStyleA5->getFill();
$objFillA5->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objFillA5->getStartColor()->setARGB('FFEEEEEE');
//從指定的單元格複製樣式信息.
$objActSheet->duplicateStyle($objStyleA5, 'B1:C22');
//添加圖片
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('ZealImg');
$objDrawing->setDescription('Image inserted by Zeal');
$objDrawing->setPath('./zeali.net.logo.gif');
$objDrawing->setHeight(36);
$objDrawing->setCoordinates('C23');
$objDrawing->setOffsetX(10);
$objDrawing->setRotation(15);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(36);
$objDrawing->setWorksheet($objActSheet);
//添加一個新的worksheet
$table->createSheet();
$table->getSheet(1)->setTitle('測試2');
//保護單元格
$table->getSheet(1)->getProtection()->setSheet(true);
$table->getSheet(1)->protectCells('A1:C22', 'PHPExcel');
//輸出內容
$outputFileName = "output.xls";
//到文件
//$objWriter->save($outputFileName);
//or
//到瀏覽器
//header("Content-Type: application/octet-stream");
//header('Content-Disposition:inline;filename="'.$outputFileName.'"');
//header("Content-Transfer-Encoding: binary");
//header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
//header("Last-Modified: " . gmdate("D, d MYH:i:s") . " GMT");
//header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
//header("Pragma: no-cache");
//$objWriter->save('php://output');
?>
使用時常見的問題總結:
1.關於提示找不到文件的問題:
原因可能有:緩衝區沒有打開或者mb_overlod_func函數沒有關閉,解決這個問題的最好辦法是把php.ini中display_errors打開,下載文件,打開後會提示相應錯誤信息。若是後者,則需要打開php.ini文件,找到mbsrtring.func_overload=7將其隱掉。
若能正常導出excel但是沒有數據,則一般是程序錯誤(沒有取到數據或數據沒賦值)
2.導出excel時出現亂碼的問題,這個問題網上的答案很多。主要的解決方案有:

  
(1).亂碼原因:客戶使用的中文版Windows系統平台,而Windows平台的文件名編碼為gb2312(gbk),而我們網頁編碼為了跟進現存潮流一般都採用utf-8(國際化)編碼,這時當我們:header("Content-Disposition: inline; filename=\"" . $filename . ".xls-:special:1:-")時就會出現亂碼,假如你的網頁編碼就是gb2312那就不用考慮編碼問題了(否則轉碼了反而會出現亂碼)。

  
解決辦法:對$filename轉碼,執行:iconv('utf-8", "gb2312", $filename)。假如你的環境不支持iconv函數可以換別的函數,只要能將$filename的編碼轉為gbk就行。
(2):輸出文件的時候加上相應的頭信息:
Header('content-Type:application/vnd.ms-excel;charset=utf-8');
(3).如果以上方法還是出現亂碼,則可能是輸出緩衝區中有其他多餘的內容,在php文件中設置excel內容之間清理一下輸出緩衝區吧:<? php ob_clean();? >
以上三步基本可以涵蓋到多數excel亂碼的問題。
3.導出大數據時提示錯誤
打開php.ini文件中的display_errors,查看具體錯誤信息:一般情況下有兩類:
(1).runtime 超過了maxium time,這個時候可能的原因是文件中出現了死循環或者大循環。檢查源碼看是否有死循環。建議不要在循環體中設置excel格式,佔據的時間超多。經初步測試,在循環體中設置3-4個格式,則大約1500條數據時就會出現運行超時的問題。因此盡量把設置格式的代碼放置到循環體外。
(2).memory size of ....bytes exhausted這是典型的內存不夠用的情況。如可以修改php.ini文件則找到memory_limit = 32M將其改為memory_limit = 64M或者更大128M.如是遠程不能修改php.ini文件,則需要在代碼中修改:@ini_set('memory_limit','64M' );

在使用PHPExcel導出Excel時出現的幾個錯誤的解決辦法

 PHPExcel是PHP中功能最強大的導入、導出、操作Microsoft Excel的開源項目。但是它體系複雜,有時會讓人難以掌控。
由於Microsoft Office是商業軟件,因此在Office2003及之前的版本,微軟的文檔格式是不公開的。這導致別的Office辦公軟件處於極其被動的地位,因為他們再怎麼努力,也很難完全兼容被普遍使用的Microsoft Office Word、Microsoft Office PowerPoint、Microsoft Office Excel等軟件。在Microsoft Office 2007版推出以後,微軟採用了XML作為這些文檔的底層存儲方式,並且努力推廣Office2007所採用Open Office XML(OOXML)成為國際文檔格式標準。雖然中國投了反對票,但是最終在今年4月初,ISO通過快速通道投票確認微軟提出的OOXML因大多數成員認可而成為國際文檔格式標準。
但是,OOXML文檔格式標準“規格極其複雜,設計完全落伍”(“中國自由軟件界元老”之稱的宮敏博士之語),仍然很難被其它軟件所掌控。從這個意義上來說,PHPExcel真的是一款非常牛的開源軟件了。它能夠從PHP中導出各種版本的Excel文檔(包括Excel2007格式的文檔),並且支持一定程度的複雜格式。
不過言歸正傳,由於PHPExcel為了去產生Microsoft Office的文檔,因此可能在導出Excel的時候會出一些奇怪的錯誤。如果你發現使用PHPExcel導出的Excel表無法用MS Excel打開,可以嘗試使用文本文檔或者是EditPlus打開導出的Excel文件,看看是否有提示何種錯誤。以下是兩種錯誤的解決辦法:
(1)Fatal error: Maximum execution time of 30 seconds exceeded解決錯誤方法
需要修改php.ini文件,如果是使用Ubuntu 9.04 Server的服務器,可以在/etc/php5/apache2/下找到php.ini文件,如果是Freebsd,可以在/usr/local/lib/下找到php.ini文件。使用sudo權限編輯下面的語句:
將如下語句:
max_execution_time = 30
修改為:
max_execution_time = 300
也就是將PHP腳本最長執行時間從30秒延長到300秒。
然後重啟一下Apache服務器,如果是Ubuntu Server的服務器,可以使用如下命令:
sudo /etc/init.d/apache2 restart
(2)Fatal error: Allowed memory size of 16777216 bytes exhausted 的解決辦法
一樣地需要修改php.ini文件:
將如下語句:
memory_limit = 16M
修改為:
memory_limit = 512M
也就是將PHP腳本所能夠申請的內存從16M擴大到512M。具體數字可以根據自己的需要確定。
一樣需要重啟Apache服務器。
需要注意的是:
(1)以上的修改可能存在一定風險,例如給​​服務器造成過大的負擔。所以請再三確認是否有必要給PHPExcel或者是其他PHP程序開放更大的內存空間以及更長的執行時間。
(2)修改完php.ini之後,只有重啟Apache之後,新的設置才會生效。
(3)php.ini中的設置,請根據自己服務器的情況量力而行。

Fatal error: Class 'ZipArchive' not found的解決辦法

Fatal error: Class 'ZipArchive' not found的解決辦法
出現這個錯誤說明是程序在調用'ZipArchive' 這個類的時候沒有成功,原因是由於在安裝php的時候沒有增加php zip的支持(非zlib)。
在Windows下的解決辦法是:
1、在p​​hp.ini文件中,將extension=php_zip.dll前面的分號“;”去除;
(如果沒有,請添加extension=php_zip.dll此行並確保php_zip.dll文件存在相應的目錄)
然後同樣在php.ini文件中,將zlib.output_compression = Off 改為zlib.output_compression = On ;
2、重啟Apache服務器。
在Unix/Linux下的解決辦法:
1、在Linux下沒有php_zip.dll這個文件(有也不會起作用的),所以需要重新編譯一下php的zip模塊。具體安裝方法如下:
cd /usr/src
wget http://pecl.php.net/get/zip
tar -zxvf zip
cd zip-1.x.x
phpize
./configure
make
sudo make instal
其中, 在最後使用make install命令的時候,可能需要用到root的權限,所以建議使用sudo來運行。安裝完之後,屏幕上會提示zip.so的位置。然後將其記錄下來,如:/usr/local/lib/php/extensions/zip.so。
2、使用root權限修改php.ini(通常可能會在/usr/local/lib/文件夾下,不過視當初安裝php而定,可以通過phpinfo()來查看):
增加extension = /usr/local/lib/php/extensions/zip.so,然後同樣在php.ini文件中,將zlib.output_compression = Off 改為zlib.output_compression = On ;
3、最後別忘了重啟一下Apache:apachectl restart;
這個針對php的zip模塊就安裝完成了,能夠在php中使用ZipArchive類了

對onreadystatechange屬性的理解

在編寫Ajax方法的時候,我們經常會寫上類似於這樣的代碼:




XMLHTTPRequest的屬性和方法

由於現在在公司負責製作標準的靜態頁面,為了增強客戶體驗,所以經常要做些AJAX效果,也學你也和我一樣在,學習AJAX。而設計AJAX時使用的一個重要的技術(工具)就是XMLHTTPRequest對象了。這里海嘯把我學習XMLHTTPRequest對象的一點資料拿出來跟大家一起分享。文中的資料都是海嘯在學習時在網上收集的,如果您看過,那就再加深下印象吧!

JavaScript 背景及特色

JavaScript 早期是由 Netscape Communications 公司所開發的一種解譯式程式語言,專門用在網頁中,並在用戶端的電腦執行,以提高網頁的互動性為主要目標。早期的瀏覽器,例如 Netscape,也只有支援 JavaScript 為主要的客戶端網頁程式語言。而近期的微軟瀏覽器 IE,則可以支援兩種程式語言,包含 JavaScript 和 VBScript,但是 JavaScript 還是網頁內訂預設的客戶端程式語言。因此只有 JavaScript 能夠同時適用於各大瀏覽器,如 IE、FireFox 和 Chrome 等。

如何成為AJAX高手

提起javascript,很多程序員都覺得不屑一顧,總是認為他很低級.假如在C/S產品開發模式下,JS的確沒什麼大的用處.可是在GOOGLE一夜間將地圖搜索推出後,這個世界就起了些微妙的變化,直到今年除夕,微軟偷偷將LIVE上線,接著將LIVE的產品級別提到和旗艦產品WINDOWS一樣高時,javascript終於發威了.

使用者驗證 (Windows登入視窗)


實做一個,利用Windows驗證的HTTP驗證機制

輸入的資訊會被儲存至伺服器變數$_SERVER['PHP_AUTH_USER']與$_SERVER['PHP_AUTH_PW']中,當帳號與密碼錯誤3次or按下取消後網頁會直接輸出未經驗證的存取。

註這種HTTP認證機制只有在PHP是Apache模組方式運行才有效









如何偵測自己的網路速度?

如何偵測自己的網路速度?

網站名稱:測試連線速率
網站網址:http://www.hinet.net/support/testspeed.html

轉貼於 http://sofree.cc/hinet-speed-test/