目次
PHP微信公众开发笔记(七)
ホームページ php教程 php手册 PHP微信公众开发笔记(七)

PHP微信公众开发笔记(七)

Jun 13, 2016 am 09:25 AM
ノート

PHP微信公众开发笔记(七)

PHP微信公众开发笔记系列
日期:2014.9.6

这篇日记是补昨天的,昨天没来得及写;

主要实现的功能:模糊检索、问答系统、帮助系统
修复了:_SESSION 的id
调整了验证机制

要注意的:mysql的语法问题、mysql的模糊匹配、PHP的关联数组好像用count计算的话其大小会有原有数据的两倍大(即数组中只有两个数据,count会得到4,这个需要再验证,好像是用到了foreach就出现了这个问题)

学到了:PHP中数组的操作

2014.9.10整理笔记:
写这个笔记的时候,在赶功能,所以也就是简单的记几笔当时的工作内容,现在功能开发得差不多了,就来整理之前的笔记。当时就很简单的记录了上文的那几句。
我记得,那天来上班的路上,同学跟我说,希望的功能是:输入某个城市的名字,便能够得到在这个城市的同学的信息。其实这个功能便是我最初想弄这个微信公众号想要实现的功能了,这样便能很方便的进行信息检索了,虽然说现阶段我们或许没有很多人到处走动,没有那个需求。但排除不了偶然,所以就有了这个想法。

模糊检索:
模糊检索的话,说来说去也是基于数据库检索的,这里应该弄一个关键词,以便服务台程序可以捕获这个关键词,我设定为查看+XX来查看信息,比如说想查看广州的信息,则回复“查看广州”即可。
具体实现:
首先是关键词捕获了,这个跟笔记六里面提到的类似,无非是用两个字符串处理函数了:strstr,str_replace处理用户输入的信息;关键是如何处理从数据库中检索信息了,刚开始我的想法是是否能在数据库中做模糊检索,实在不行的话就首先得到所有的信息,然后去对比;
方案一、关于数据库的模糊匹配:
从网上查阅到的资料显示是支持模糊检索的,但是我试了好几个小时,就是没有效果,不知道是不是我对这个模糊检索的理解有错误,网上查看到的语法是:
1、select from xxx(数据表名) where xxx(字段) like xxx(我们要检索的) ,网友给的介绍是,这个语法能从给定的数据表中,检索相应的字段值为我们要查找的信息。但我们这里要做的是多字段查看,即数据表中有省份、城市等字段信息,我需要做这些字段的模糊匹配,所以又开始查阅资料了;
2、select from xxx where concat('field_a','field_b','field_c') like xxx ,这里concat相当于是组合多个字段,然后去做模糊匹配,我照着这个来了,但是还是没有成功;
3、select from xxx where xxx.colum_name like xxx ,这也是查阅到的资料,改变之处在于字段名改为了:数据表.colum_name 这样去匹配的,但是还是没有用;
具体的没有用根据我打印出来的信息是,用mysql_query 检索到了信息,但是这个结果用mysql_fetch_assoc或者mysql_fetch_array处理之后,并没有得到相应的数组,不知道是什么情况;在这里也要注意的是:like后面的那个模糊匹配信息,根据网友提供的意见是,如果是中文字符需要写成%检索%这样的格式,即两边都要有百分号。
在这里虽然说没有达到我的需求,但是还是感受到,要能很好的操作数据库,那么就需要好好的看看mysql操作手册了。
方案二、得到信息再去匹配对比
这个方案应该是说很简单易行的,因为我做的手游项目中就是这么处理的,其实我一开始有模糊检索这个需求的时候,也是想到这个方法的。但是我考虑到,首先从数据库中得到信息需要访问数据库检索,然后再去做对比又要花时间,这个可能会影响性能的,因此我才想到要在网上查询是否有解决方案的。但是事与愿违,没有达到预期所需,这个就留给以后看吧。

这个方案很简单,只需首先将所有的信息都得到,然后去做对比就可以了。这里用到了php数组的一个操作函数使之对比变得非常的简单:in_array();判断某个值是否在数组中。因为我们从数据库中得到的信息,php是处理成一个个数组的,我检索广州这个词,就只需要判断在这些数组中是否出现了广州这个词就可以了,所以比较简单。具体实现我是这样做的:

vcv509C1xNDFz6KjrMi7uvPRrbu31eK49rb+zqzK/dfpo6zDv7TO0a27t7XDtb3Su7j2yv3X6dDFz6KjrMi7uvPIpbj6ztLDx9KqvOzL97XEJiMyMDU0MDvIpbbUscijrMalxeS1vcHLvs29q9XiuPbK/dfpt8W1vc7Sw8e1xL3hufvK/dfp1tDIpaOsyLu689TauvPD5rXEstnX99bQ1/a94bn7tKbA7b7Nv8nS1MHLoaM8YnI+CtLytMu52NPaxKO6/bzsy/fV4rj2uabE3LXjvs3V4tH5yrXP1sHLoaM8YnI+Cjxicj4KPHN0cm9uZz7OyrTwz7XNs6O6PC9zdHJvbmc+PGJyPgrU2rm5y7zEo7r9vOzL97XEyrG68qOsztLSss/ro6zKx7fxxNzFqrj2uabE3MC0sO/W+s2s0ae72NLku9jS5LTz0ae1xLarzveho9PQwcvV4rj2z+u3qNauuvOjrM7SubnLvMHL0ru49r3Q1/bOyrTwtcS5psTco6y8tNPDu6e72Li0zsq08KOsz7XNs77Nt7W72NK7uPbOysziyMPTw7unyKW72LTwoaPV4tCpzsrM4ra8yse52NPatPPRp8n6u+61xKOsyOfRp7rF1q7A4LXEoaM8YnI+CtPQwcvV4rj2z+u3qNauuvOjrLHjv6rKvNfFytbKtc/WwcujrNLyzqrO0s/rtb278tDt0tS689XiuPa5psTcu+HT0MCp1bmjrMv50tTO0tLU0ru49sDgwLTKtc/Wo6zO0rPG1q7Oqs7S1eK49s+1zbO1xNK7uPbEo7/po6yx49PazbPSu7ncwO2hozxicj4Kvt/M5bXEyrXP1rrcvPK1paOsvs3Kx9Ta08O7p7vYuLShsM7KtPChsbXEyrG68qOs08MkX1NFU1NJT068x8K80rvPwtPDu6e/qsb0wcvOyrTwxKO/6aOsyLu689PDu6e1xM/C0ruyvbvYuLTQxc+ivs3Kx7vYtPDE2sjdwcujrLvYtPCyu7ncs8m5psqnsNy2vMfls/219CRfU0VTU0lPTrnY09rTw7unv6rG9M7KtPDEo7/ptcTQxc+ioaO40L711eLR+cq1z9a1w9PQteO88rWltNaxqaOsuf65/qGjPGJyPgq+38zlyrXP1rrcvPK1paOsvLi69cO709DF9rW9uty087XEzsrM4qOsy/nS1LK7zOG+38zlyrXP1sHLoaM8YnI+Cjxicj4KPHN0cm9uZz6w79b6z7XNs6O6PC9zdHJvbmc+PGJyPgo8cD6w79b6z7XNs87StcS5uc/rysejrMzhuanN5tXiuPa5q9bausW1xL3Ms8yjrLywvPK1pbXEuPzQwsjV1r65psTcoaPP67W90qrFqtXiw7S24KOsxMfDtNTZu9i4tM7Esb7Qxc+iv8+2qL7NsrvMq7rDwcujrMv50tS+zdDo0qq72Li0zbzOxMG0vdPBy6GjzbzOxMG0vdO1xLvYuLTU2rnZt721xL+qt6LOxLW11tC+zdPQvt/M5bXEy7XD98HLo6zO0r+0tb3N+NPRtcS3vbeoo6y9q8TH0ru087SueG1stK631r3iv6rAtLSmwO2jrM7S0rK4+tfF1eLDtNf2wcujujwvcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140912/2014091209043527.png" alt="\">


传过来一个数组,然后再做处理,就可以很方便的回复图文链接了。
这里再提一下关于点击后跳转的那个链接吧:
因为我压根就不懂该怎么弄那个链接(一点概念都没有),后来想应该就是一个文件,这个链接就是这个文件的存放地址。然后我就随便用php写了个文件,放到SAE的Storage里,把这个链接放过来,测试了下效果就是这样的。
经常浏览网页的时候,又看到网页多是html的,所以又想该怎么生成html文件,在网上查资料html文件该怎么生成,又是网页在线生成、又是word保存为html、后来回家又是用dreamweaver的。后来html文件是生成了,可是没有很好的匹配手机浏览的需求,应该说是压根不像一个网页,可能我稍微有点网页设计基础应该就可以了,网上有很多的模板素材。
后来我无意在公众平台的素材库看到了我同学们做的一些文档,心想,能不能直接把我要用的那个帮助文档也用这个素材库来处理,直接创建一个新的素材,里面的内容就是帮助文档的信息。说来就来,将直接写好的帮助文档,添加至我新创建的素材中去,然后保存好再测试效果。结果很满意,就是我要的效果,这才像手机打开的网页嘛。因为有点强迫症,总是要调整格式啥的,所以那天忙到快十二点了才整理好,那天是周五,回到租的房子差不多是晚上八点了,回来后稍微收拾了下就是在整理公众平台了,然后忙到十二点左右。虽然累,但是很开心。

PHP注意点:
1、这天开发的时候遇到了问题,$_SESSION出问题了:保存的信息,每个用户都是可以访问的。当时在网上查资料的时候,要使得每个用户得到的信息不一致,需要通过设置ID来实现,即使用一个唯一的用户信息来设置id,这样就能保证每个用户得到的信息是不一致的:
session_id() 使用这个函数来设置id
因为微信公众号得到的收到的信息,里面有一个表示的是发送信息的用户,可以通过以这个为id使得值唯一,所以我就是以用户的信息来设置id的,但是后来出问题了。我一开始以为是这个机制的问题,以为我使用不当。所以调整了函数的调用顺序:
本来是
session_id();
session_start();
这样的调用顺序的,我想是不是这个顺序不对,我就换了下,结果还是不对。后来,我认真的看了下设置的这个id,才发现是我把那个用户信息写错了,大小写没分清楚,真是马虎害死人。
从微信服务器得到的用户信息是这样的:
$postObj->FromUserName
而我用成这样了 $postObj->fromUserName
而我却一直都没发现。。。诶。。。
2、php的数组:
使用关联数组的时候,如果使用foreach做循环,循环次数会有其count大小的两倍。这个在我做模糊检索的时候碰到了这个问题。当时我不是用in_array做匹配,而是使用循环数组来做匹配的,在网上查到的资料是说关联数组使用foreach来做匹配,这样还可以得到键值:
foreach ($array as $key => $value) 
{
       if($array[$key] == xxx)
       $res_array[] = $array[$key];
}
ログイン後にコピー
当时我这样做的时候,这个循环的次数为数组大小的两倍,我打印了这个key,显示出:既把关联的key打印出来了,又把数值键打印出来了。即第一次打印出的是数值key,第二次打印对应的关联key,同一个元素会被打印出两次。所以在我做匹配的时候,会得到两个同样的数组。不知道是不是我在哪里的使用出了问题。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

小紅書メモを削除する方法 小紅書メモを削除する方法 Mar 21, 2024 pm 08:12 PM

小紅書メモを削除するにはどうすればよいですか? メモは小紅書アプリで編集できます。ほとんどのユーザーは小紅書メモの削除方法を知りません。次に、エディターがユーザーに小紅書メモの削除方法に関する写真とテキストを提供します。チュートリアル、興味のあるユーザーが来て、それを受講してください見てください!小紅書使い方チュートリアル 小紅書メモの削除方法 1. まず小紅書アプリを開いてメインページに入り、右下隅の[自分]を選択して特別エリアに入ります; 2. 次に、マイエリアで、表示されているメモページをクリックします下の図で、削除したいメモを選択します; 3. メモページに入り、右上隅の [3 つの点] をクリックします; 4. 最後に、下部に機能バーが展開され、[削除] をクリックして完了します。

小紅書に関する削除されたメモは復元できますか? 小紅書に関する削除されたメモは復元できますか? Oct 31, 2023 pm 05:36 PM

小紅書から削除されたメモは復元できません。小紅書は知識共有とショッピングのプラットフォームとして、ユーザーにメモを記録し、役立つ情報を収集する機能を提供します。小紅書氏の公式声明によると、削除されたメモは復元できないとのこと。小紅書プラットフォームには、専用のノート回復機能はありません。これは、Xiaohongshu でメモが削除されると、誤って削除されたか、その他の理由であったとしても、プラットフォームから削除されたコンテンツを取得することは通常不可能であることを意味します。特別な状況が発生した場合は、Xiaohongshu のカスタマー サービス チームに連絡して、問題の解決に協力できるかどうかを確認してください。

小紅書に投稿したメモが見つからない場合はどうすればよいですか?送信したばかりのメモが見つからない理由は何ですか? 小紅書に投稿したメモが見つからない場合はどうすればよいですか?送信したばかりのメモが見つからない理由は何ですか? Mar 21, 2024 pm 09:30 PM

小紅書のユーザーとして、私たちは皆、公開されたノートが突然消えてしまう状況に遭遇したことがありますが、間違いなく混乱し、心配しています。この場合、どうすればよいでしょうか?この記事では、「小紅書が公開したメモが見つからない場合の対処方法」というテーマに焦点を当て、詳細な回答を提供します。 1. 小紅書が発行したメモが紛失した場合はどうすればよいですか?まず、パニックにならないでください。メモがなくなっていることに気づいた場合は、パニックに陥らず、落ち着いて行動することが重要です。これは、プラットフォームのシステム障害または操作エラーが原因である可能性があります。リリース記録の確認も簡単です。小紅書アプリを開き、「自分」→「公開」→「すべての出版物」をクリックするだけで、自分の出版記録を表示できます。ここでは、以前に公開されたノートを簡単に見つけることができます。 3.再投稿。見つかったら

最新のiOS 17システムでiPhoneにApple Notesを接続する方法 最新のiOS 17システムでiPhoneにApple Notesを接続する方法 Sep 22, 2023 pm 05:01 PM

リンクの追加機能を使用して iPhone で AppleNotes をリンクします。注: iOS17 がインストールされている場合、iPhone 上で Apple Notes 間のリンクを作成することができます。 iPhone でメモ アプリを開きます。次に、リンクを追加するメモを開きます。新しいメモを作成することもできます。画面上の任意の場所をクリックします。メニューが表示されます。右側の矢印をクリックして、「リンクの追加」オプションを表示します。クリックして。ここで、メモの名前または Web ページの URL を入力できます。次に、右上隅の「完了」をクリックすると、追加されたリンクがメモに表示されます。単語にリンクを追加したい場合は、単語をダブルクリックして選択し、「リンクを追加」を選択して、 を押します。

小紅書でノートに商品リンクを追加する方法 小紅書でノートに商品リンクを追加するチュートリアル 小紅書でノートに商品リンクを追加する方法 小紅書でノートに商品リンクを追加するチュートリアル Mar 12, 2024 am 10:40 AM

小紅書でメモに商品リンクを追加するにはどうすればよいですか?小紅書アプリでは、ユーザーはさまざまなコンテンツを閲覧できるだけでなく、ショッピングもできるため、このアプリにはショッピングのおすすめや良い商品の共有に関するコンテンツがたくさんあります。このアプリでは、ショッピング体験を共有したり、協力してくれる販売者を見つけたり、メモにリンクを追加したりすることもできます。便利なだけでなく、専門家がいくつかの機能を備えているため、多くの人がこのアプリをショッピングに使用したいと考えています。興味深いコンテンツを閲覧して、自分に合った衣料品があるかどうかを確認できます。ノートに商品リンクを追加する方法を見てみましょう! 小紅書ノートに商品リンクを追加する方法 携帯電話のデスクトップでアプリを開きます。アプリのホームページをクリックします

小紅書でメモのチュートリアルを公開するにはどうすればよいですか?メモを投稿することでユーザーをブロックできますか? 小紅書でメモのチュートリアルを公開するにはどうすればよいですか?メモを投稿することでユーザーをブロックできますか? Mar 25, 2024 pm 03:20 PM

小紅書はライフスタイル共有プラットフォームとして、食、旅行、美容などさまざまな分野のメモをカバーしています。多くのユーザーは小紅書でメモを共有したいと思っていますが、その方法がわかりません。この記事では、Xiaohongshu にメモを投稿するプロセスを詳しく説明し、プラットフォーム上で特定のユーザーをブロックする方法を検討します。 1.小紅書でメモのチュートリアルを公開するにはどうすればよいですか? 1. 登録とログイン: まず、携帯電話に小紅書アプリをダウンロードし、登録とログインを完了する必要があります。パーソナルセンターに個人情報を記入することは非常に重要です。アバターをアップロードし、ニックネームや自己紹介を記入することで、他のユーザーがあなたの情報を理解しやすくなり、メモに注意を向けやすくなります。 3. 公開チャネルを選択します。ホームページの下部にある [メモを送信] ボタンをクリックし、公開するチャネルを選択します。

iPhone のメモ アプリで印刷したメモや手書きのメモをスキャンします iPhone のメモ アプリで印刷したメモや手書きのメモをスキャンします Nov 29, 2023 pm 11:19 PM

2022 年、Apple は iPhone および iPad のメモ アプリに、印刷または手書きのテキストをすばやくスキャンしてデジタル テキスト形式で保存できる新機能を追加しました。それがどのように機能するかを学び続けてください。 iOS および iPadOS の以前のバージョンでは、Apple のメモ アプリにテキストをスキャンするには、メモのテキスト フィールドをタップしてから、ポップアップ メニューの [ライブ テキスト] オプションをタップする必要がありました。ただし、Apple は 2022 年に現実世界のメモのデジタル化を容易にします。次の手順では、iOS 15.4 または iPadOS 15.4 以降を実行しているデバイスでこれを行う方法を示します。 iPhone または iPad で、「」を開きます。

iPhoneで削除したメモを復元する方法 iPhoneで削除したメモを復元する方法 Jul 14, 2023 pm 07:25 PM

ほとんどの人は、レシピ、誕生日、歌の歌詞などをすべて書き留めます。 iPhone のメモ アプリで。しかし、多くの iPhone ユーザーは、誤って iPhone 上の非常に重要なメモを削除してしまい、非常に緊張してイライラしていると報告しています。彼らはiPhoneでそれを復元する方法を知りません。私たちはこの問題について多くの調査を行った結果、iPhone から削除されたメモを復元する 2 つの方法を発見しました。この記事では、削除したメモを簡単に取り戻す 2 つの方法を説明します。メモアプリ経由で削除したメモを復元する方法 ステップ1: まず、iPhoneのホーム画面からメモアプリを起動する必要があります。ステップ 2: Notes アプリケーションを起動する

See all articles