いいですよ、(´-ω-`)
■置換で改行を追加
↑のはbotのランダム返信データを読み込んでるので、もとは改行してないけれど。ていうか、そもそも改行が区切りになってるし。 ただそのままだと、こっちで読み込む場合に見栄えが悪い所で折り返しになってたりするので、 適当に改行を追加してみたり。 以下のを、「echo $text;」(表示)の前に追加ー。
//。で改行する
if(strpos($text, "。") !== FALSE){
$text = str_replace("。","。
\n",$text);
}
//? で改行する
if(strpos($text, "? ") !== FALSE){
$text = str_replace("? ","?
\n",$text);
}
//! で改行する
if(strpos($text, "! ") !== FALSE){
$text = str_replace("! ","!
\n",$text);
}
■検索→置換
さっきの自体はここ以外でそんなに使うこともないだろうけれど、 「検索→置換」はすごく流用しやすいと思うので、 忘れないように確認&メモ……。 「$text」は何かの文を入れてる変数。
if(strpos($text, "★") !== FALSE){
もし「$text」内で「★」を探して存在したら……みたいに理解中。 これで何かを加工とかしたい場合の「検索」をしたりとか。 で、次のこれが「置換」の方。
$text = str_replace("★","☆",$text);
変数でもOKで、その場合は、
$text = str_replace("★",$hoshi,$text);
とりあえずこれで動いてるからまいっか、という感じ(´∀`*)
■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);
}
■検索
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