PHP - Html Transfer Code


Posted in PHP onOctober 09, 2006

PHP - Html Transfer Code 超文本转换码,市面上这东西已经很滥(多)了,不过是这几天自己实践了一下~~~~

支持 多重嵌套 和 同标签嵌套,混合高亮显示(还有一点小问题)

自我感觉便于修改和扩充~~~~~~~~~~~

<?php
/**************************************************
*                                                 *
* Name    : Functions 4 Html Transfer Code (HTC)  *
* Version : 1.3.2                                 *
* Author  : Windy_sk                              *
* Create  : 2003-09-03                            *
* Modified: 2003-12-17                            *
* Email   : windy_sk@126.com                      *
* HomePage: None (Maybe Soon)                     *
* Notice  : U Can Use & Modify it freely,         *
*           BUT PLEASE HOLD THIS ITEM.            *
*                                                 *
**************************************************/

$htc_list = array(
                "B"                => "<b>\\1</b>",
                "I"                => "<i>\\1</i>",
                "U"                => "<u>\\1</u>",
                "CENTER"        => "<center>\\1</center>\n",
                "URL"                => "<a href='\\1'>\\1</a>",
                "EMAIL"                => "<a href='mailto:\\1'>\\1</a>",
                "IMAGE"                => "<br /><table align=center width='100%'><tr><td align='center'><img src='\\1' border='0' onload='org_w=this.offsetWidth;this.style.width=10;this.style.width=(org_w>parseInt(this.offsetParent.offsetWidth))?this.offsetParent.offsetWidth:org_w' onclick='window.open(this.src)' style='cursor:pointer' /></td></tr></table><br />\n",
                "DOWNLOAD"        => "exec:get_dl_html('\\1')",
                "LIST"                => "exec:get_list_html('\\1')",
                "QUOTE"                => "<center><table border='0' width='90%' cellspacing='0' cellpadding='0'><tr><td>  引用:</td></tr><tr><td><table width='100%' class='quote'><tr><td>\\1</td></tr></table></td></tr></table></center>\n",
                "IFRAME"        => "<table align=center><tr><td><iframe src='\\1' frameborder='0' allowtransparency='true' scrolling='yes' width='400' height='300'></iframe></td></tr></table>\n",
                "MOVE"                => "<center><marquee width='90%' behavior='alternate' scrollamount='3'>\\1</marquee><center>\n",
                "GLOW"                => "<table><tr><td class='glow'>\\1</td></tr></table>\n",
                "SHADOW"        => "<table><tr><td class='shadow'>\\1</td></tr></table>\n",
                "DROPSHADOW"        => "<table><tr><td class='dropshadow'>\\1</td></tr></table>\n",
                "GBMUSIC"        => "<bgsound src='\\1' loop='-1'>\n",
                "MUSIC"                => "<TABLE cellSpacing=0 cellPadding=0 align=center border=0><TBODY><TR><TD vAlign=top colSpan=3><EMBED name=music_rm align=top src='\\1' width='200' height='30' type='audio/x-pn-realaudio-plugin' console='ClipNN' loop='false' autostart='false' controls='ControlPanel' border='1' vspace='0' hspace='0'></EMBED><br><STRONG><A href='\\1'>Download The Music</A></STRONG></TD></TR></TBODY></TABLE>\n",               
                "FLASH"                => "<table align=center><tr><td><object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='400'><param name='movie' value='\\1'><param name='quality' value='high'><embed src='\\1' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width='32' height='32'></embed></object></td></tr></table>\n",
                "SHOCKWAVE"        => "<table align=center><tr><td><object classid='clsid:166B1BCA-3F9C-11CF-8075-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,0,0' width='400'><param name='src' value='\\1'><embed src='\\1' pluginspage='http://www.macromedia.com/shockwave/download/' width='400'></embed></object></td></tr></table>\n",
                "QUICKTIME"        => "<table align=center><tr><td><embed src='\\1' width='400' height='300' autoplay='true' loop='false' controller='true' playeveryframe='false' cache='false' scale='TOFIT' bgcolor='#000000' kioskmode='false' targetcache='false' pluginspage='http://www.apple.com/quicktime/'><br><STRONG><A href='\\1'>Download The Movie</A></STRONG></td></tr></table>\n",
                "REALPLAYER"        => "<TABLE cellSpacing=0 cellPadding=0 align=center border=0><TBODY><TR><TD vAlign=top colSpan=3><EMBED name=movie_rm align=top src='\\1' width='400' height='300' type='audio/x-pn-realaudio-plugin' console='ClipNN' loop='true' autostart='true' controls='ImageWindow,ControlPanel' border='1' vspace='0' hspace='0'></EMBED><br><STRONG><A href='\\1'>Download The Movie</A></STRONG></TD></TR></TBODY></TABLE>\n",
                "MEDIAPLAYER"        => "<table align=center><tr><td><object classid='clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95' width='400'><param name='ShowStatusBar' value='-1'><param name='Filename' value='\\1'><embed type='application/x-oleobject' codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701' flename='mp' src='\\1' width='400'></embed></object><br /><STRONG><A href='\\1'>Download The Movie</A></STRONG></td></tr></table>\n",
                "VOTE"                => "exec:get_vote_html('\\1')",
                );

$htc_list_att = array(
                "ALIGN"                => "<div align='\\1'>\\2</div>\n",
                "URL"                => "<a href='\\1'>\\2</a>",
                "EMAIL"                => "<a href='mailto:\\1'>\\2</a>",
                "IMAGE"                => "<br /><table align=center width='100%'><tr><td><img alt='\\1' src='\\2' border='0' onload='org_w=this.offsetWidth;this.style.width=10;this.style.width=(org_w>parseInt(this.offsetParent.offsetWidth))?this.offsetParent.offsetWidth:org_w;' onclick='window.open(this.src)' style='cursor:pointer' /></td></tr></table><br />\n",
                "FONTFACE"        => "<span style='FONT-FAMILY:\\1'>\\2</span>",
                "FONTSIZE"        => "<span style='font-size:\\1'>\\2</span>",
                "FONTCOLOR"        => "<span style='color:\\1'>\\2</span>",
                "DOWNLOAD"        => "exec:get_dl_html('\\1', '\\2')",
                "LIST"                => "exec:get_list_html('\\2','\\1')",
                "ATTACH"        => "exec:get_attach_html('\\2', '\\1')",
                "VOTE"                => "exec:get_vote_html('\\1','\\2')",
                );

$htc_list_spl = array(
                "PHP"                => "exec:get_highlight_html('\\1', 'php')",
                "CSS"                => "exec:get_highlight_html('\\1', 'css')",
                "HTML"                => "exec:get_highlight_html('\\1', 'html')",
                "SCRIPT"        => "exec:get_highlight_html('\\1', 'script')",
                "CODE"                => "exec:get_code_html('\\1')",
                "EXECUTE"        => "\\1",
                );

function get_highlight_html($str, $type = "php") {
        $type = strtolower($type);
        $type_func = $type."_highlight";
        $type = strtoupper($type);
        $result = "<center><table border='0' width='90%' cellspacing='0' cellpadding='0'>";
        if(!function_exists($type_func)) $type_func = "php_highlight";
        $result .= "
        <tr><td>高亮显示 <font color='red'>{$type}</font> 代码:</td></tr>
        <tr><td>
          <table width='100%' class='quote'><tr><td>
          ".$type_func($str)."
          </td></tr></table>
        ".($type=="HTML"?"<input type='button' value='运行代码' onclick=\"str=this.parentNode.firstChild.innerText;if(str==undefined){alert('Execute Codez Failed !');return;}code_win=window.open('about:blank');doc=code_win.document;doc.open();doc.write(str);doc.close();code_win.focus();\" />":"")."
        <input type='button' value='复制代码' onclick=\"try{window.clipboardData.setData('text',this.parentNode.firstChild.innerText);alert('Save Codez To The Clipboard !');}catch(e){alert('Codez Copy Failed !');}\">
        <input type='button' value='保存代码' onClick=\"try{str=this.parentNode.firstChild.innerText;code_win=window.open('about:blank','_blank','top=10000');code_win.document.writeln(str);code_win.document.execCommand('saveas','','code.html');code_win.close();}catch(e){alert('Codez Save Failed !');}\">
        </td></tr>
        </table></center>
        ";
        return $result;
}

function php_highlight($str) {
        $str = str_replace("\\\"","\"",$str);
        return highlight_string($str, true);
}

function css_highlight($str, $nl = true) {
        $color_1 = "red";
        $color_2 = "green";
        $color_3 = "blue";
        $str = str_replace("\\\"","\"",$str);
        $str = str_replace("\r", "", $str);
        preg_match_all("/[\\\*\.\w#: ]+\{[^\{\}]+\}/", $str, $arr_css);
        $arr_css = $arr_css[0];
        for($i=0; $i<count($arr_css); $i++) {
                $head = preg_replace("/([\\\*\.\w#: ]+\{)[^\{\}]+\}/", "<font color='{$color_1}'>\\1</font>".($nl?"<br />\n":""), $arr_css[$i]);
                $unit = preg_replace("/[\\\*\.\w#: ]+\{([^\{\}]+)\}/", "\\1", $arr_css[$i]);
                $unit_list = preg_split("/;\s*/", $unit);
                $unit = "\n";
                for($j=0; $j<count($unit_list); $j++) {
                        if(strlen($unit_list[$j])>0)
                                $unit .= "    " . preg_replace("/\s*([\w\-]+)\s*:\s*(.*)/e", "'<font color=\'{$color_2}\'>\\1</font> : <font color=\'{$color_3}\'>'.htmlspecialchars('\\2').'</font> ; '", $unit_list[$j]) . ($nl?"<br />\n":"\n");
                }
                $arr_css[$i] = $head . $unit . "<font color='{$color_1}'>}</font>";
        }
        return join(($nl?"\n<br /><br />\n":"\n\n"), $arr_css);
}

function script_highlight_note($str, $mode = true) {
        $color_note = "gray";
        $str = str_replace("\\\"","\"",$str);
        $str = preg_replace("/<font color='[a-z]+'>(.*)<\/font>/isU", "\\1", $str);
        $str = $mode?"/*{$str}*/":"//{$str}";
        return "<font color='{$color_note}'>{$str}</font>";
}

function script_highlight($str, $nl = true) {
        $color_1 = "red";
        $color_2 = "blue";
        $color_3 = "brown";
        $color_4 = "green";
        $str = str_replace("\\\"","\"",$str);
        $str = htmlspecialchars($str);
        $str = str_replace("=","&equal;",$str);
        $str = str_replace("|","&vertical;",$str);
        $keywords = array(
                        "{$color_1}"        => array("null", "true", "false", "NaN"),
                        "{$color_2}"        => array("var", "for", "if", "else", "switch", "case", "function", "loop", "continue", "break", "<", ">", "!&equal;", "&equal;&equal;", "&equal;", "&&", "&vertical;&vertical;"),
                        "{$color_3}"        => array("window", "self", "this", "event", "document", "opener", "Navigator", "Math", "Array", "String", "Object", "Function", "Number"),
                        );
        foreach($keywords as $key => $value) {
                for($i=0; $i<count($value); $i++) {
                        $str = preg_replace("/(\W)(".$value[$i].")(\W)/", "\\1<font color='{$key}'>\\2</font>\\3", $str);
                }
        }
        $str = preg_replace("/(\.|\s)([a-z]+)\(/i" ,"\\1<font color='{$color_4}'>\\2</font>(", $str);
        $str = preg_replace("/\.(\w+)(?!\()/i" ,".<font color='{$color_3}'>\\1</font>", $str);
        $str = preg_replace("/\/\/([^\n]*)\n/e" ,"script_highlight_note('\\1', false)", $str);
        $str = preg_replace("/\/\*(.*?)\*\//es" ,"script_highlight_note('\\1')", $str);       
        $str = str_replace("\t", "    ", $str);
        $str = str_replace("&equal;","=",$str);
        $str = str_replace("&vertical;","|",$str);
        return $nl?nl2br($str):$str;
}

function html_highlight_attr($att) {
        $color_1 = "red";
        $color_2 = "brown";
        $color_3 = "black";
        $att = str_replace("\\\"","\"",$att);
        $att = preg_replace("/=\s*('|\")([^'\"]+)\\1/eU","'=\\1'.preg_replace('/\s+/','|:s:|','\\2').'\\1'",$att);
        $att = str_replace("\\\"","\"",$att);
        $att .= " ";
        preg_match_all("/[a-z:\/\-]+(=(['\"]?).*[^\\\\]{1}\\2?)?\s+/iU", $att, $att_list);
        $att_list = $att_list[0];
        for($i=0; $i<count($att_list); $i++) {
                if(empty($att_list[$i])) continue;
                $att_list[$i] = trim($att_list[$i]);
                $att_list[$i] = preg_replace("/([^=]+)([=]?)(['\"]?)(.*)(\\3)/", "<font color='{$color_2}'>\\1</ font><font color='{$color_1}'>\\2</ font>\\3<font color='{$color_3}'>\\4</ font>\\3", $att_list[$i]);
        }
        return str_replace("|:s:|", " ", join(" ", $att_list));
}

function html_highlight($str) {
        $color_1 = "red";
        $color_2 = "blue";
        $color_3 = "gray";
        $str = str_replace("\\\"","\"",$str);
        preg_match_all("/<script([^>]*)>(.*)<\/script>/isU", $str, $arr_tmp);
        $arr_script = $arr_tmp[0];
        for($i=0; $i<count($arr_script); $i++) {
                $str = str_replace($arr_script[$i], "
::script_{$i}::
", $str);
                $arr_script[$i] = preg_replace("/<script([^>]*)>(.*)<\/script>/iseU", "'<font color=\'{$color_2}\'><SCRIPT '.html_highlight_attr('\\1').'></font><br />'.script_highlight(str_replace('\\\"','\"','\\2'), false).'<font color=\'{$color_2}\'></SCRIPT></font>'", $arr_script[$i]);
        }
        $str = preg_replace("/(<textarea[^>]*>)(.*)(<\/textarea>)/ieU" ,"'\\1'.htmlspecialchars('\\2').'\\3'", $str);
        $str = preg_replace("/<!\-\-(.*)\-\->/seU" ,"'<!--'.htmlspecialchars('\\1').'-->'", $str);
        $str = preg_replace("/<style([^>]*)>(.*)<\/style>/isU" ,"<!style\\1>\\2</style!>", $str);
        $str = preg_replace("/<([a-z:]+)\s*(.*?)( \/|\/)?>/ise" ,"'<font color=\'{$color_2}\'><\\1 '.html_highlight_attr('\\2').'\\3></ font>'", $str);
        $str = preg_replace("/<(\/[a-z:]+)>/i" ,"<font color='{$color_2}'><\\1></font>", $str);
        $str = preg_replace("/<(!\-\-.*\-\-)>/sU" ,"<font color='{$color_3}'><\\1></font>", $str);
        $str = preg_replace("/<!style([^>]*)>(.*)<\/style!>/iseU" ,"'<font color=\'{$color_2}\'><STYLE '.html_highlight_attr('\\1').'></font><br />'.css_highlight(str_replace('\\\"','\"','\\2'), false).'<br /><font color=\'{$color_2}\'></STYLE></font>'", $str);
        for($i=0; $i<count($arr_script); $i++) {
                $str = str_replace("
::script_{$i}::
", $arr_script[$i], $str);
        }
        $str = str_replace("</ font>", "</font>", $str);
        $str = str_replace("</ b>", "</b>", $str);
        $str = str_replace(" >", ">", $str);
        $str = str_replace("  ","  ",$str);
        $str = str_replace("\t","    ",$str);
        return nl2br($str);
}

function get_file_pic($filename) {
        global $root_path;
        $ext = str_replace(".","",strrchr($filename,"."));
        $pic = $root_path."images/mime_type/{$ext}.gif";
        return file_exists($pic)?"$pic":$root_path."images/mime_type/attch.gif";
}

function get_dl_html($filename, $str = "") {
        return "<img src='".get_file_pic($filename)."' border='0'> <a href='$filename'>".(empty($str)?basename($filename):$str)."</a>";
}

function get_attach_html($filename, $id) {
        return "<img src='".get_file_pic($filename)."' border='0'> <a href='attach_manage.php?method=download&id=$id'>$filename</a>";
}

function get_vote_html($vote_idx, $message = ""){
        global $db_host, $db_user, $db_pass, $db_name;
        $db = new DB_Manager($db_host, $db_user, $db_pass);
        $db->Connect();
        $db->SelectDB($db_name);
        $db->Query("select * from mnms_poll where id=".$vote_idx);
        $record = $db->GetRS();
        $str = "";
        $db->close();
        unset($db);
        if($record) {
                $username = "dummy";
                $if_vote = !(strpos($record[vote_user], "|{$username}|")===false)
strpos($record[vote_user], "|".GetIp()."|");
                $str .= "
                        <fieldset>
                          <legend align='left' color=black>".(empty($message)?$record[vote_title]:$message)."</legend>
                          <form name='poll' action='poll_manage.php?method=vote' method='post'>
                          <table width='90%' align='center'>";
                $vote_list = split("::",$record[vote_list]);
                $vote_count = split("::",$record[vote_count]);
                $vote_users = count(split("\n", $record[vote_user])) - 1;
                $vote_sum = array_sum($vote_count);
                $str .= "
                            <tr><td colspan='2'> 目前共有 <font color='red'>{$vote_users}</font> 人参与了本投票 </td></tr>";
                if($vote_sum==0) $vote_sum = 1;
                for($i=0; $i<count($vote_list); $i++) {
                        $str .= "
                            <tr><td>".($if_vote?"► ":"<input type='hidden' value='".$vote_count[$i]."' name='vote_count[]'><input type='".($record[vote_multi]=='Y'?"checkbox":"radio")."' name='vote[]' value='{$i}'>").htmlspecialchars($vote_list[$i])."</td><td width='400'><img src='images/bars/bar".($i+1).".gif' width='".ceil($vote_count[$i]*300/$vote_sum)."' height='10'> 占总票数的 <font color='#990000'>".ceil((int)$vote_count[$i]*100/$vote_sum)."%</font></td></tr>\n";
                }
                $str .= "<tr><td colspan='2' align='center'><br>".($if_vote?"<b>您已经投过票了!</b>":"<input type='hidden' value='{$record[id]}' name='id'><input type='Submit' value=' 确 定 ' name='Submit'>   <input type='reset' value=' 重 置 ' name='reset'>")."</td></tr>";
                $str .= "
                          </table>
                          </form>
                        </fieldset>";
        }
        return $str;
}

function get_code_html($str) {
        $str = str_replace("\\\"","\"",$str);
        return "
        <table align='center' width='550'>
          <tr><td><textarea cols='80' rows='10' name=Code>".htmlspecialchars($str)."</textarea><br>
            <input type='button' value='运行代码' onClick=\"str=this.parentNode.firstChild.value;code_win=window.open('about:blank');doc=code_win.document;doc.open();doc.write(str);doc.close();code_win.focus();\">
            <input type='button' value='复制代码' onclick=\"try{window.clipboardData.setData('text',this.parentNode.firstChild.value);alert('Save Codez To The Clipboard !');}catch(e){alert('Please Copy The Selected Codez !');this.parentNode.firstChild.select();}\">
            <input type='button' value='保存代码' onClick=\"str=this.parentNode.firstChild.value;code_win=window.open('about:blank','_blank','top=10000');code_win.document.writeln(str);code_win.document.execCommand('saveas','','code.html');code_win.close();\">
            (提示:可以先修改部分代码)
          </td></tr>
        </table>";
}

function get_list_html($content, $type = "") {
        $content = preg_replace("/(<br \/>)?[\r\n]+/", "\n", $content);
        $content = preg_replace("/[\r\n]+/", "\n", $content);
        $content = preg_replace("/^[\n]*(.*)[\n]*$/m", "\\1", $content);
        $content = str_replace("\n", "</li><li>", $content);
        $content = "<ul type='$type'><li>$content</li></ul>\n";
        return $content;
}

function html_trans($str) {
        $search  = array("&",                "'",                "\"",                "<",        ">",        "  ",                "\t");
        $replace = array("&",        "'",        """,        "<",        ">",        "  ",        "    ");
        return nl2br(str_replace($search, $replace, $str));
}

function link_url($str) {
        $str = preg_replace("/((http|ftp|mms|rtsp|pnm|mailto):\/\/[\w@:\.\/\?=&;#\-%]+)/i", "<a href='\\1' target='_blank'>\\1</a>", $str);
        $str = preg_replace("/(\w+@(\w+\.)+[\w]{2,3})/i", "<a href='mailto:\\1'>\\1</a>", $str);
        $str = preg_replace("/(href|src)='<a href=('.+')>[^<]+<\/a>'/iU", "\\1=\\2", $str);
        return $str;
}

function htc2html_loop($str) {
        global $htc_list, $htc_list_att;
        foreach($htc_list as $key => $value) {
                if(substr($value,0,5)=="exec:"){
                        $str = preg_replace("/\[$key\]((.(?!\[$key(\s?=\s?([^\]]+))?\]))*)\[\/$key\]/iexsU", substr($value,5), $str);
                } else {
                        $str = preg_replace("/\[$key\]((.(?!\[$key(\s?=\s?([^\]]+))?\]))*?)\[\/$key\]/ixsU", "$value", $str);
                }
        }
        foreach($htc_list_att as $key => $value) {
                if(substr($value,0,5)=="exec:"){
                        $str = preg_replace("/\[$key\s?=\s?([^\]]+)\]((.(?!\[$key(\s?=\s?([^\]]+))?\]))*)\[\/$key\]/iesxU", substr($value,5), $str);
                } else {
                        $str = preg_replace("/\[$key\s?=\s?([^\]]+)\]((.(?!\[$key(\s?=\s?([^\]]+))?\]))*)\[\/$key\]/isxU", "$value", $str);
                }
        }
        return $str;
}

function htc2html($str, $trans_url = true , $loop = 3) {
        global $htc_list_spl;
        $str = preg_replace("/(\[\w+\])\s*/ixs","\\1",$str);
        $str = preg_replace("/\s*(\[\/\w+\])/ixs","\\1",$str);
        foreach($htc_list_spl as $key => $value) {
                preg_match_all("/\[$key\](.*)\[\/$key\]/ixsU", $str, $arr_tmp);
                $arr_spl[$key] = $arr_tmp[0];
                for($i=0; $i<count($arr_spl[$key]); $i++) {
                        $str = str_replace($arr_spl[$key][$i], "
::{$key}_{$i}::
", $str);
                        if(substr($value,0,5)=="exec:"){
                                $arr_spl[$key][$i] = preg_replace("/\[$key\](.*)\[\/$key\]/iexsU", substr($value,5), $arr_spl[$key][$i]);
                        } else {
                                $arr_spl[$key][$i] = preg_replace("/\[$key\](.*)\[\/$key\]/ixsU", "$value", $arr_spl[$key][$i]);
                        }
                }
        }
        $str = html_trans($str);
        while($loop-- > 0) {
                if(!preg_match("/\[(\w+)(\s?=\s?([^\]]+))?\](.*)\[\/\\1\]/isU", $str)) break;
                $str = htc2html_loop($str);
        }
        if($trans_url) $str = link_url($str);
        foreach($htc_list_spl as $key => $value) {
                for($i=0; $i<count($arr_spl[$key]); $i++) {
                        $str = str_replace("
::{$key}_{$i}::
", $arr_spl[$key][$i], $str);
                }
        }
        return $str;
}
?>

使用方法:

echo htc2html($str);

OK 了~~~~~~~~

PHP 相关文章推荐
简单的过滤字符串中的HTML标记
Dec 25 PHP
asp和php下textarea提交大量数据发生丢失的解决方法
Jan 20 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
Jul 25 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
10个简化PHP开发的工具
Dec 25 PHP
php查看当前Session的ID实例
Mar 16 PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
Jun 28 PHP
如何解决php-fpm启动不了问题
Nov 17 PHP
关于PHP中操作MySQL数据库的一些要注意的问题
Oct 09 #PHP
模拟xcopy的函数
Oct 09 #PHP
生成缩略图
Oct 09 #PHP
一个目录遍历函数
Oct 09 #PHP
phpBB BBcode处理的漏洞
Oct 09 #PHP
用IE远程创建Mysql数据库的简易程序
Oct 09 #PHP
PHP使用者状态管理功能的应用
Oct 09 #PHP
You might like
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
2017/02/25 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
学习ExtJS Column布局
2009/10/08 Javascript
JavaScript排序算法之希尔排序的2个实例
2014/04/04 Javascript
详解参数传递四种形式
2015/07/21 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
xmlplus组件设计系列之树(Tree)(9)
2017/05/02 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
[53:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第三场 1月18日
2021/03/11 DOTA
PyQt5每天必学之带有标签的复选框
2018/04/19 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
利用python求积分的实例
2019/07/03 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
计算机应用专业毕业生求职信
2013/10/24 职场文书
品管员岗位职责
2013/11/10 职场文书
电子商务网站的创业计划书
2014/01/05 职场文书
社团招新策划书
2014/02/04 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
我的中国梦演讲稿高中篇
2014/08/19 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
2016年大学生社区服务活动总结
2016/04/06 职场文书
详解MySQL中的pid与socket
2021/06/15 MySQL