いいですよ、(´-ω-`)

※鍾会botランダム返信(名前部分を顔文字に置換)

 

■置換で改行を追加

↑のはbotのランダム返信データを読み込んでるので、もとは改行してないけれど。
ていうか、そもそも改行が区切りになってるし。

ただそのままだと、こっちで読み込む場合に見栄えが悪い所で折り返しになってたりするので、 適当に改行を追加してみたり。

以下のを、「echo $text;」(表示)の前に追加ー。




//。で改行する

	if(strpos($text, "。") !== FALSE){
        $text = str_replace("。","。<BR>\n",$text);
	}
//? で改行する

	if(strpos($text, "? ") !== FALSE){
        $text = str_replace("? ","?<BR>\n",$text);
	}
//! で改行する
	if(strpos($text, "! ") !== FALSE){
        $text = str_replace("! ","!<BR>\n",$text);
	}


(・ω・`。)

 

■検索→置換

さっきの自体はここ以外でそんなに使うこともないだろうけれど、 「検索→置換」はすごく流用しやすいと思うので、 忘れないように確認&メモ……。

「$text」は何かの文を入れてる変数。


	if(strpos($text, "★") !== FALSE){
「strpos」の意味はともかく、このままコピペで覚えて使い回し中(;´∀`)

要するに、
もし「$text」内で「★」を探して存在したら……みたいに理解中。

これで何かを加工とかしたい場合の「検索」をしたりとか。

で、次のこれが「置換」の方。


        $text = str_replace("★","☆",$text);
これだと、「$text」内で「★→☆」と置換をすることに。
変数でもOKで、その場合は、


        $text = str_replace("★",$hoshi,$text);
★を「$hoshi」の中身に置換したり。

こんな理解でいいのかなあ……?
とりあえずこれで動いてるからまいっか、という感じ(´∀`*)

 

■EasyBotterで実際に使う場所

返信で{name}をよく使うけれど。
{name}の中に「@」がある場合、その「@」の先にも返信したりするので(全角でも同様)、 その対処用にこれを使ってみてたり。

今の所「@」を削除してるけど、やり方自体は同じなので、 以下メモ。


   //文章を変換する
   function convertText($text, $reply = FALSE){
の後の適当な所に以下のを追加(・ω・`。)

if(strpos($text, "{name}") !== FALSE){
       $text = str_replace("{name}",$reply->user->name,$text);
       $text = str_replace("@","",$text);
       $text = str_replace("@","",$text);
}
これだと@と@(半角、全角)を削除してるだけ……。

一応ざくざく@を消してくれてるので実用的だけど、 「なまえ@name」みたいなのを削りたいだけなのに、 これだと「なまえ@ばしょ」みたいな、TwitterのIDにならないようなケースでも 一緒くたに置換するから、割と乱暴といえば乱暴ではあったり(;´∀`)

人様の名前を勝手に置換してることでもあるから気が引けるけれど、 とりあえず正規表現とかめんどくさいというよりはよくわかってないので、 当面はこんな感じかも……。


■検索
strpos ― 文字列内の部分文字列が最初に現れる場所を見つける
http://jp.php.net/manual/ja/function.strpos.php
preg_match ― 正規表現によるマッチングを行う
 preg_match("/パターン/", 調べる文字列);
http://www.php.net/manual/ja/function.preg-match.php

■置換
str_replace ― 検索文字列に一致したすべての文字列を置換する
http://php.net/manual/ja/function.str-replace.php
preg_replace ― 正規表現検索および置換を行う
http://jp.php.net/manual/ja/function.preg-replace.php

正規表現-後方参照
http://php.net/manual/ja/regexp.reference.back-references.php

正規表現(詳しい)
http://www.sound-uz.jp/php/note/regx

(2012/2/12)

■お知らせ

■EasyBotter用メモ

■phpメモ(EasyBotter)

■phpメモ

■webメモ

■php保管

■その他