PHPでmb_convert_kanaを利用する方法は見つけたのですが、ページの”一部の文字だけ”を変更する方法しかわかりませんでした。できれば全てを全角カナから半角カナに変換したいのですが、教えてください。
すみません、説明が悪かったですね。少しだけ改良してみました。
1| <?php
2|
3| $suffix = '_mob';
4| $ext = '.html';
5|
6| mb_language('Japanese');
7| mb_internal_encoding('UTF-8');
8|
9| $dir = dirname(__FILE__);
10| $dh = opendir($dir) or dir('Error: ディレクトリを開けません。');
11| while ( ($file = readdir($dh)) !== false ) {
12| $path = $dir . DIRECTORY_SEPARATOR . $file;
13| if ( is_file($path) && (mb_strpos($file, $ext) !== false) ) {
14| $mob_cont = file_get_contents($path);
15| $mob_cont = mb_convert_encoding($mob_cont, mb_internal_encoding(), 'us-ascii,jis,utf-8,euc-jp,sjis');
16| $mob_cont = mb_convert_kana($mob_cont, 'k');
17| $mob_file = basename($file, $ext) . $suffix . $ext;
18| $fp = fopen($mob_file, 'wb');
19| fwrite($fp, $mob_cont);
20| fclose($fp);
21| }
22| }
23|
24| print '処理が終了しました。';
25| ?>
$suffix に半角カナに変換したファイルの名前を設定し、 $ext に対象とする拡張子を設定します。
これで同じディレクトリの指定した拡張子のファイルが変換されます。
処理が終るとその旨wお知らせします。が、エラーチェックなどは行なっていないので、保証はできないです。
コメント出来ないのでこちらに書きます。
http://jp.php.net/mb_convert_kana
携帯用に変換するのでしょうか?もう少しやりたいことの説明をいただければ回答できるんですが。。
一部だけ、というのがどのような方法を指すのかわかりませんが、渡した文字列は全部変換してくれますよ。
<?php
$str = file_get_contents('index.html');
print mb_convert_kana($str, 'k');
?>
ありがとうございます。ほぼやりたいことができるようになりました。
ご指摘のとおり、数10ページあるホームページを携帯用に変換したいと考えていました。今回のやりかたで1つのページ(index.html)は変換できるようになりました。
そこで、PC用サイト100ページ以上を携帯用に全角カナ⇒半角カナに変換した形にするPHPのスクリプトなどがあれば助かるのですが、ご存知でしたら教えて欲しいです。
http://www.kumalab.com/soft/000053.html
そのような用途であれば、このようなソフトを利用するのがよいかと思います。
どうしても PHP で、というのであれば書いてみます(その前に他の方がよいサイト・スクリプトを紹介してくれるかもしれませんけど)。
ありがとうございます。非常に参考になりました。
もし可能であればPHPのスクリプトを頂けましたらと思います。mt4i(http://www.hazama.nu/pukiwiki/index.php?MT4i%2F%B5%A1%C7%BD%B2%F...)のように、出力時に自動的に全角カナを半角カナにしてもらえるようなものが理想です。
お力を貸してもらえたらと思います。
<?php
mb_language('Japanese');
mb_internal_encoding('UTF-8');
$dir = dirname(__FILE__);
$dh = opendir($dir) or dir('Error: ディレクトリを開けません。');
while ( ($file = readdir($dh)) !== false ) {
$path = $dir . DIRECTORY_SEPARATOR . $file;
if ( is_file($path) && (mb_strpos($file, '.html') !== false) ) {
$mob_cont = file_get_contents($path);
$mob_cont = mb_convert_encoding($mob_cont, mb_internal_encoding(), 'us-ascii,jis,utf-8,euc-jp,sjis');
$mob_cont = mb_convert_kana($mob_cont, 'k');
$mob_file = basename($file, '.html') . '_mob.html';
$fp = fopen($mob_file, 'wb');
fwrite($fp, $mob_cont);
fclose($fp);
}
}
?>
こんな感じでしょうか。同じディレクトリにある *.html を *_mob.html に変換して保存します。
書き込み権限が必要です。
ちゃんと試してませんw。
ありがとうございます。
index.htmlをindex_mob.htmlに変更し、スクリプトを記載したindex.phpを開いたところ、画面が真っ白のままです。設置の仕方が間違っているのかもしれません。素人な質問ですがどのように対処したらいいのでしょうか?
Perlでいいならjcode.plのz2h_xxx(xxxは文字コード)関数を利用してみてはどうでしょうか。
http://www.aimix.jp/cgi/accjcodezh.html
ちょっと検索してみたところこのようなページが見つかりました。
参考にしてみてください。
ありがとうございました。
すみません、今回はPHPでお願いしたいと考えています。
すみません、説明が悪かったですね。少しだけ改良してみました。
1| <?php
2|
3| $suffix = '_mob';
4| $ext = '.html';
5|
6| mb_language('Japanese');
7| mb_internal_encoding('UTF-8');
8|
9| $dir = dirname(__FILE__);
10| $dh = opendir($dir) or dir('Error: ディレクトリを開けません。');
11| while ( ($file = readdir($dh)) !== false ) {
12| $path = $dir . DIRECTORY_SEPARATOR . $file;
13| if ( is_file($path) && (mb_strpos($file, $ext) !== false) ) {
14| $mob_cont = file_get_contents($path);
15| $mob_cont = mb_convert_encoding($mob_cont, mb_internal_encoding(), 'us-ascii,jis,utf-8,euc-jp,sjis');
16| $mob_cont = mb_convert_kana($mob_cont, 'k');
17| $mob_file = basename($file, $ext) . $suffix . $ext;
18| $fp = fopen($mob_file, 'wb');
19| fwrite($fp, $mob_cont);
20| fclose($fp);
21| }
22| }
23|
24| print '処理が終了しました。';
25| ?>
$suffix に半角カナに変換したファイルの名前を設定し、 $ext に対象とする拡張子を設定します。
これで同じディレクトリの指定した拡張子のファイルが変換されます。
処理が終るとその旨wお知らせします。が、エラーチェックなどは行なっていないので、保証はできないです。
コメント出来ないのでこちらに書きます。
ありがとうございました。
詳しい説明もしてもらったため、解決できそうです。本当にありがとうございます!
ありがとうございました。
詳しい説明もしてもらったため、解決できそうです。本当にありがとうございます!