wordでルビ付き文ファイルが送られてきて、その文をコピーすると、括弧にルビがくくられてこれまで困ってきました。
そこで、正規表現を使って、かっことその中の文字列を削除する簡単なスクリプトを書きましたので、ついでにアップしておきます。
http://labo.web-do.com/php/rubi.php
コードは至ってシンプルです。
$result=preg_replace("/\(.*?\)/","",$text);
みたいに置換しました。
「.*?」という指定、とても便利で気に入っています。
greedyでない検索、置換ができて。
2010年7月29日木曜日
2010年5月19日水曜日
正規表現で、テーブルタグを一掃。
tableタグを一掃したくて、正規表現を書いてみたら、
うまくいったようなのでメモです。
今、tableで組んだ古いスタイルのサイトをリニューアル中なので、これで一気に取り組めそうです。
正規表現って、すごいすね。
「.*?」という「貪欲でない」正規表現、かなり使えますね。
これがないと、他の部分まで食ってしまう。
以下、PHPマニュアルの参照箇所です。
http://jp.php.net/manual/ja/regexp.reference.repetition.php
(■追記: もたくさん仕込まれていることしばしばなので、ついでに
うまくいったようなのでメモです。
$text="<tr><td><img>";
$pattern="(<t(d|r|able).*?>|<\/t(d|r|able).*?>)";
$result=preg_replace("/$pattern/","",$text);
echo $result;
今、tableで組んだ古いスタイルのサイトをリニューアル中なので、これで一気に取り組めそうです。
正規表現って、すごいすね。
「.*?」という「貪欲でない」正規表現、かなり使えますね。
これがないと、他の部分まで食ってしまう。
以下、PHPマニュアルの参照箇所です。
http://jp.php.net/manual/ja/regexp.reference.repetition.php
(■追記: もたくさん仕込まれていることしばしばなので、ついでに
$pattern="(<t(d|r|able).*?>|<\/t(d|r|able).*?>| )";としてみました。)
2010年5月13日木曜日
複数単語のハイライト
複数単語をハイライトさせようと思い、試行錯誤して出来たので、メモです。
function highlight($content,$word){
if(is_array($word)){
$num=count($word);
$lighted[0]=$content;
for($j=0;$j<$num;$j++){
$k=$j+1; //$kを$jの先に進めておく。
//一単語ずつハイライトしていったものを格納。
$lighted[$k]=str_replace($word[$j],
"<span class='highlight'>{$word[$j]}</span>",$lighted[$j]);
}
return $lighted[$num];
}
else{
$lighted=str_replace($word,"<span class='highlight'>{$word}</span>"
,$content);
return $lighted;
}
}
2010年5月9日日曜日
radioボタンの文字部分もクリッカブルに
radioボタンの文字部分をクリックしても選択できるようにしたいと思い、ググって実装したのでメモ。
といったように、inputタグにidを命名してやり、labelでforの対象に、先ほどのidを指定してやればOKに。
ちょっと親切。
参考になったサイト:http://fefnir.com/school/5-1.htm
<input type="radio" id="id1" name="name1" value="1"> <label for="id1">radio1</LABEL>
といったように、inputタグにidを命名してやり、labelでforの対象に、先ほどのidを指定してやればOKに。
ちょっと親切。
参考になったサイト:http://fefnir.com/school/5-1.htm
2010年5月7日金曜日
file名の取得メモ
ファイル名を取得するために、
echo $_SERVER['PHP_SELF'];
を使おうかと思ったが、ファイル名だけ習得すればいいので、
$dir=dirname(__FILE__).DIRECTORY_SEPARATOR;
$file=str_replace($dir,"",__FILE__);
echo $file;
の方が良い感じだった。
関数化してシンプルに使いたいが、今のところ外部ファイルで独自関数化すると、その外部ファイル名が習得されてしまうので、うまくいっていない。
また、定数化したら便利だろうかと思ったが、定数は一度定義されるとそのまま、と知らず、再定義ができないなど面倒だったのでパスすることに。
PHP5.3からは、__DIR__というマジック定数が用意されたようだが、まだ環境が整備されていないことがありそうなので、これもパスすることに。
echo $_SERVER['PHP_SELF'];
を使おうかと思ったが、ファイル名だけ習得すればいいので、
$dir=dirname(__FILE__).DIRECTORY_SEPARATOR;
$file=str_replace($dir,"",__FILE__);
echo $file;
の方が良い感じだった。
関数化してシンプルに使いたいが、今のところ外部ファイルで独自関数化すると、その外部ファイル名が習得されてしまうので、うまくいっていない。
また、定数化したら便利だろうかと思ったが、定数は一度定義されるとそのまま、と知らず、再定義ができないなど面倒だったのでパスすることに。
PHP5.3からは、__DIR__というマジック定数が用意されたようだが、まだ環境が整備されていないことがありそうなので、これもパスすることに。
登録:
投稿 (Atom)