【PHP】くだらねぇ質問はここに書き込みやがれpart7
■ このスレッドは過去ログ倉庫に格納されています
0001966
2005/07/12(火) 01:47:09ID:qOoYFCn7ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
立ってなかったんで>>970に近かった自分が勝手に立てちゃいました。
0134nobodyさん
2005/07/15(金) 07:51:45ID:???0136nobodyさん
2005/07/15(金) 08:03:08ID:???0137nobodyさん
2005/07/15(金) 08:05:10ID:???玄人ぶって偉そうに忠告をしたつもりの>>132が、
「専鯖」という強力な返り討ちワードを食らった挙句に
苦し紛れに「無駄」と言い捨て逃亡。
これを「諸行無常」と呼ぶ。
0138nobodyさん
2005/07/15(金) 08:09:06ID:???0140nobodyさん
2005/07/15(金) 08:14:35ID:???専鯖ってのが真実ならテスト鯖じゃないわけで
0141nobodyさん
2005/07/15(金) 08:17:23ID:???0142nobodyさん
2005/07/15(金) 08:17:39ID:???ローカルでデバッグするのに比べて無駄があるとかそんな話じゃないんじゃないのw>>134
0143nobodyさん
2005/07/15(金) 08:22:39ID:???別に逃亡してないんですけど。
手元でやってたら0.1秒で気づくミスだろハゲ男。
ていうかメル欄全角かよ。俺ハズカシス。
0147nobodyさん
2005/07/15(金) 11:21:44ID:???それを違う名前.txtにリネームして同じディレクトリに作成するって
可能でしょうか??
0149nobodyさん
2005/07/15(金) 12:12:18ID:???ありがとうございます
どこか参考になるページとかないでしょうか?
ぐぐってはみたんですがわからなくて・・・
0150nobodyさん
2005/07/15(金) 12:19:59ID:???>それを違う名前.txtにリネームして
>同じディレクトリに作成するって
一気にやろうとしないで、マニュアル見ながら上記を一行ずつ解決していけばいいよ。
0151nobodyさん
2005/07/15(金) 12:20:37ID:???やりたい事がいまいち分かんないけど
opendir、rename、stat辺りを使えばいけると思うよ
とりあえずマニュアルとにらめっこすることをお勧めします
http://www.php.net/manual/ja/function.opendir.php
http://www.php.net/manual/ja/function.rename.php
http://www.php.net/manual/ja/function.stat.php
0152nobodyさん
2005/07/15(金) 13:04:05ID:???どうもありがとうございます
0154nobodyさん
2005/07/15(金) 13:38:55ID:???CSVを読み込んで、テーブルで出力しようと思ってます。
CSV内容
"1","十","aaa"
"2","あ","bbb"
"3","表","ccc"
で、読み込んでるとこのソースが
$fp = fopen("hoge.txt","r");
while($row = fgetcsv($fp,1024))
{
echo "<tr>\n";
foreach($row as $column)
{
echo "<td>".$column."</td>\n";
}
echo "</tr>\n";
}
fclose($fp);
です。
EUCならこのままで問題ないのですが、
出力結果をShift_JISで出力したいんです。
ですが、"表"とか"十"が入ってるデータがあると
そこがうまく取り込めないらしくテーブルが壊れます。
うまいこと取り込む方法ってありますか?
0155nobodyさん
2005/07/15(金) 14:17:35ID:???SJISで出力したいなら、出力前にEUC-JP→SJISの変換を掛ければ良いだけだが。
ファイルの入出力も、ブラウザへも全てSJISでやりたいなら、それぞれの
入出力に変換を掛けるか、内部コードにSJISが利用できるようにコンパイルされた
PHPを使って、スクリプトのコードも全部SJISに統一すれば簡単。
0156nobodyさん
2005/07/15(金) 14:18:03ID:???EUCで全部やって、出力のみをsjisにするとか。
0x5cが下位バイトに来る文字は決まってるから、それに注意してデータを作成するとか(\をつける)。
0157154
2005/07/15(金) 15:10:23ID:???データは外部から抽出されたものをそのまま使いますし
データに\を付けていくのは大変なのでNGです。
>>155
既存のシステムがなかなか停止できないので、
PHPのコンパイルは避けたいです。
mb_convert_encoding関数を使えばできそうなので
やってみようと思います。ありがとうございました。
0158nobodyさん
2005/07/15(金) 16:54:44ID:Fg/gKXLa4行程度のソースなんですが、ここに書いたらまずいですかね?
0159nobodyさん
2005/07/15(金) 17:00:33ID:???0160158
2005/07/15(金) 17:09:27ID:???絵文字が2個以上並んでいると最初の一個しか変換されません。
対処ほうありますでしょうか?
$str = "\x1b\$G\x21\x0fabc"; // 絵文字入り文字列
$regex = '/\x1b\$([E-G])([\x21-\x7a])+\x0f/e'; // 絵文字にマッチする正規表現
echo preg_replace($regex, 'sprintf("<img src=\"%02X%02X.gif\">",
ord("$1"),ord("$2"))', $str); // 絵文字をイメージタグに変換して出力
0161軟式PHP
2005/07/15(金) 17:23:29ID:???$strWrk = 絵文字が入った文章;
do{
$tmp = $strWrk;
$strWrk = preg_replace("/(\x1b[\x24][\x45-\x47\x4F-\x51])([\x21-\x7A])([\x21-\x7A]+)([\xF])/im","$1$2$4$1$3$4",$strWrk);
}while( $strWrk != $tmp );
俺はとりあえずこんな感じにしてるけど。
0162nobodyさん
2005/07/15(金) 18:51:21ID:???$filename=basename($_GET['filepath']);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$filename\"");
readfile($filepath);
このようなものを作ったのですが、
filepathにrawurldecodeをかければ日本語ファイル名でもダウンロードできるのですが、
ダウンロード時のファイル名が文字化けしてしまいます。
これを解消するにはどのようにすればいいのでしょうか?
これを機会にheader関数もよく勉強したいのでお願いします。
0163158
2005/07/15(金) 21:01:03ID:???理解しようとしてるのですが、なかなかできません。。
$strWrkにvodafone絵文字が入った文章を入れて>>161を通すと絵文字の部分が何かに置き換えられてる
という使い方でよろしいのでしょうか?試してみたのですが echo $strWrk としたところ何も置き換えられないででてくるのですが
使い方間違っていますでしょうか?せっかく書いていただいたので試したいのでよろしくお願いします。
0164軟式PHP
2005/07/15(金) 21:14:31ID:???161のコードを通すと、連結した絵文字を分離するから、
それに対して、>>160のコードを通したらイけると思うけど。
あと
>>\x1b\$G\x21\x0fabc
は1個の絵文字だから意味ないよ。
0165nobodyさん
2005/07/15(金) 21:39:08ID:???どうしたらよい??
0166nobodyさん
2005/07/15(金) 21:40:50ID:???0167nobodyさん
2005/07/15(金) 21:45:48ID:???正規表現にかけるしかないのでしょうか?
0168nobodyさん
2005/07/15(金) 21:49:44ID:???PHPだと最後のチェックボックスの値しか取らないみたいなんだけど…
ASPなら自動でカンマ区切り、
Perlなら区切るモジュールで、
PHPは?
0169nobodyさん
2005/07/15(金) 21:55:15ID:???<input type="checkbox" name="test" value="test1">
<input type="checkbox" name="test" value="test2">
<input type="checkbox" name="test" value="test3">
○
<input type="checkbox" name="test[]" value="test1">
<input type="checkbox" name="test[]" value="test2">
<input type="checkbox" name="test[]" value="test3">
0171nobodyさん
2005/07/15(金) 22:04:07ID:???ttp://www.stackasterisk.jp/tech/php/php02_06.jsp
このあたりを見てください
0172nobodyさん
2005/07/16(土) 02:36:41ID:???0173nobodyさん
2005/07/16(土) 02:53:22ID:???0174nobodyさん
2005/07/16(土) 06:55:00ID:6rljT00vyumでインストールはできないですよね?
makeしてPHPもコンパイルして構築しないとだめですか?
0176158
2005/07/16(土) 11:16:40ID:???すぐ結果報告できなくてすみません。
V603SHから絵文字を入力して試してみました。
$strWrk = $_POST['body']; //$_POST['body'] = (男の子のマーク)(女の子のマーク)
do{
$tmp = $strWrk;
$strWrk = preg_replace("/(\x1b[\x24][\x45-\x47\x4F-\x51])([\x21-\x7A])([\x21-\x7A]+)([\xF])/im","$1$2$4$1$3$4",$strWrk);
}while( $strWrk != $tmp );
$str = $strWrk;// 絵文字入り文字列
$regex = '/\x1b\$([E-G])([\x21-\x7a])+\x0f/e'; // 絵文字にマッチする正規表現
$str = preg_replace($regex, 'sprintf("<img src=\'%02X%02X.gif\'>",ord("$1"),ord("$2"))', $str); // 絵文字をイメージタグに変換して出力
echo $str;
結果↓
<img src='4721.gif'><img src='475C.gif'><img src='4722.gif'>
男の子と女の子の絵文字を入れると間に違うのが入ってしまうのですが、このほかには何個ならべても
おかしな点はありませんでした。完全ではありませんが私としては満足できるレベルになりました。
ありがとうございました。
どこ調べてもDOCOMOの絵文字についてはたくさん書いてあるのですが、VODAFONEの絵文字については
ネット上でどのように書かれてるかなどみつけられませんでした。絵文字について書いてる本がもう一冊あったので買ってみます。
0177nobodyさん
2005/07/16(土) 11:19:08ID:???<html>
<body>
<?php ほにゃらら ほにゃらら ?>
</body>
</html>
こんな感じでhtmlのなかにスクリプト書きまくってるからかな。
DBの接続とかしてるし。
ob_startとか使ったほうがいいのでしょうか。
0178nobodyさん
2005/07/16(土) 12:29:36ID:???ttp://acapulco.dyndns.org/mod_uploader/#performance
0179nobodyさん
2005/07/16(土) 16:26:26ID:6tLNOCU80180nobodyさん
2005/07/16(土) 16:30:44ID:???0181nobodyさん
2005/07/16(土) 18:18:31ID:mgfMVhVU関数かサブルーチンにしようとおもってるんだけど
どやってするの?
<本プログラム>
&GetDate;
<呼び出しプログラム>
sub GetDate{
$date = date('Y/m/d H:i:s', time());
}
とやってみたら、エラーが出たよ。
0182nobodyさん
2005/07/16(土) 18:18:36ID:wfLNoi6t0183nobodyさん
2005/07/16(土) 18:22:01ID:???どうやったら切れませんか?
0184nobodyさん
2005/07/16(土) 18:27:08ID:???SQL文を発行した際に、例えば
$sql = "select * from tbl_hoge";
$rst = mysql_query($sql);
if(!$rst) print "だめぽ";
といったカンジでMySQLのエラーが出た際にエラーメッセージを表示させていました。
ところがPHPのマニュアルのmysql_queryの部分を見ると
$rst = mysql_query($sql) or die("だめぽ");
というような例文を挙げています。
これらは同じものなのでしょうか?
また、クエリーの結果falseが返ってくるケースとしては
クエリーが文法的に間違っているので撥ねられた場合のみ考えておけばいいのでしょうか?
例えばクエリーに問題がなくともサーバーが不調でMySQLがうまく機能していないとかにも
falseが返ってくることはありえるのでしょうか?
0187nobodyさん
2005/07/16(土) 19:02:16ID:???orはif文などに出てくるorと同じ
左がfalseなら右を実行するので、
mysql_queryがfalseならdieを実行する。
0188181
2005/07/16(土) 19:24:56ID:mgfMVhVUPerlでしか出来ないってこと?
PHPでやりたいのです…。
Callしなくても、includeするだけで変数使えるとか!?
でも、呼び出しプログラムの方のエラーが出るの。
0189nobodyさん
2005/07/16(土) 19:31:11ID:???$date = _GetDate();
function _GetDate() { return date('Y/m/d H:i:s'); }
まず調べれ
0190nobodyさん
2005/07/16(土) 19:39:24ID:???お前が書いてるのはほぼPerlだってこと。
↓くらい読んでから質問しようね。
ttp://www.php.net/manual/ja/language.functions.php
0191181
2005/07/16(土) 20:11:53ID:???$date = GetDate();
<呼び出しプログラム>
function GetDate(){
$date = date('Y/m/d H:i:s', time());
return $date;
}
としてみたけど、やっぱりえらーが出る。
Fatal error: Cannot redeclare getdate() in ......
呼び出しプログラムの2行目ってなってるけど
2行目は呼び出しの所。
何故〜
0192nobodyさん
2005/07/16(土) 20:24:41ID:???エラーメッセージを嫁。頭弱いのか?
ttp://jp.php.net/manual/ja/function.getdate.php を読んで
>>189氏が何故_を先頭に付けたか考えろ。
0193181
2005/07/16(土) 20:30:19ID:???getdateて組込関数が既にあるからか…
ごめんなさい、できました。
ついでに、すごく馬鹿な質問なのですが、
呼び出しプログラムの中で書いてある1個の関数の中に、
本プログラムで使いたい変数がたくさんある場合は
一つ一つreturnしないと、やっぱり無理?
0194nobodyさん
2005/07/16(土) 20:35:41ID:???0195nobodyさん
2005/07/16(土) 20:52:26ID:???関数から複数の値を返したい、ってことを
言っているのか?
0196nobodyさん
2005/07/16(土) 21:07:29ID:???>or die("だめぽ");
このパターンの例文に関してなんだけど・・・
<html>から<body>と
</body></html>を、自分で作った関数で吐かせてる場合は
dieしちゃうと、そのエラーメッセージより後ろは表示してくれなくなるんで困ってます。この辺は皆さんはどんな風にしょりしてますか?
エラーメッセージの後ろに</body></html>をくっつけておくしかない?
0197184
2005/07/16(土) 21:16:59ID:???なるほど。
エラー表示が1行で済みそうです。
どうもありがとうございました。
>>196
自分はエラー表示用関数を作ってます。
コンテンツを適当なヘッダとフッダではさむ通常の表示用関数に、
最後にexit()をつけたものをエラー表示用関数として使ってます。
0198181
2005/07/16(土) 21:17:45ID:???$date = date('YmdHis', time());
$date_yyyy = mb_strcut($date, 0, 4);
$date_mm = mb_strcut($date, 4, 2);
$date_dd = mb_strcut($date, 6, 2);
$date_hh = mb_strcut($date, 8, 2);
$date_ii = mb_strcut($date, 10, 2);
$date_ss = mb_strcut($date, 12, 2);
を外部ファイルに記述し、色んな処理で手軽に$dateや$date_yyyyを使いたいのです。
ただのincludeしただけでも、
print $date;
print $date_yyyy;
のように使えるとは思うのですが、そうすると、外部ファイルの処理を全て動かすことになるので
よくないかな…と。
すみません、何言ってるかわからなくて…。
あと、マニュアルも一応読んでるんですが、よくわからなくて…。
ごめんなさい(´・ω・`)
0199nobodyさん
2005/07/16(土) 21:56:37ID:???外部ファイルの処理を全て。。。という部分が判るようで
判らないんだけど、その部分だけを外部ファイル、他の部分は
別の外部ファイルでいいのでは?
--- date.inc.php ---
<?php
$date = date('YmdHis', time());
$date_yyyy = mb_strcut($date, 0, 4);
$date_mm = mb_strcut($date, 4, 2);
$date_dd = mb_strcut($date, 6, 2);
$date_hh = mb_strcut($date, 8, 2);
$date_ii = mb_strcut($date, 10, 2);
$date_ss = mb_strcut($date, 12, 2);
?>
--- etc.inc.php ---
<?php
//その他の処理
?>
--- 本プログラム ---
<?php
require_once('date.inc.php');
require_once('etc.inc.php');
echo $date;
echo $date_yyyy;
?>
次レスに続けるね。
0200nobodyさん
2005/07/16(土) 22:00:19ID:???元発言だと関数化したい、という話みたいだけど、関数や引数、戻り値が
あまり判っていないようなので、参考までに。
なるべく元のままで関数化しているので、あまりキレイなコードではないけど。
--- date.inc.php ---
<?php
function _GetDate() {
return date('YmdHis', time());
}
function _GetDate_yyyy($date) {
return mb_strcut($date, 0, 4);
}
以下、同様
?>
--- 本プログラム ---
<?php
require_once('date.inc.php');
$date = _GetDate();
$date_yyyy = _GetDate_yyyy($date);
echo $date;
echo $date_yyyy;
?>
0201196
2005/07/16(土) 22:36:12ID:???なるほど。
いいのか悪いのか解らんけど、基本的にスクリプトは最初から最後まで<?phpと?>で囲んでしまって、getメソッドで飛ばしたモード判別変数でcaseで切り替え。
たいていはこんな作りなんで、どうしたものかと、思ってました。
エラーメッセージを引数にした関数を自分で作ってそこで実行すれば便利ですね。
0202198
2005/07/16(土) 22:49:02ID:???レス、ありがとう(;_;)
>外部ファイルの処理を全て。。。
出来れば、共通で使うものは同じ外部ファイルにまとめて書きたくて
日付取得以外の処理も色々書いた場合、
ただのincludeだと、必要ない処理部分も読み込むことになるのかな、と思ったのです。
関数化にすれば、同一ファイル内に色々な処理が書かれていても
呼ばれたモノだけを読み込むのかなと思ってるのですが、
考えはあってるのでしょうか…。
>>200は、>>198を元に書いていただいたんだと思うのですが、
キレイにするとどんな感じになるのでしょうか?
一つの関数内で
return $date;
return $date_yyyy;
return $date_mm;
return $date_dd;
return $date_hh;
return $date_ii;
return $date_ss;
てしたら、案の定おかしい事に(-_-;)
0203nobodyさん
2005/07/16(土) 22:54:51ID:trCc1XOq定数宣言をすべて
interfaceに任せてそこでconstで定義しているのですが
PHP5のinterfaceを
Javaのinterfaceのように
public interface Constant {
public static final String CONSTANT_STRING = "test";
public static final String CONCATINATEED_CONSTANT_STRING = "This is a " + CONSTANT_STRING;
}
のような定義をしたいのですが
これをPHPでやろうとすると
interface Constant {
public const CONSTANT_STRING = "test";
public const CONCATINATEED_CONSTANT_STRING = "This is a ".CONSTANT_STRING; //<-ここでエラー
}
三行目のところでエラーが出てしまいます。
どうしてもJavaのような手法を使いたいのですができる方法はないでしょうか?
Javaのfinal(最初の一回しか代入が許されていない定数)に相当するものが
PHPにもあるかと思ってPHPのfinalを使ってみましたが残念ながらJavaのような定数宣言には使えず、
メソッドのオーバーライド禁止、クラス継承禁止程度にしかつかえないことに気付きがっかりしました。
もしくは私の知識不足かもしれません。
このように、Javaのinterfaceのような定数宣言を実装できる方法はないでしょうか?
もし知っている方がございましたらご教授願います。
0204nobodyさん
2005/07/16(土) 22:58:16ID:???PHPにも、
Javaでよく使われているO-Rマッピングツール Hibernate, Cayenne, Jakarta Torque
などといったもの、
データバインディングツール Castor, Relaxerといったもの
はございますでしょうか?
PHPで複雑なRDBMSやXMLを弄るとき、どうしても煩雑に
なりやすいのでできればこういうソースコード自動生成ツールを使いたいのものです。
0205nobodyさん
2005/07/16(土) 23:03:05ID:trCc1XOqさらに質問をさせて頂きます。
PHP5ではnamespaceが利用可能であるとどこかのサイトで知ったのですが
2chのあるスレをみると使えなくなったというレスを見つけました。
Facadeパターンなどのようなデザインパターン実装しにくく非常に残念です。
namespaceの概念が無いのでnamespac名.クラス名と指定していたものを
一つのクラス名にnamespace名_クラス名という長い名前にすることで
クラスの重複を避けるという手法があるみたいですが
これではクラス名が長すぎでかつamespace特有の利便性があるからこそ
実現しやすいデザインパターンも実現しにくくなっています。
PHP5では標準ではnamespaceを実現できないみたいですが、
他の方法、ツールやライブラリなどを使ってnamespaceを実現する方法はあるでしょうか?
0206nobodyさん
2005/07/16(土) 23:33:38ID:???0207nobodyさん
2005/07/16(土) 23:50:26ID:trCc1XOqそうしたいのですが仕事上どうしてもPHPを使わないといけないのです。
ミッションクリティカルも少ない単純なアプリケーションですので。
プロジェクトマネージャの判断でPHP5を使うことになりました。
0208nobodyさん
2005/07/17(日) 00:04:49ID:???0209nobodyさん
2005/07/17(日) 00:17:03ID:B/lkcUpB「?????????????????」と文字化けしてしまった。
同じサーバ上のphpMyAdminだとちゃんと表示される。
$query = 'select * from table';
$result = mysql_query($query);
while($row = mysql_fetch_array($result){
print_r($row);
}
なにか特別なことって必要でしたっけ?
0210nobodyさん
2005/07/17(日) 00:32:04ID:???昔ながらのこんなテクニックもある。
function a(){
return array($a,$b,$c,$d);
}
list($a,$b,$c,$d) = a();
0211nobodyさん
2005/07/17(日) 01:35:35ID:???自分で書いたコードの方にはMySQLにコネクション張った後に、
「接続クライアントの文字コードはUTF-8だよ」って
MySQLサーバに送ってないから、デフォルトのlatinだって
思われてるんで、latinで表現できないのが?になってるんでね?
0212nobodyさん
2005/07/17(日) 04:38:53ID:???includeするとファイルの内容全てが読み込まれるから、関数にする、しないは
関係ない。
includeファイルの中で関数にしなかった部分はincludeされた時点で実行される。
関数にした場合はその関数を呼び出した段階で実行される。
そもそも関数そのものが理解できてないんぢゃないかと思われ。
0213nobodyさん
2005/07/17(日) 06:53:32ID:???1週間前にPHPをインストールして始めた初心者なので、お許し下さい。
$a = "あああ";
echo $a;
この"あああ"の部分ですが、ダブルクォーテーションがなくても
表示されるのですが、なくてもいいんでしょうか?
どういう条件で""で囲むのでしょうか。
数字はつけない、文字列はつける、変数には付けない でやっているのですが
このままでいいのでしょうか?
0214nobodyさん
2005/07/17(日) 07:09:58ID:???ってこと?
その場合、「あああ」の部分はPHPのパーサが未定義の定数とみなして、"あああ"に再解釈する。
危ないので文字列にはきちんとクォーテーション(ダブルorシングル)つけるべし。
とりあえずマニュアルじっくり読んでガンガレ
http://www.php.net/manual/ja/
0215nobodyさん
2005/07/17(日) 07:46:41ID:???あのマニュアルの中から探すのはチト困難かも。
この辺りを参照汁。
http://www.php.net/manual/ja/language.constants.php
ついでに " で囲った場合と ' で囲った場合の動作の違いも理解汁。
http://www.php.net/manual/ja/language.types.string.php
0216nobodyさん
2005/07/17(日) 09:11:30ID:???セッションが切れてしまいます。
どうやったらセッションを切らずにできますでしょうか。
0217nobodyさん
2005/07/17(日) 12:46:10ID:???メモリやパフォーマンスの都合上、
データを定期的に渡すだけの
簡単なものにはJavaを使いたくないそうです。
本当に簡単なプログラムなんですよ。
そのかわりXMLデータとRDBMSのテーブルの数が
多すぎですが。橋渡しをするだけです。
0218nobodyさん
2005/07/17(日) 14:07:36ID:???下記(入門本そのままのやり方)のようにエスケープ文字の除去・タグ無効化・カナ変換を行っているのですが、
$comments = htmlspecialchars(stripcslashes($comments));
$comments = mb_convert_kana($comments, "KV", "SJIS");
改行のみ維持させたいのでぐぐってみたところ http://php.s3.to/tt/tt5.php の「複数行の入力」という記事が見つかり、
要はタグを無効にした後で、 改行コードを<BR>に変換するというやり方であると理解したのですが、
$comments = htmlspecialchars($comments);
$comments = str_replace("\r\n","\r",$comments);
$comments = str_replace("\r","\n",$comments);
$comments = str_replace("\n","<BR>",$comments);
$comments = stripcslashes($comments);
でいいのでしょうか?
「Shift-JISの場合バッククォートを除去」とかstripslashesとstripcslashesの違いがよく分かりません。
また、このURLにある参考ソースを見ると上記のstripcslashes()を行っていないようなのですが必要ないのでしょうか?
文字コードに関しては「データの文字コードと見る際(ブラウザ)の文字コードが一致してないと化ける」くらいの認識しかありません。
どなたかアドバイスよろしくお願いします。
0219nobodyさん
2005/07/17(日) 18:49:47ID:5K+3/9Xz0220nobodyさん
2005/07/17(日) 20:26:12ID:???ありがとうございます。なるほど、PHPで再解釈してくれてるだけなんですね。
>>215
助かります。このマニュアルは、辞書的な使い方がいいのでしょうか。
恥ずかしながら、今のスキルでは理解するまでかなり時間が掛かってしまいます。
購入した本を元に勉強しているのですが、初心者向けに解説しているPHPサイトで
定番的なところとかあるのでしょうか?お勧めがあればどなたか教えてください。
0221nobodyさん
2005/07/17(日) 21:11:28ID:???0222nobodyさん
2005/07/18(月) 00:14:57ID:tJQ/fctAある文字列中の特定の文字がマルチバイトかどうかを判定するにはどうすればいいでしょうか?
具体的には、
abcdefgあいうえお0123456789
という文字列があった場合に、10バイト目がマルチバイトかどうかを判定したいです。
substrを使って切り取る場合に文字化けして困ってます。
全角を1文字としてカウントするmb_substrでは都合が悪いです。
よろしくお願いします。
0223nobodyさん
2005/07/18(月) 00:34:05ID:???ありがとうございます。マンモスのやつでしょうか?
やはり、あれは良いのですね。
pdfだと見辛いので書籍購入してしまいました。
0225nobodyさん
2005/07/18(月) 02:00:26ID:tJQ/fctAありがとうございます。
mb_strcutも一度試したのですが、使い方が間違っていたようです。
おかげさまでばっちり動作しました。
感謝感激です。
0226nobodyさん
2005/07/18(月) 02:29:09ID:???この後 unset($a); で、$bも空になるような、シンボリックリンクの様に扱うことは出来るでしょうか?
0228nobodyさん
2005/07/18(月) 10:10:47ID:???0230nobodyさん
2005/07/18(月) 10:40:28ID:???ttp://jp.php.net/manual/ja/language.references.php
マニュアルにも萌えてください。
0231nobodyさん
2005/07/18(月) 13:02:11ID:8pn6XAVHecho mb_strlen($a);
13が結果として出るのですが、マルチバイト文字を1として数えされるにはどうすればよいでしょうか?
0232231
2005/07/18(月) 13:06:37ID:???■ このスレッドは過去ログ倉庫に格納されています