1. Elemen Persiapan
1) Ganti file font js
Kode JS:
Fungsi com_stewartspeak_replacement () {/* Dynamic Heading Generator oleh Stewart Rosenberger http://www.stewartspeak.com/headings/ skrip ini mencari melalui halaman web untuk elemen spesifik atau umum dan menggantikannya dengan gambar yang dihasilkan secara dinamis, bersamaan dengan server-side-side-elemen dan umum dan menggantikannya secara dinamis, bersamaan dengan server-side-side-side-server-side dan menggantikannya secara dinamis, bersamaan dengan server-side-side-side-server-sisi script.*/replaceSelector("h1","dynatext/heading.php",true);//The first two parameters need to be modified var testURL = "dynatext/loading.gif" ;//Modify to the corresponding image path var doNotPrintImages = false;var printerCSS = "replacement-print.css"; var hideflicker = false; var hideflickercss = "Replacement-screen.css"; var hideflickerTimeout = 100; // Modifikasi yang bertanggung jawab dapat dilakukan di sini/* ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Javascript. Dan ambil soda atau semacamnya.*/ Var item; var imageloaded = false; var documentloaded = false; Function ReplacesElector (pemilih, url, wordwrap) {if (typeof items == "tidak terdefinisi") item = array baru (); item [items.length] = {selector: selector, url: url, wordwrap: wordwrap};} if (hideflicker) {document.write ('<tautan id = "hide-flicker" rel = "stylesheet" media = "screen" href = "' + hideflickercsss + '" /'); window.flickerCheck = function () {if (! Imageloaded) setstylesheetstate ('hide-flicker', false); }; setTimeout ('window.flickerCheck ();', hideflickerTimeOut)} if (donotprintimages) document.write ('<tautan id = "print-text" rel = "stylesheet" media = "cetak" href = "' + printercss + '" />'); var test = gambar baru (); test.onload = function () {imageloaded = true; if (documentloadeded) pengganti (); }; test.src = testurl + "? Tanggal =" + (tanggal baru ()). getTime (); addloadHandler (function () {documentloaded = true; if (imageloaded) pengganti ();}); function documentload () {documentloaded = true; if (imageloaded) pengganti ();} penggantian fungsi () {for (var i = 0; i <items.length; i ++) {var elemen = getElementsbyselector (item [i] .selector); if (elements.length> 0) untuk (var j = 0; j <elements.length; j ++) {if (! elemen [j]) lanjutkan; var text = extractText (elemen [j]); while (elemen [j] .haschildnodes ()) elemen [j] .removechild (elemen [j] .firstchild); var tokens = item [i] .wordwrap? text.split (''): [teks]; untuk (var k = 0; k <tokens.length; k ++) {var url = item [i] .url+"? text ="+Escape (token [k]+'')+"& selector ="+Escape (item [i] .selector); var image = document.createElement ("img"); image.classname = "penggantian"; image.alt = token [k]; image.src = url; elemen [j] .AppendChild (gambar); } if (donotprinTimages) {var span = document.createElement ("span"); span.style.display = 'none'; span.classname = "cetak teks"; span.appendChild (document.createTextNode (teks)); elemen [j] .AppendChild (span); }}} if (hideflicker) setstylesheetstate ('hide-flicker', false);} fungsi addloadHandler (handler) {if (window.addeventListener) {window.addeventlistener ("muat", pawang, false); } else if (window.attachevent) {window.attachevent ("onload", handler); } else if (window.onload) {var oldhandler = window.onload; window.onload = function piggyback () {oldhandler (); Handler (); }; } else {window.onload = handler; }} fungsi setstylesheetstate (id, diaktifkan) {var sheet = document.getElementById (id); if (sheet) sheet.disabled = (! diaktifkan);} function extractText (elemen) {if (typeof elemen == "string") return element; selain itu jika (tipe elemen == "tidak terdefinisi") elemen pengembalian; lain if (element.innerText) return element.innerText; var text = ""; var kids = element.childnodes; untuk (var i = 0; i <kids.length; i ++) {if (anak -anak [i] .nodetype == 1) Teks+= ExtractText (anak -anak [i]); lain jika (anak -anak [i] .nodetype == 3) Teks += anak -anak [i] .nodevalue; } mengembalikan teks;} /* menemukan elemen pada halaman yang cocok dengan aturan pemilih CSS yang diberikan. Beberapa aturan yang rumit tidak kompatibel. Berdasarkan fungsi "GetElementsBySelector" Simon Willison. Kode Asli (dengan komentar dan deskripsi): http://simon.incutio.com/archive/2003/03/25/geteLementsByselector*/function GetElementsbyselector (selector) {var Tokens = selector.split (''); var currentContext = array baru (dokumen); untuk (var i = 0; i <tokens.length; i ++) {token = token [i] .replace (/^/s+/, ''). Ganti (// S+$/, ''); if (token.indexof ('#')> -1) {var bits = token.split ('#'); var tagname = bit [0]; var id = bit [1]; var element = document.geteLementById (id); if (tagname && element.nodename.tolowercase ()! = tagname) mengembalikan array baru (); currentContext = array baru (elemen); melanjutkan; } if (token.indexof ('.')> -1) {var bits = token.split ('.'); var tagname = bit [0]; var classname = bit [1]; if (! tagname) tagname = '*'; var ditemukan = array baru; var foundcount = 0; untuk (var h = 0; h <surtercontext.length; h ++) {var elemen; if (tagname == '*') elemen = currentContext [h] .semua? CurrentContext [h] .sall: currentContext [h] .geteLementsByTagname ('*'); elements elements = currentContext [h] .geteLementsByTagname (tagName); untuk (var j = 0; j <elemen.lements; j ++) ditemukan [foundcount ++] = elemen [j]; } currentContext = array baru; var currentContextIndex = 0; untuk (var k = 0; k <found.length; k ++) {if (found [k] .classname && found [k] .classname.match (regexp baru ('// b'+classname+'// b'))) aruscontext [currentContextIndex ++] = found [k]; } melanjutkan; } if (token.match (/^(/w*)/[(/w+) ([= ~/|/^/$/*]?) =? "? ([^/]"]*) "?/] $/)) {var tagname = regexp. $ 1; var attrname = regexp. $ 2; var tagname = regexp. $ 1; var attrname = regexp. $ 2; var tagname = regexp. $ 1; var attrname = regexp. $ 2; var tagname = regexp. $ 1; var attrname = regexp. $ 2; var tagname = regexp. $ 1; var attrname = regexp. $ 2; var tagname = regexp. $ 1; var attrname = regexp. $ 2; var tagname = regexp. if (! Tagname) tagname = '*'; CurrentContext [h] .getElementsbyTagname (tagName); attrvalue); Regexp (^'+attrvalue+'-? '))); } break; } break; Token Found = Array Baru; Var FoundCount = 0; } // Akhir Lingkup, Jalankan CodeF (Document.CreateElement && Document.GetElementsByTagname &&! Navigator.useragent.match (/opera //? 6/i)) com_stewartspeak_replacement ();2) menghasilkan file php gambar
<? PHP/* Generator Heading Dynamic oleh Stewart Rosenberger http://www.stewartspeak.com/headings/ Script ini menghasilkan gambar png teks, yang ditulis dalam font/ukuran yang Anda tentukan. Gambar PNG ini diteruskan kembali ke browser. Secara opsional, mereka dapat di -cache untuk digunakan nanti. Jika gambar yang di -cache ditemukan, gambar baru tidak akan dihasilkan, dan salinan yang ada akan dikirim ke browser. Dokumentasi tambahan tentang kemampuan penanganan gambar PHP dapat ditemukan di http://www.php.net/image/ */$ font_file = 'trebuc.ttf'; // xiuga $ font = 23; ; $ transparent_background = true; $ cache_images = true; $ cache_folder = 'cache';/* ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; $ send_buffer_size = 4096; // Periksa GD SupportIf (! Function_exists ('ImageCreate')) fatal_error ('Kesalahan: Server tidak mendukung pembuatan gambar PHP'); // Bersihkan tekstif (kosong ($ _ get ['text'])) fatal_error ('Kesalahan: tidak ada teks yang ditentukan.'); $ text = $ _get ['text']; if (get_magic_quotes_gpc ()) $ text = stripslashes ($ text); $ text = javascript_to_html ($ text); // Cari salinan yang di -cache, kirim jika ada $ hash = md5 (basa ($ font_file). $ font_size. $ font_color. $ latar belakang_color. $ transparent_background. $ text); $ cache_filename = $ cache_folder. '/'. $ hash. $ extension; if ($ cache_images && ($ file = @fopen ($ cache_filename, 'rb'))) {header ('tipe konten:'. $ mime_type); while (! feof ($ file)) cetak (($ buffer = fread ($ file, $ send_buffer_size)))); fclose ($ file); Keluar;} // Periksa ketersediaan font $ font_found = is_readable ($ font_file); if (! $ font_found) {fatal_error ('Kesalahan: server tidak ada font yang ditentukan.');} // Buat gambar $ latar belakang_rgb = hex_to_rgb ($ latar belakang_color); font hackbb = hex_to_rgb ($ background_color); fontgrgb = hex_to_rgb ($ background_color); font latar belakang_rgb = hex_to_rgb ($ background_color); fontgrgb = hex_to_rgb ($ background_color); fontgrgb = hex_to_rgb ($ latar belakang_color); hex_to_rgb($font_color) ;$dip = get_dip($font_file,$font_size) ;$box = @ImageTTFBBox($font_size,0,$font_file,$text) ;$image = @ImageCreate(abs($box[2]-$box[0]),abs($box[5]-$dip)) ;if(!$image || ! $ box) {fatal_error ('Kesalahan: Server tidak dapat membuat gambar heading ini.');} // mengalokasikan warna dan menggambar teks $ latar belakang_color = @imagecolorallocate ($ gambar, $ latar belakang_rgb ['merah'], $ latar belakang_rgb ['hijau'], $ latar belakang_rgb ['blue']; 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); // atur transparentif ($ transparent_background) imagecolortransparent ($ image, $ latar belakang_color); header ('tipe konten:'. $ mime_type); imagepng ($ image); // Simpan salinan gambar untuk cacheif ($ cache_images) {@imagepng ($ image, $ cache_filename);} Imagedestroy ($ image); KELUAR ; /* Cobalah untuk menentukan "DIP" (piksel yang dijatuhkan di bawah baseline) dari font ini untuk ukuran ini.*/Function get_dip ($ font, $ size) {$ test_chars = 'abcdefghijklmnopqrstuvwxyz'. 'Abcdefghijklmnopqrstuvwxyz'. '1234567890'. '! @#$%^&* ()/' "///;.,` ~ <> [] {}-+_- = '; $ box = @imagettfbbox ($ size, 0, $ font, $ test_chars); return $ box [3];}/* upaya untuk membuat gambar yang berisi pesan kesalahan yang diberikan. Jika berfungsi, gambar itu adalah gambar. browser sebagai kode 500. */Fungsi fatal_error ($ pesan) {// Kirim gambar if (function_exists ('imagecreate')) {$ width = imagefontwidth (5) * strlen ($ pesan = 10; ImagecolorAlloce ($ Image, 255.255.255); header ("http/1.0 500 internal server error"); if ($ 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); if (! Empty ($ matches)) untuk ($ i = 0; $ i <sizeof ($ cocok [0]); $ i ++) $ text = str_replace ($ cocok [0] [0]); '&#'. Hexdec ($ cocok [1] [$ i]). ';', $ text);3) Font yang diperlukan
Di sini Anda menempatkan diri yang diperlukan di direktori yang sama dengan file JS dan PHP (Anda juga dapat memodifikasinya, tetapi file yang sesuai juga perlu dimodifikasi)
4) Perpustakaan GD2 PHP
2. Kode HTML yang diimplementasikan
<? php // Muat pustaka util popup // membutuhkan_once 'include/popup_utils.inc.php';?> <! Doctype html public "-// w3c // dtd xhtml 1.1 // en" "http://www.w3.org/trtml>" "http://www.w3.org/trtml> <Head> <title> Optimalisasi mesin pencari profesional dengan PHP: DAFTAR ISI </itement> <Tipe Script = "Teks/JavaScript" Bahasa = "JavaScript" SRC = "Dynatext/Replacement.js"> </script> </head> <body onload = "window.resizeto (800.600);" onresize = 'setTimeout ("window.resizeto (800.600);", 100)'> <h1> Optimalisasi mesin pencari profesional dengan PHP: DAFTAR ISI </h1> <? PHP // Tampilkan navigasi popup hanya ketika pengunjung berasal dari serp // display_navigasi (); // display_popup_navigation (); ?> <ol> <li> Anda: Pemasar Mesin Programmer dan Pencari </li> <li> Primer dalam SEO dasar </li> <li> URL ramah-se-friendly </li> <li> Relokasi Konten dan Kode Status HTTP </li> <li> Duplikat Konten </li> <li> Se-friendly HTML dan JAVAS dan JAVAS JAVAS </LI> <li> <li> Se-friendly HTML dan JAVAS dan JAVAS dan JAVAS HTML dan JAVAS HTML dan JAVAS HTML dan JAVAS HTML dan JAVAS HTML dan JAVAS HTML dan JAVAS HTML dan JAVAS HTML DAN JAVAS/Li-Friendly HTML DAN JAVAS <Li> <li> Black Hat Seo </li> <li> Sitemaps </li> <li> Tautan Bait </li> <li> Cloaking IP, penargetan geo, dan pengiriman IP </li> <li> Bahasa asing seo </li> <li> </Li> <li> Klinik Situs: Anda memiliki situs web? <li> Pengantar Ekspresi Reguler </li> </ol> </body> </html>3. Perbandingan sebelum dan sesudah digunakan
Sebelum digunakan
Setelah digunakan