Jadual Kandungan
手把手教你做关键词匹配项目(搜索引擎)---- 第十六天,教你做----
Rumah pembangunan bahagian belakang tutorial php 手把手教你做关键词匹配项目(搜索引擎)---- 第十六天,教你做----_PHP教程

手把手教你做关键词匹配项目(搜索引擎)---- 第十六天,教你做----_PHP教程

Jul 13, 2016 am 10:20 AM
- buat kata kunci perlawanan langit Berpegangan tangan enjin carian ajar awak projek

手把手教你做关键词匹配项目(搜索引擎)---- 第十六天,教你做----

第十六天

友情客串:屌丝的坑人表单神器

起点:手把手教你做关键词匹配项目(搜索引擎)---- 第一天

回顾:手把手教你做关键词匹配项目(搜索引擎)---- 第十五天

14天pdf版:http://files.cnblogs.com/oshine/%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E4%BD%A0%E5%81%9A%E5%85%B3%E9%94%AE%E8%AF%8D%E5%8C%B9%E9%85%8D%E9%A1%B9%E7%9B%AE%2814%E5%A4%A9%29.pdf

15天内的源码:
http://files.cnblogs.com/oshine/myproject.rar

从上次小帅帅跟于老大讨论完毕后,有个很郁闷的事情还没定下来,就是我们已有对应关系、反义词以及近义词这些数据它的数据格式是怎样的?

小帅帅要弄懂这些才能继续进行下去,于是他又去请教于老大。

于老大就对小帅帅说,我们先不考虑这么多因素,我们先从实际出发,我们先做反义词这块,就先从女装开始,女装是个类目吧,我们就按类目开始做。

那么表结构的字段就有类目、反义词。

小帅帅把表创建了出来:

<span>CREATE</span> <span>TABLE</span><span> `category_backlist` (
   `cid` </span><span>BIGINT</span>(<span>20</span>) <span>DEFAULT</span> <span>NULL</span> COMMENT <span>'</span><span>类目ID</span><span>'</span><span>,
   `catmatch` </span><span>VARCHAR</span>(<span>50</span>) <span>CHARACTER</span> <span>SET</span> utf8 <span>DEFAULT</span> <span>NULL</span> COMMENT <span>'</span><span>类目名称</span><span>'</span><span>,   
   `word` </span><span>VARCHAR</span>(<span>18</span>) <span>CHARACTER</span> <span>SET</span> utf8 <span>DEFAULT</span> <span>NULL</span> COMMENT <span>'</span><span>关键词</span><span>'</span><span>,  
   `created` </span><span>DATETIME</span> <span>DEFAULT</span> <span>NULL</span> COMMENT <span>'</span><span>录入时间</span><span>'</span><span>,
   </span><span>UNIQUE</span> <span>KEY</span><span> `cid` (`cid`,`keyword`)
 ) ENGINE</span><span>=</span>INNODB <span>DEFAULT</span> CHARSET<span>=</span>utf8 COLLATE<span>=</span>utf8_bin
Salin selepas log masuk

小帅帅并把数据补齐了。

<span>INSERT</span> <span>INTO</span> category_backlist(cid,catmatch,word)<span>VALUES</span>("<span>50010850</span><span>","女装","男");
</span><span>INSERT</span> <span>INTO</span> category_backlist(cid,catmatch,word)<span>VALUES</span>("<span>50010850</span><span>","女装","童");
</span><span>INSERT</span> <span>INTO</span> category_backlist(cid,catmatch,word)<span>VALUES</span>("<span>50010850</span><span>","女装","宝宝");
#......</span>
Salin selepas log masuk

小帅帅很轻松的把代码也改正了一下。

<?<span>php
</span><span>abstract</span> <span>class</span><span> CharListHandle {

    </span><span>protected</span> <span>$charlist</span><span>;
    </span><span>protected</span> <span>$selectorItem</span><span>;
    </span><span>public</span> <span>function</span> __construct(<span>$charlist</span>,<span>$selectorItem</span><span>){
        </span><span>$this</span>->charlist = <span>$charlist</span><span>;
        </span><span>$this</span>->selectorItem = <span>$selectorItem</span><span>;
    }

    </span><span>abstract</span> <span>function</span> <span>exec</span><span>();
}

</span><span>class</span> BacklistCharListHandle <span>extends</span><span> CharListHandle {
    </span><span>public</span> <span>function</span> <span>exec</span><span>(){
        </span><span>$sql</span> = "select word from category_backlist where cid='<span>$this</span>->selectorItem->cid'"<span>;
        </span><span>$backlist</span> = DB::makeArray(<span>$sql</span><span>);
        </span><span>foreach</span>(<span>$backlist</span> <span>as</span> <span>$char</span><span>){
            </span><span>$this</span>->charlist->addBlacklist(<span>$char</span><span>);
        }

    }

}

</span><span>class</span><span> Selector
{

    </span><span>private</span> <span>static</span> <span>$charListHandle</span> = <span>array</span><span>(      
        </span>"黑名单" => "BacklistCharListHandle"<span>
    );

    </span><span>public</span> <span>static</span> <span>function</span> select(<span>$num_iid</span><span>)
    {
        </span><span>$selectorItem</span> = SelectorItem::createFromApi(<span>$num_iid</span><span>);

        Logger</span>::trace(<span>$selectorItem</span>-><span>props_name);

        </span><span>$charlist</span> = <span>new</span><span> CharList();

        </span><span>foreach</span> (self::<span>$charListHandle</span> <span>as</span> <span>$matchKey</span> => <span>$className</span><span>) {

            </span><span>$handle</span> = self::createCharListHandle(<span>$className</span>, <span>$charlist</span>, <span>$selectorItem</span><span>);
            </span><span>$handle</span>-><span>exec</span><span>();
           
        }

        </span><span>//</span><span>do search things</span>
        <span>var_dump</span>(<span>$charlist</span><span>);
    }

    </span><span>public</span> <span>static</span> <span>function</span> createCharListHandle(<span>$className</span>, <span>$charlist</span>, <span>$selectorItem</span><span>)
    {
        </span><span>if</span> (<span>class_exists</span>(<span>$className</span><span>)) {
            </span><span>return</span> <span>new</span> <span>$className</span>(<span>$charlist</span>, <span>$selectorItem</span><span>);
        }
        </span><span>throw</span> <span>new</span> <span>Exception</span>("class not exists", 0<span>);
    }
}</span>
Salin selepas log masuk

小帅帅的原稿本来不是这样的,他的原稿:

<span>CharListHandle 的属性有两个 一个是charlist 一个是cid<br /><br />于老大看了之后就要小帅帅把cid换成了selectorItem,原因嘛要小帅帅去琢磨。<br /><br /><br /></span>
Salin selepas log masuk

小帅帅还写了个DB操作的类,代码如下:

<?<span>php

</span><span>define</span>('DATABASE_HOST','127.0.0.1'<span>);
</span><span>define</span>('DATABASE_USER','xiaoshuaishuai'<span>);
</span><span>define</span>('DATABASE__PASSWORD','xiaoshuaishuai'<span>);
</span><span>define</span>('DATABASE_CHARSET','utf-8'<span>);

</span><span>class</span><span> DB {

    </span><span>public</span> <span>static</span> <span>$conn</span> = <span>null</span><span>;
    
    </span><span>public</span> <span>static</span> <span>function</span><span> Connect(){
        </span><span>if</span>(self::<span>$conn</span> == <span>null</span><span>){
            self</span>::<span>$conn</span> = <span>mysql_connect</span>(DATABASE_HOST,DATABASE_USER,<span>DATABASE__PASSWORD);
            </span><span>mysql_query</span>("SET NAMES '".DATABASE_CHARSET."'",self::<span>$conn</span><span>);
            </span><span>mysql_select_db</span>("dict",self::<span>$conn</span><span>);
            </span><span>return</span> self::<span>$conn</span><span>;
        }
        </span><span>return</span> self::<span>$conn</span><span>;
    }
    
    </span><span>public</span> <span>static</span> <span>function</span> Query(<span>$sql</span><span>){
       </span><span>return</span> <span>mysql_query</span>(<span>$sql</span>,self::<span>Connect());
    }
    
    </span><span>public</span> <span>static</span> <span>function</span> makeArray(<span>$sql</span><span>){
        </span><span>$rs</span> = self::Query(<span>$sql</span><span>);
        </span><span>$result</span> = <span>array</span><span>();
        </span><span>while</span>(<span>$data</span> = <span>mysql_fetch_assoc</span>(<span>$rs</span><span>)){
            </span><span>$result</span>[] = <span>$data</span><span>;
        }
        </span><span>return</span> <span>$result</span><span>;
    }
} </span>
Salin selepas log masuk

小帅帅把这代码拿给于老大的时候,于老大很开心。

于老大对小帅帅说,现在我们这个黑名单的改动,不管你怎么加或者怎么删除都不会影响系统的正常运行了把,而且我们可以很好的跟业务结合,这下这个黑名单的任务,小帅帅你觉得教给谁去做比较合适。

小帅帅听到可以把任务转交,很开心:做这些事情,我觉得产品或者运营部门比较合适。

于老大拍了拍小帅帅的肩膀说道:这件事情就交给你去落实了。

 

偶尔的职责分离不一定是懒惰的行为,从整体上来说是让整个服务做到更专业、更有效率。

 

小帅帅只好去落实于老大的任务去了

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/869242.htmlTechArticle手把手教你做关键词匹配项目(搜索引擎)---- 第十六天,教你做---- 第十六天 友情客串:屌丝的坑人表单神器 起点:手把手教你做关键词...
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaraskan apertur pada Xiaomi Mi 14 Ultra? Bagaimana untuk melaraskan apertur pada Xiaomi Mi 14 Ultra? Mar 19, 2024 am 09:01 AM

Melaraskan saiz apertur mempunyai kesan penting pada kesan foto Xiaomi Mi 14 Ultra memberikan fleksibiliti yang tidak pernah berlaku sebelum ini dalam pelarasan apertur kamera. Untuk membolehkan semua orang melaraskan apertur dengan lancar dan merealisasikan pelarasan percuma saiz apertur, editor di sini membawakan anda tutorial terperinci tentang cara menetapkan apertur pada Xiaomi Mi 14Ultra. Bagaimana untuk melaraskan apertur pada Xiaomi Mi 14Ultra? Mulakan kamera, tukar kepada "Mod Profesional", dan pilih kamera utama - kanta W. Klik pada apertur, buka dail apertur, A adalah automatik, pilih f/1.9 atau f/4.0 mengikut keperluan.

Bolehkah AI menakluki teorem terakhir Fermat? Ahli matematik melepaskan 5 tahun kerjayanya untuk mengubah 100 halaman bukti menjadi kod Bolehkah AI menakluki teorem terakhir Fermat? Ahli matematik melepaskan 5 tahun kerjayanya untuk mengubah 100 halaman bukti menjadi kod Apr 09, 2024 pm 03:20 PM

Teorem terakhir Fermat, akan ditakluki oleh AI? Dan bahagian yang paling bermakna dari keseluruhannya ialah Teorem Terakhir Fermat, yang akan diselesaikan oleh AI, dengan tepat untuk membuktikan bahawa AI tidak berguna. Suatu ketika dahulu, matematik tergolong dalam alam kecerdasan manusia yang tulen kini, wilayah ini dihuraikan dan diinjak oleh algoritma canggih. Imej Teorem Terakhir Fermat ialah teka-teki "terkenal" yang telah membingungkan ahli matematik selama berabad-abad. Ia telah terbukti pada tahun 1993, dan kini ahli matematik mempunyai rancangan besar: untuk mencipta semula bukti menggunakan komputer. Mereka berharap bahawa sebarang ralat logik dalam versi bukti ini boleh disemak oleh komputer. Alamat projek: https://github.com/riccardobrasca/flt

Bagaimana untuk menetapkan bahasa Cina dalam Cheat Engine? Bagaimana untuk menetapkan bahasa Cina dalam Cheat Engine? Mar 18, 2024 pm 01:20 PM

Ce Modifier (CheatEngine) ialah alat pengubahsuaian permainan yang didedikasikan untuk mengubah suai dan menyunting memori permainan Jadi bagaimana untuk menetapkan bahasa Cina dalam CheatEngine Seterusnya, editor akan memberitahu anda bagaimana untuk menetapkan bahasa Cina dalam Ce Modifier. Dalam perisian baharu yang kami muat turun, ia boleh mengelirukan untuk mendapati bahawa antara muka itu bukan dalam bahasa Cina. Walaupun perisian ini tidak dibangunkan di China, terdapat cara untuk menukarnya kepada versi Cina. Masalah ini boleh diselesaikan dengan hanya menggunakan patch Cina. Selepas memuat turun dan memasang perisian CheatEngine (ce modifier), buka lokasi pemasangan dan cari folder bernama bahasa, seperti yang ditunjukkan dalam rajah di bawah

Bagaimana untuk mengemas kini Honor MagicOS 8.0 pada Honor 90 GT? Bagaimana untuk mengemas kini Honor MagicOS 8.0 pada Honor 90 GT? Mar 18, 2024 pm 06:46 PM

Honor 90GT ialah telefon pintar kos efektif dengan prestasi cemerlang dan pengalaman pengguna yang cemerlang. Walau bagaimanapun, kadangkala kita mungkin menghadapi beberapa masalah, seperti bagaimana untuk mengemas kini Honor MagicOS8.0 pada Honor 90GT? Langkah ini mungkin berbeza untuk telefon mudah alih yang berbeza dan model yang berbeza Jadi, mari kita bincangkan cara meningkatkan sistem dengan betul. Bagaimana untuk mengemas kini Honor MagicOS 8.0 pada Honor 90GT Menurut berita pada 28 Februari, Honor hari ini menolak kemas kini beta awam MagicOS8.0 untuk tiga telefon mudah alihnya 90GT/100/100Pro Nombor versi pakej ialah 8.0.0.106 (C00E106R3P1) 1. . Pastikan Kehormatan anda Bateri 90GT dicas sepenuhnya;

Planet Mojo: Membina metaverse permainan Web3 daripada permainan catur auto Mojo Melee Planet Mojo: Membina metaverse permainan Web3 daripada permainan catur auto Mojo Melee Mar 14, 2024 pm 05:55 PM

Projek permainan Metaverse popular yang diasaskan dalam kitaran crypto terakhir sedang mempercepatkan pengembangannya. Pada 4 Mac, PlanetMojo, platform metaverse permainan Web3, mengumumkan beberapa perkembangan penting dalam ekologi permainannya, termasuk pengumuman permainan parkour yang akan datang GoGoMojo, pelancaran musim baharu "Way of War" dalam auto-catur perdana. permainan MojoMelee, dan sambutan siri ETH pertama "WarBannerNFT" yang baharu dilancarkan musim ini dengan kerjasama MagicEden. Selain itu, PlanetMojo juga mendedahkan bahawa mereka merancang untuk melancarkan versi mudah alih Android dan iOS MojoMelee pada akhir tahun ini. Projek ini akan dilancarkan pada penghujung tahun 2021. Selepas hampir dua tahun bekerja keras dalam pasaran beruang, ia akan siap tidak lama lagi.

Ajar anda cara menggunakan ciri lanjutan baharu iOS 17.4 'Perlindungan Peranti Dicuri' Ajar anda cara menggunakan ciri lanjutan baharu iOS 17.4 'Perlindungan Peranti Dicuri' Mar 10, 2024 pm 04:34 PM

Apple melancarkan kemas kini iOS 17.4 pada hari Selasa, membawakan pelbagai ciri dan pembaikan baharu kepada iPhone. Kemas kini termasuk emoji baharu, dan pengguna EU juga boleh memuat turunnya daripada kedai aplikasi lain. Di samping itu, kemas kini juga mengukuhkan kawalan keselamatan iPhone dan memperkenalkan lebih banyak pilihan tetapan "Perlindungan Peranti Dicuri" untuk menyediakan pengguna dengan lebih banyak pilihan dan perlindungan. "iOS17.3 memperkenalkan fungsi "Perlindungan Peranti Dicuri" buat kali pertama, menambahkan keselamatan tambahan kepada maklumat sensitif pengguna. Apabila pengguna berada jauh dari rumah dan tempat biasa lain, fungsi ini memerlukan pengguna memasukkan maklumat biometrik untuk pertama kali masa, dan selepas satu jam Anda mesti memasukkan maklumat sekali lagi untuk mengakses dan menukar data tertentu, seperti menukar kata laluan Apple ID anda atau mematikan perlindungan peranti yang dicuri.

DaVinci Resolve Studio kini menyokong pengekodan perkakasan AV1 untuk kad grafik AMD DaVinci Resolve Studio kini menyokong pengekodan perkakasan AV1 untuk kad grafik AMD Mar 06, 2024 pm 10:04 PM

Berita terkini, lackMagic telah melancarkan kemas kini beta awam 18.5PublicBeta2 bagi perisian penyuntingan video DaVinci Resolve Studio, membawakan sokongan pengekodan AV1 kepada kad grafik AMD Radeon. Selepas mengemas kini kepada versi terkini, pengguna kad grafik AMD akan dapat memanfaatkan pecutan perkakasan untuk pengekodan AV1 dalam DaVinci Resolve Studio. Walaupun pegawai tidak menyatakan seni bina atau model yang disokong, diharapkan semua pengguna kad grafik AMD boleh mencuba ciri ini. Pada 2018, AOMedia mengeluarkan standard pengekodan video baharu AV1 (AOMediaVideoCodec1.0). AV1 dihasilkan oleh beberapa

Permudahkan pemprosesan muat naik fail dengan fungsi Golang Permudahkan pemprosesan muat naik fail dengan fungsi Golang May 02, 2024 pm 06:45 PM

Jawapan: Ya, Golang menyediakan fungsi yang memudahkan pemprosesan muat naik fail. Butiran: Jenis MultipartFile menyediakan akses kepada metadata dan kandungan fail. Fungsi FormFile mendapat fail tertentu daripada permintaan borang. Fungsi ParseForm dan ParseMultipartForm digunakan untuk menghuraikan data borang dan data borang berbilang bahagian. Menggunakan fungsi ini memudahkan proses pemprosesan fail dan membolehkan pembangun menumpukan pada logik perniagaan.

See all articles