1. องค์ประกอบการเตรียมการ
1) แทนที่ไฟล์ตัวอักษร JS
รหัส JS:
ฟังก์ชั่น com_stewartspeak_replacement () {/* ตัวสร้างหัวเรื่องแบบไดนามิกโดย Stewart Rosenberger http://www.stewartspeak.com/headings/ สคริปต์นี้ค้นหาผ่านเว็บเพจสำหรับองค์ประกอบเฉพาะหรือทั่วไป พารามิเตอร์สองตัวแรกจะต้องได้รับการแก้ไข var testUrl = "dynatext/loading.gif"; // แก้ไขไปยังเส้นทางภาพที่สอดคล้องกัน var donotprintimages = false; var printercss = "replacement-print.css"; var hideflicker = false; var hideflickercss = "การแทนที่-screen.css"; var hideflickertimeout = 100; // การแก้ไขที่รับผิดชอบสามารถทำได้ที่นี่/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- JavaScript และคว้าโซดาหรือบางสิ่งบางอย่าง*/ var รายการ var imageLoaded = false; var documentloaded = false; ฟังก์ชั่นแทนที่ตัวเลือก (ตัวเลือก, url, wordwrap) {ถ้า (typeof items == "undefined") รายการ = new Array (); รายการ [items.length] = {ตัวเลือก: ตัวเลือก, url: url, url, wordwrap: wordwrap};} ถ้า (hideflicker) {document.write ('<link id = "hide-flicker" rel = "stylesheet" media = "หน้าจอ" href = " window.flickerCheck = function () {if (! imageLoaded) setstylesheetState ('hide-flicker', false); - settimeout ('window.flickercheck ();', hideflickertimeout)} ถ้า (donotprintimages) document.write ('<link id = "print-text" rel = "stylesheet" media = "print" href = "' + printercss + '" />'); var test = image ใหม่ (); test.onload = function () {imageLoaded = true; if (documentloaded) แทนที่ (); }; test.src = testUrl + "? date =" + (วันที่ใหม่ ()). getTime (); addloadhandler (function () {documentloaded = true; ถ้า (imageLoaded) แทนที่ ();}); ฟังก์ชั่น documentload () {documentloaded = true; if (imageLoaded) replacement ();} ฟังก์ชันการแทนที่ () {สำหรับ (var i = 0; i <items.length; i ++) {องค์ประกอบ var = getElementsBySelector (รายการ [i] .Selector); if (elements.length> 0) สำหรับ (var j = 0; j <elements.length; j ++) {ถ้า (! องค์ประกอบ [j]) ดำเนินการต่อ; var text = extractText (องค์ประกอบ [j]); ในขณะที่ (องค์ประกอบ [j] .haschildnodes ()) องค์ประกอบ [j] .removechild (องค์ประกอบ [j] .firstchild); var tokens = items [i] .wordWrap? text.split (''): [ข้อความ]; สำหรับ (var k = 0; k <tokens.length; k ++) {var url = items [i] .url+"? text ="+escape (tokens [k]+'')+"& selector ="+escape (Items [i] .Selector); var image = document.createElement ("IMG"); image.className = "การแทนที่"; image.alt = tokens [k]; image.src = url; องค์ประกอบ [j] .appendchild (รูปภาพ); } if (donotprintimages) {var span = document.createElement ("span"); span.style.display = 'ไม่มี'; span.className = "พิมพ์ข้อความ"; span.appendChild (document.createtextNode (ข้อความ)); องค์ประกอบ [j] .appendchild (ช่วง); }}} ถ้า (hideflicker) setstylesheetstate ('hide-flicker', false);} ฟังก์ชั่น addloadhandler (ตัวจัดการ) {ถ้า (window.addeventListener) {window.addeventListener ("โหลด", handler, false); } อื่นถ้า (window.attachevent) {window.attachevent ("onload", handler); } อื่นถ้า (window.onload) {var oldhandler = window.onload; window.onload = ฟังก์ชั่น piggyback () {oldhandler (); Handler (); - } else {window.onload = handler; }} ฟังก์ชั่น setstylesheetstate (id, เปิดใช้งาน) {var sheet = document.getElementById (id); if (sheet) sheet.disabled = (! enabled);} function extractText (องค์ประกอบ) {if (typeof element == "string") องค์ประกอบคืน; อื่นถ้า (typeof element == "undefined") องค์ประกอบส่งคืน; อื่นถ้า (element.innertext) return element.innerText; var text = ""; var kids = element.childnodes; สำหรับ (var i = 0; i <kids.length; i ++) {ถ้า (เด็ก [i] .nodeType == 1) ข้อความ+= extractText (เด็ก [i]); อื่นถ้า (เด็ก [i] .nodeType == 3) ข้อความ += เด็ก [i] .nodevalue; } ส่งคืนข้อความ;} /* ค้นหาองค์ประกอบในหน้าเว็บที่ตรงกับกฎตัวเลือก CSS ที่กำหนด กฎที่ซับซ้อนบางอย่างไม่เข้ากันได้ ขึ้นอยู่กับฟังก์ชั่น "GetElementsBySelector" ที่ยอดเยี่ยมของ Simon Willison รหัสต้นฉบับ (พร้อมความคิดเห็นและคำอธิบาย): http://simon.incutio.com/archive/2003/03/25/getElementsByselector*/function getElementsBySelector (ตัวเลือก) {var tokens = selector.split (''); var currentcontext = อาร์เรย์ใหม่ (เอกสาร); สำหรับ (var i = 0; i <tokens.length; i ++) {token = tokens [i]. replace (/^/s+/, '') แทนที่ (// s+$/, ''); if (token.indexof ('#')> -1) {var bits = token.split ('#'); var tagname = bits [0]; var id = บิต [1]; องค์ประกอบ var = document.getElementById (id); if (tagname && element.nodename.toLowerCase ()! = tagname) ส่งคืนอาร์เรย์ใหม่ (); currentContext = อาร์เรย์ใหม่ (องค์ประกอบ); ดำเนินการต่อ; } if (token.indexof ('.')> -1) {var bits = token.split ('.'); var tagname = bits [0]; var className = bits [1]; if (! tagname) tagname = '*'; พบ var = อาร์เรย์ใหม่; var foundCount = 0; สำหรับ (var h = 0; h <currentContext.length; h ++) {องค์ประกอบ var; ถ้า (tagname == '*') องค์ประกอบ = currentContext [h]. ทั้งหมด? CurrentContext [H] .All: CurrentContext [H] .getElementsByTagname ('*'); องค์ประกอบอื่น = currentContext [h] .getElementsByTagname (tagname); สำหรับ (var j = 0; j <elements.length; j ++) พบ [FoundCount ++] = องค์ประกอบ [J]; } currentContext = อาร์เรย์ใหม่; var currentcontextindex = 0; สำหรับ (var k = 0; k <found.length; k ++) {ถ้า (พบ [k] .classname && พบ [k] .classname.match (ใหม่ regexp ('// b'+classname+'// b')) currentContext } ดำเนินการต่อ; } if (token.match (/^(/w*)/[(/w+) ([= ~/|/^//$/*]?) =? "([^/]"]*) "?/] $/)) {var tagname = regexp. $ 1; if (tagname) tagname = '*'; CurrentConture [h] .getElementByTagname (tagname); Attrvalue); regexp ('^'+attrvalue+'-?'))); }; }; Found = ARRAY ใหม่; ขอบเขต, ดำเนินการ codeif (document.createelement && document.getElementByTagname &&! navigator.useragent.match (/opera //? 6/i)) com_stewartspeak_replacement ();2) สร้างไฟล์ php ของรูปภาพ
<? php/* ตัวสร้างหัวเรื่องแบบไดนามิกโดย Stewart Rosenberger http://www.stewartspeak.com/headings/ สคริปต์นี้สร้างภาพ PNG ของข้อความที่เขียนในตัวอักษร/ขนาดที่คุณระบุ ภาพ PNG เหล่านี้จะถูกส่งกลับไปยังเบราว์เซอร์ ทางเลือกพวกเขาสามารถแคชเพื่อใช้ในภายหลัง หากพบภาพแคชจะไม่สร้างภาพใหม่และสำเนาที่มีอยู่จะถูกส่งไปยังเบราว์เซอร์ เอกสารเพิ่มเติมเกี่ยวกับความสามารถในการจัดการรูปภาพของ PHP สามารถดูได้ที่ http://www.php.net/image/ */$ font_file = 'trebuc.ttf'; // xiuga $ font_size = 23; ; $ transparent_background = true; $ cache_images = true; $ cache_folder = 'cache';/* - - ; $ send_buffer_size = 4096; // ตรวจสอบ gd supportif (! function_exists ('imageCreate')) fatal_error ('ข้อผิดพลาด: เซิร์ฟเวอร์ไม่รองรับการสร้างภาพ PHP'); // ทำความสะอาด textif (ว่างเปล่า ($ _ get ['text'])) fatal_error ('ข้อผิดพลาด: ไม่ระบุข้อความ'); $ text = $ _get ['text']; if (get_magic_quotes_gpc ()) $ text = stripslashes ($ text); $ text = javascript_to_html ($ text); // ค้นหาสำเนาที่แคชส่งถ้ามีอยู่ $ hash = md5 (basename ($ font_file). $ font_size. $ font_color. $ background_color. $ transparent_background $ text); $ cache_filename = $ cache_folder - $ hash. $ extension; if ($ cache_images && ($ file = @fopen ($ cache_filename, 'rb'))) {header ('เนื้อหาประเภท:'. $ mime_type); ในขณะที่ (! feof ($ ไฟล์)) พิมพ์ (($ buffer = fread ($ ไฟล์, $ send_buffer_size))); fclose ($ ไฟล์); ออก;} // ตรวจสอบความพร้อมใช้งานของตัวอักษร $ font_found = is_readable ($ font_file); ถ้า (! $ font_found) {fatal_error ('ข้อผิดพลาด: เซิร์ฟเวอร์หายไปฟอนต์ที่ระบุ');} // สร้างภาพ $ background_rgb = hex_to_rgb hex_to_rgb ($ font_color); $ dip = get_dip ($ font_file, $ font_size); $ box = @imagettfbbox ($ font_size, 0, $ font_file, $ text); $ image = @imagecreate ||! $ box) {fatal_error ('ข้อผิดพลาด: เซิร์ฟเวอร์ไม่สามารถสร้างภาพหัวเรื่องนี้ได้');} // จัดสรรสีและวาดข้อความ $ background_color = @imagecolorallocate ($ image, $ background_rgb ['red'] imageColorallocate ($ image, $ font_rgb ['red'], $ font_rgb ['green'], $ font_rgb ['blue']); imagettftext ($ image, $ font_size, 0,-$ box [0], abs ($ box [5]-$ box [3])-$ box [1], $ font_color, $ font_file, $ text); // ตั้งค่าโปร่งใส ($ transparent_background) imageColorTransparent ($ image, $ background_color); ส่วนหัว ('เนื้อหาประเภท:'. $ mime_type); imagepng ($ image); // บันทึกสำเนาของภาพสำหรับ cacheif ($ cache_images) {@imagepng ($ image, $ cache_filename);} imagedestroy ($ image); ออก; /* พยายามกำหนด "จุ่ม" (พิกเซลลดลงต่ำกว่าพื้นฐาน) ของตัวอักษรนี้สำหรับขนาดนี้*/ฟังก์ชั่น get_dip ($ font, $ size) {$ test_chars = 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' '1234567890' '! @#$%^&* ()/' "///;.,` ~ <> [] {}-+_- = '; $ box = @imagettfbbox ($ size, 0, $ font, $ test_chars); ส่งกลับ $ [3]; เบราว์เซอร์เป็นรหัส 500 แทน */ฟังก์ชั่น fatal_error ($ ข้อความ) {// ส่งภาพถ้า (function_exists ('imageCreate')) {$ width = imageFontWidth (5) * strlen ($ ข้อความ) ImageColorAllocate ($ image, 255,255,255); ส่วนหัวของรหัส ("HTTP/1.0 500 ข้อผิดพลาดภายในเซิร์ฟเวอร์"); ถ้า ($ hex, 0,1) == '#') $ hex = substr ($ hex, 1); substr ($ hex, 2,1); $ rgb ['blue'] = hexdec (substr ($ hex, 4,2)); preg_match_all ('/%u ([0-9a-f] {4})/i', $ text, $ matches); '&#'. hexdec ($ matches [1] [$ i]). ';', $ text);3) แบบอักษรที่จำเป็น
ที่นี่คุณใส่ตัวเองที่จำเป็นในไดเรกทอรีเดียวกับไฟล์ JS และ PHP (คุณสามารถแก้ไขได้ แต่ต้องแก้ไขไฟล์ที่เกี่ยวข้องเช่นกัน)
4) ห้องสมุด GD2 ของ PHP
2. ใช้รหัส HTML ที่ใช้งาน
<? php // โหลดไลบรารีป๊อปอัพ utils // require_once 'รวม/popup_utils.inc.php';?> <! doctype html สาธารณะ "-// w3c // dtd xhtml 1.1 // en "" http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd "> <html> <head> <title> การเพิ่มประสิทธิภาพกลไกการค้นหาระดับมืออาชีพด้วย php: สารบัญ </title> <script type =" text/javascript </head> <body onload = "window.resizeto (800,600);" onResize = 'settimeout ("window.resizeto (800,600);", 100)'> <h1> การเพิ่มประสิทธิภาพกลไกค้นหาระดับมืออาชีพด้วย PHP: สารบัญ </h1> <? php // แสดงการนำทางป๊อปอัพเฉพาะเมื่อผู้เข้าชมมาจาก Serp // display_navigation (); // display_popup_navigation (); ?> <ol> <li> คุณ: โปรแกรมเมอร์และเครื่องยนต์ค้นหานักการตลาด </li> <li> ไพรเมอร์ใน SEO พื้นฐาน </li> <li> URL ที่เป็นมิตรกับการยั่วยุ SESINIDELY URL </li> <li> การย้ายเนื้อหาและรหัสสถานะ HTTP </li> <li> บุ๊กมาร์ก </li> <li> หมวกสีดำ seo </li> <li> sitemaps </li> <li> ลิงก์ bait </li> <li> การปิดบัง ip, การกำหนดเป้าหมายทางภูมิศาสตร์และการจัดส่ง IP </li> <li> ภาษาต่างประเทศ Seo </li> <li> การจัดการกับปัญหาทางเทคนิค </li> เว็บบล็อก? </li> <li> บทนำเกี่ยวกับนิพจน์ทั่วไป </li> </ol> </body> </html>3. เปรียบเทียบก่อนและหลังการใช้งาน
ก่อนใช้งาน
หลังการใช้งาน