作者: admin

  • MYSQL 生成时间戳函数

    MYSQL 生成时间戳函数

    UNIX_TIMESTAMP()
    SQL

  • PHP优化var_dump输出

    PHP优化var_dump输出

     /**
     * 浏览器友好的变量输出
     * @param mixed $var 变量
     * @param boolean $echo 是否输出 默认为True 如果为false 则返回输出字符串
     * @param string $label 标签 默认为空
     * @param boolean $strict 是否严谨 默认为true
     * @return void|string
     */
    function dump($var, $echo=true, $label=null, $strict=true) {
        $label = ($label === null) ? '' : rtrim($label) . ' ';
        if (!$strict) {
            if (ini_get('html_errors')) {
                $output = print_r($var, true);
                $output = '<pre>' . $label . htmlspecialchars($output, ENT_QUOTES) . '</pre>';
            } else {
                $output = $label . print_r($var, true);
            }
        } else {
            ob_start();
            var_dump($var);
            $output = ob_get_clean();
            if (!extension_loaded('xdebug')) {
                $output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', $output);
                $output = '<pre>' . $label . htmlspecialchars($output, ENT_QUOTES) . '</pre>';
            }
        }
        if ($echo) {
            echo($output);
            return null;
        }else
            return $output;
    } 
    PHP
  • PHP获取页面中的所有链接

    PHP获取页面中的所有链接

    /*
    *PHP获取页面中的所有链接
    */
    function getPageLink($url)
    {
       set_time_limit(0);
       $html=file_get_contents($url);
       if (!$html) {
              return false;
       }
       preg_match_all("/<a(s*[^>]+s*)href=([\"|']?)([^\"'>\s]+)([\"|']?)/ies",$html,$out);
       $arrLink=$out[3];
       $arrUrl=parse_url($url);
       $dir='';
    
       if(isset($arrUrl['path'])&&!empty($arrUrl['path'])){
            $dir=str_replace("\\","/",$dir=dirname($arrUrl['path']));
            if($dir=="/"){
                 $dir="";
            }
       }
    
       if(is_array($arrLink)&&count($arrLink)>0){
            $arrLink=array_unique($arrLink);
            foreach($arrLink as $key=>$val){
                 $val=strtolower($val);
                 if(preg_match('/^#*$/isU',$val)){
                      unset($arrLink[$key]);
                 }elseif(preg_match('/^\//isU',$val)){
                      $arrLink[$key]='http://'.$arrUrl['host'].$val;
                 }elseif(preg_match('/^javascript/isU',$val)){
                      unset($arrLink[$key]);
                 }elseif(preg_match('/^mailto:/isU',$val)){
                      unset($arrLink[$key]);
                 }elseif(!preg_match('/^\//isU',$val)&&strpos($val,'http://')===FALSE){
                      $arrLink[$key]='http://'.$arrUrl['host'].$dir.'/'.$val;
                 }
            }
       }
       sort($arrLink);
       return $arrLink;
    }
    PHP
  • .NET中的日期格式

    在asp.net mvc的razor视图中本来想输出09/15这种日期格式,写的代码:@item.PostDate.ToString( "MM/dd")

    但却发现生成的是 09-15这种。原来,.NET会自作聪明的以本机系统的时间格式来生成。

    改为如下方式后输出正确:

    @item.PostDate.ToString( "MM/dd", System.Globalization.DateTimeFormatInfo .InvariantInfo)
    //System.Globalization.DateTimeFormatInfo.InvariantInfo 表示忽略系统时间格式,显示自定时间格式
    Razor C#

    另:也可以显示指定日期格式:

    System.Globalization. DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo ();
    dtFormat.ShortDatePattern = "yyyy/MM/dd";
    @item.PostDate.ToString("MM/dd", dtFormat)
    Razor C#
  • 实用为王

    以前的结论是对的,webform+dapper很强大,可以使用动态实体。而不用去手写model类。

    而且切换数据库是非常的方便,操作性、灵活性非常强大,同时性能仅次于ado.net。

    坑爹的EF/ASP.NET MVC,不用了。

    实用为王!

    2024.11.25:胡言乱语,切勿当真。

  • 实用,快速输出产品为目的

    实用,快速输出产品为目的,出不了产品的情况下,所有模式、设计、优化都是耍流氓。

    利用现有的基础技术, sql + 编程语言,快速完成开发。而不是去研究在这些基础技术之上延伸出来的各种技术,比如EF等,有研究EF的功夫,实现或优化几个业务逻辑多好。

    现在才明白,那些简单的,花时间少就能掌握的技术才是好技术。复杂的技术不适合做复杂的产品,同样,简单的产品也用不上复杂的技术。这己经被多次印证,解决一个问题,如果觉得复杂了,那么肯定思路错了!

    MVC+EF我现在觉得比较操蛋,更操蛋的是博客园上天天讨论的DDD领域模型。

    要用.NET就用WebForm+Dapper

    否则就用PHP+Yii

    至少现在对于我来说是适用的,有团队的情况下再说!

    断网,保持自己的思考能力!决不能过分依赖网络!

    解决问题的思路应该是:自己思考->查专业资料(MSDN等)->利用搜索引擎查->论坛发帖子(绝对不要QQ群,现在QQ群已经没人回答问题)-> 问现实中的人。

    现在不要想盗版正版的问题,我特么中毒太深,产品都没出来,意淫的太多了!!!!!

    保持现实,保持冷静,保持思考力!适应自己的才是最好的,其他都扯淡!

  • code first 常用命令

    code first 常用命令

     Enable-Migrations  -EnableAutomaticMigrations -Force   //code first启用迁移,并允许自动迁移
    PowerShell

     Enable-Migrations  第一次开启迁移时执行

    添加迁移

    add-Migration xxx   
    PowerShell
    update-database //更新数据库
    PowerShell

    MSDN说明见这里: http://msdn.microsoft.com/en-us/library/dn579398.aspx

  • 该松耦合的时候松耦合

    该松耦合的时候松耦合

    该紧耦合的时候紧耦合

    没有绝对的好和坏。

    现在才发现webform非常好,页面相关的,紧耦合(微软已经给做好了)。

    业务方面松耦合,可以灵活变更,以免造成牵一发而动全身的情况。

    而MVC正好相反了,页面拆成3份view+model+controller. 业务方面正好偏向是紧耦合的。

    controller层不可能写过去复杂的业务逻辑。业务逻辑都要另分离出一层。

    不好。

    MVC的好处是:在技术层面上,把前端、程序员的职责分开了。

    现在都是我自己搞,分开始在是没必要。

    如果有团队,分开是非常好的。各专其业。

  • codefirst 添加自增字段

    codefirst 添加自增字段

     [Key,DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    C#

  • ASP.NET MVC模式

    ASP.NET MVC模式:一个页面对应一个action函数

    经典模式:一个页面对应一个类