【PHP】下らねぇ質問はここに書き込みやがれpart16
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/05(日) 22:35:34ID:sf8bx52Dここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
過去スレは>>2
0175nobodyさん
2006/02/08(水) 23:41:03ID:???現在ある掲示板を、携帯絵文字対応にしようと思っております。
既存の掲示板では携帯から絵文字を投稿すると
<img src="img/i/F8C7.gif" width="12" height="12" border="0">
と変換されているのですが、これを携帯から見た時に
?
と変換したいのです。
このような変換を行う場合はどのようにしたらよろしいでしょうか?
よろしくお願いいたします。
0176175
2006/02/08(水) 23:41:43ID:???です。文字化けしてしまいました・・。
0178nobodyさん
2006/02/09(木) 00:06:23ID:MhSFpTrNhttp://c-others.2ch.net/test/-/php/1139146534/w ←こんな感じで書き込めるようにするにはどうしたらよいでしょうか
hiddenの値とかは何とかなると思いますが、ソケットプログラミングが全くわかんないので、できたら実際に書き込みできるスクリプトを見せていただきたいのですが・・・
よろしくお願いします。
0179nobodyさん
2006/02/09(木) 00:12:01ID:???すでに「p2」というPHP製の非常に優れたGATEWAYプログラムが存在してますので、
まずはそちらの中身を解析してみて、それ以上のものを作って公開してくださいね。
0181179
2006/02/09(木) 00:21:24ID:???>>178で参考になるスクリプトが見たいといってるから、
存在するオープンソースで一番目的に近いものを紹介して
なんで、「死ね」とか言われなきゃならんのだ・・・凹むぞ
0182nobodyさん
2006/02/09(木) 00:37:21ID:???0183nobodyさん
2006/02/09(木) 01:00:28ID:???0184nobodyさん
2006/02/09(木) 01:21:00ID:???0185150
NGNGありがとうございます。
そして遅レスですみません。
>>171
Apache側の設定のこと完全に忘れてましたw
それでApache方面でググった今の自分にぴったりな(?)文章を見つけました。
http://multix.jp/html/memo/030521.html#00010201
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LimitRequestBody
クライアントから送信されてくる POSTや PUTデータを受け入れる
最大値を指定します。初期値は 0(無制限)で、バイト単位で
2147483647(2GB)までを指定できます。これを使えば CGIで
ファイルアップローダを運用するような場合、CGIプロセスが
起動する前に巨大すぎるデータの受け入れを容易く拒否することができます
(CGIプロセスに渡ってからではほとんどの場合、手遅れ)。
それ以外でもバッファオーバーフローやサーバクラッシュ目的での
DoS攻撃を回避するのに有効ですから、サーバ管理者は必ず再設定しておくべきです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
>>172
upload_max_filesize以上post_max_size未満のサイズなら
$_FILES['userfile']['error']でちゃんとエラーを拾えるんですが
post_max_sizeを超えてしまうと拾えなくなってしまいます。
というか何もPOSTされなかったかのような反応になります。
しかも送信してる間にハードディスクがガリガリいってるぽいので
どうも>>171のとおりPOSTされたデータをApache側で
全部受け取ってるのかもしれません。
うーんでもApache側で一旦受け取るんだったら
upload_max_filesizeとupload_max_filesizeの意味無いような気がするし。。。
もうわけわかめ。
0186nobodyさん
NGNGそれにphpのテンポラリディレクトリは
ウェブディレクトリの外側なので
LimitRequestBodyで設定できませんでした。
0187nobodyさん
2006/02/09(木) 02:07:21ID:???鯖のリソース余ってるやつちょっと来い@自宅サーバ
http://pc8.2ch.net/test/read.cgi/mysv/1137564375/l50
0188150
NGNG>というか何もPOSTされなかったかのような反応になります。
良く調べたらこれはMAX_FILE_SIZEに引っかかっただけでしたorz
MAX_FILE_SIZEを100000000000000000000にして
やってみたらエラーを拾えるようになりました。
いろいろやってみた結果、
結局サーバー側は upload_max_filesize 以上受け取っていない
ということかもしれません。
ご迷惑をおかけてすみませんでした。
0189nobodyさん
NGNG0190nobodyさん
2006/02/09(木) 03:40:24ID:???0192nobodyさん
NGNG0194nobodyさん
2006/02/09(木) 07:55:13ID:???(my) $hoge = 1;
(my) $hige = 2;
// hogeにhigeを加える
$hage = $hoge + $hige; //hogeをhageに間違える
print $hoge;
0196nobodyさん
2006/02/09(木) 09:01:55ID:???str_replace("\n", "<br>", stripslashes($textarea))
としているのですが、テキストエリアにタグを入れた場合、改行が入っていると
<br>が入ってしまいます(当然ですが)
例)
<table>
<tr>
<td>テキスト </td>
</tr>
</table>
これを改行無しに記述すれば問題はないのですが、ホームページ作成ソフトなどから
直接タグをコピペする時もあります。
どうすれば整形済みのタグを入れても<br>だらけにならないように出来るのでしょうか?
説明が下手ですが、何かアドバイスをいただければと思います。
0198196
2006/02/09(木) 09:29:55ID:???それが、普通のテキスト文字の場合は改行した時、<br>に変換が必要なんです。
ブログの記事書き込み部分のようなイメージです。
ブログ(MTなど)でも記事フォームにタグを入れている場合は、改行せずに
入れているような気がしないでもないですが、もし何か良い方法があれば、ご教授願います。
0199nobodyさん
2006/02/09(木) 09:49:35ID:???HTMLでの記事書き込みとテキストでの記事書き込みとをモード切替してるとこはある。
同一のものとして扱うのであれば、タグの開始と終了<hoge></hoge>を判別して、
その間だけ<br>変換やめるとか。
同じ名前のタグをネストされた時の対処が必要だしちょっと面倒かもしれんが…
XMLパーサとか使ってみるのもテではないでしょうか?
0200nobodyさん
2006/02/09(木) 09:51:04ID:???0201196
2006/02/09(木) 10:12:05ID:???なるほど。やっぱり、入力フォームを分けるという対処しかありませんよね。。
1つのテキストエリア上で出来たら、便利だと思っていたのですが、
入力する側が手間になるといけませんので、断念します。
アドバイスありがとうございました。
0202149
2006/02/09(木) 10:17:13ID:g3a/RWdO0203nobodyさん
2006/02/09(木) 10:24:38ID:???これってなにか問題ありますか?
0204nobodyさん
2006/02/09(木) 10:25:48ID:???ttp://hrgs.itbdns.com/diary/item/24
ていうか少しは自分で調べる事を知れ。
ttp://www.google.co.jp/search?hl=ja&q=PEAR+%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89&lr=
思いっきり一番上に出てきたぞwww
0206nobodyさん
2006/02/09(木) 10:48:04ID:???includeもしてないです。
a.phpにb.phpで作ってる関数と同じ名前の関数を作ったらエラーになったので
試しにa.phpの関数を消して呼び出しだけを行ったら普通にb.phpの関数が呼ばれてたので
0207nobodyさん
2006/02/09(木) 10:52:33ID:???include山ほどしとりますた・・
a.php内で
<?php〜?>外に
<!--〜-->ってコメントにしてたんですが、これって
<?php〜?>外なのに生きてるんですね
0208nobodyさん
2006/02/09(木) 10:55:31ID:???でも
やっぱコメント扱いっぽいけど、インクルードはされてるみたいだなあ
<!--<?php include("b.php"); ?>-->
これって、b.phpは実際には呼ばないけど内部関数の定義はされるんですか?
0209nobodyさん
2006/02/09(木) 10:59:21ID:???つ http://www.php.net/manual/ja/language.basic-syntax.comments.php
0210nobodyさん
2006/02/09(木) 11:05:06ID:???え?あれ?
いや、コメントになってるっぽくて確かにb.phpは呼ばれてはいないのに
b.phpの関数が呼べるのが疑問なんですよ、俺変なこと言ってます?
0211nobodyさん
2006/02/09(木) 11:08:43ID:???こういうのはロジック以前にルール作りをどうするかだと思うんだけど、
例えば「各行の末尾が">"で終わっていなければテキストの改行とみなして<br>を入れる」とかじゃダメ?
$test = <<<TEXT
<table>
<tr>
<td>テキスト </td>
<td>テキ
スト </td>
</tr>
</table>
TEXT;
foreach(explode("\n", $text) as $line) {
$newtext .= $line . ((substr($line, -1) != '>')? '<br>': '') . "\n";
}
結果
<table>
<tr>
<td>テキスト </td>
<td>テキ<br>
スト </td>
</tr>
</table>
0212149
2006/02/09(木) 11:08:45ID:g3a/RWdOありがとう!
家に来て俺の妹とファックしていいよ。
0214nobodyさん
2006/02/09(木) 11:11:35ID:???フレームを解除させて飛ばす場合はどのようにすればいいのでしょうか?
0215nobodyさん
2006/02/09(木) 11:12:36ID:???>208の書き方では、HTMLではコメントとされても、PHPとしては実行される。
ただ、b.php内でechoしてると、<!-- hogehoge -->となるので、ブラウザ上では表示されない。
HTMLソース見れば、b.phpが読み込まれた上に実行されていると思うが。
0216nobodyさん
2006/02/09(木) 11:13:31ID:???いやそれはわかってるんですが、実行されてる様子がないんですよ。
b.phpで適当な文字をechoしてるのですが、
<!-- -->でくくってると、文字が出なくて<!-- -->を取ると文字が出ます。
ひょっとすると俺の根本から間違ってますか?
0217nobodyさん
2006/02/09(木) 11:15:16ID:???出力されたHTMLソース見れ。
<!-- 適当な文字 --> って出力されてて、PHPは実行されてるがブラウザから見れなくなってるから。
0218nobodyさん
2006/02/09(木) 11:15:26ID:???嗚呼、わかりますた。
どうやら俺の根本が間違ってました。
確かにソースをみると、実行されてますねこれ・・
コメントになってるんでブラウザには表示されてないだけか・・・
0220nobodyさん
2006/02/09(木) 11:16:56ID:???PHPの呼び出し元HTMLでtargetを指定してやるか、Locationで飛ばした先のHTMLを
target解除してさらに別ページに飛ばすJavaScriptのページにして連続遷移。
0221nobodyさん
2006/02/09(木) 11:16:57ID:???ちょっと前にも同じ質問があったぞ…
フレームはHTMLの仕様であり、PHPから直接いじることは無理。
どうしてもやりたければ、PHPのheaderで飛ばすのではなく、
PHPでJavaScriptを生成してwindowオブジェクトを操作すべし。
0222nobodyさん
2006/02/09(木) 11:20:30ID:???サーバー側の処理を考えればそんな所にはいきつかん。
<!-- ここに書かれた文字列 -->を表示しないと言うのはブラウザ側の機能。
サーバー側はあくまで取得してきたファイルを処理し、整形されたHTMLをクライアントへ投げるだけだ。
0223nobodyさん
2006/02/09(木) 11:22:06ID:???例えば、a.phpからb.phpの自作関数を呼ぶ場合って
b.phpでは関数のみを作成し本体には何も書かないのがいいんですか?
0224nobodyさん
2006/02/09(木) 11:24:27ID:???本体って何を指してんだよw
ていうか、関数郡、実際稼動ファイルと分けておいた方が後で自分でも見やすいだろ?
お前次第だよそれはw
0226nobodyさん
2006/02/09(木) 11:32:10ID:???言ってる意味が分からんがな。
本体=a.php 、 関数のみ=b.php という意味なら、
>>224が言うように見やすくなり管理し易くなる。
その関数を他のファイルで使いたい場合も、b.phpをincludeするだけでよくなる。
0227nobodyさん
2006/02/09(木) 11:37:17ID:???そそ、それそれ、ってやっぱ自分次第なんですよね。
>>226
ですね、<?phpでかこめば関数を作らなくても記述できる点がCとは異なるので
ちょっとアレだったんですよ
0229nobodyさん
2006/02/09(木) 11:55:47ID:???Cと異なるってのはどういうこと?
メイン関数を作らなくてもいいってこと?
関数呼び出しに関してはいたってCと同じ構造だと思うぞ。
0230nobodyさん
2006/02/09(木) 11:56:23ID:???extract($_GET);
extract($_POST);
extract($_COOKIE);
extract($_SERVER);
っていうのがあるんですが、これはどういう意味があるんですか?
0231nobodyさん
2006/02/09(木) 11:58:19ID:???ttp://php.s3.to/man/function.extract.html
ttp://php.s3.to/man/language.variables.predefined.html
0235nobodyさん
2006/02/09(木) 12:11:02ID:???ちゃんとサニタイズしてね。
0237nobodyさん
2006/02/09(木) 14:01:39ID:???0238nobodyさん
2006/02/09(木) 14:54:57ID:???いやCは必ず関数が存在するけどphpて関数いらんっしょ
例えば、
<?php
なんか
この部分とか
function aa( )
{
}
?>
0240nobodyさん
2006/02/09(木) 15:09:41ID:???<?php
include ("b.php");
func();
?>
----b.php----
<?php
echo "test message";
function func() { echo "hello world.\n"; }
?>
----終了----
Cなら echo "test message";はエラー返される、とか
言い方が分からないけど、グローバルな部分で関数を呼び出したりifやwhileが使えないって事かな。
0242229
2006/02/09(木) 15:25:09ID:???インクルードするだけって点ではCと同じじゃないかと書いたのですが、
どうやら私の方が227の文面を読み違えていたようでしつれしました。
0244nobodyさん
2006/02/09(木) 15:56:49ID:eu00qYyittp://www.xxxx.com/zzz/hello.php
のアドレスに
ttp://www.xxxx.com/zzz/hello
だけで行くのは出来ますか?
お願いします。
0246nobodyさん
2006/02/09(木) 16:05:12ID:???↑の文を
<form action="aaa.php" method="post">
<input type="hidden" name="name" value="write">
<textarea name="text" cols="20" rows="5" wrap="soft"></textarea>
<input type="sub" value="送信">
</form>
↑で送信して
if ($_POST['name']=='write'){
print $_POST['text'];
}
↑みたいな感じでで受け取ると、
<a href= \'http://www.yahoo.co.jp/\'>Yahoo!</a>
↑みたいに変化してしまいます。回避策あったら教えてください。
0247nobodyさん
2006/02/09(木) 16:14:13ID:???単にPHPの場合は各ファイルにmain()関数を置けるってだけだな。
Cとの最大の違いは「main()関数の中身を複数ファイルにバラバラに配置できる」ってとこか。
0250nobodyさん
2006/02/09(木) 16:58:06ID:???Apacheのコンテントネゴシエーションが有効ならそのまま拡張子無しでアクセスできるかも
あとはmod_rewriteを使う
どっちにしてもPHP関係ねー
0253nobodyさん
2006/02/09(木) 18:12:07ID:???cronも使わないで決まった時間に…なんて出来るのですか?
0254nobodyさん
2006/02/09(木) 18:22:31ID:???表示する時に指定の時間を過ぎてたら、指定時間に投稿したような記事を書き込めばいいんじゃないかな?
0255nobodyさん
2006/02/09(木) 18:52:25ID:???$sort_dir = ソート方向
$sort_type = 比較方法
$list = 処理対象フールド
こんな風な変数を作っておいてから
array_multisort($sort_key, $sort_dir, $sort_type, $list);
って具合に引数に変数で渡すと、
Warning: array_multisort(): Argument #2 is expected to be an array or a sort flag in〜
または Argument #3〜ってエラーになります。
$sort_dirのとこは
SORT_ASC(昇順にソート)
SORT_DESC(降順にソート)
$sort_typeのとこは
SORT_REGULAR(普通に比較)
SORT_NUMERIC(数値的に比較)
SORT_STRING(文字列として比較)
などのフラグの文字列そのものを直接、引数のとこに書き込まないとダメなんでしょうか?
フラグの文字列(SORT_DESCとかSORT_NUMERIC)を直接入れるとうまくいきます。
なにかウマい方法がありましたら教えてください。
0256nobodyさん
2006/02/09(木) 18:55:51ID:???0257nobodyさん
2006/02/09(木) 19:02:45ID:9NTQCcyh>>200を参考にして
nl2br(htmlspecialchars($_POST['textarea']))
0259nobodyさん
2006/02/09(木) 19:26:56ID:???dump?ちょっと調べてみます
>>258
もちろん、それでもよい訳ですが、関数に与える引数に変数が使えなかったというのが初めての経験なので、とりあえず、なんとかしちゃう方法というのも後学の為に知っておきたいと思った次第です。
0260nobodyさん
2006/02/09(木) 20:31:57ID:???$sort_dir = SORT_ASC;
$sort_type = SORT_REGULAR;
と、書けばいいのではないでしょうか?
直接引数のとこに書く必要はないでしょう。
# 意味取り違えてたらスマン
0261nobodyさん
2006/02/09(木) 21:18:52ID:???きっと>>260が言うように
$sort_dir = 'SORT_ASC';
$sort_type = 'SORT_REGULAR';
って ' や " でくくってないか?
0262nobodyさん
2006/02/09(木) 21:31:40ID:???問題なく変数経由でパラメータは渡せる。
$sort_dirに格納してるフラグdefineの綴りでも間違ってるんじゃない?
存在しないdefineを渡すとPHPはそのまんまその文字列を格納して、提示されたエラーメッセージが出る。
0263178
2006/02/09(木) 21:51:59ID:???初心者しかいないようなら去りますw
0264nobodyさん
2006/02/09(木) 21:53:25ID:???0265nobodyさん
2006/02/09(木) 21:54:24ID:MhSFpTrN0268259
2006/02/09(木) 23:36:21ID:???これは定数なんではないかとはうすうす考え始めていたんですが。
なるほど。確かに文字列じゃなくて、これは定数を変数に入れて、引数として渡すってことだったんですね。
0271nobodyさん
2006/02/10(金) 01:52:50ID:???/etc/apache2/modules/にlibphp4.soが見つかりません。
コンパイルの仕方がおかしいのでしょうか?オプションもマニュアル
どおりに指定したのですが・・・
超初心者の質問ですみません。
0273nobodyさん
2006/02/10(金) 03:05:49ID:???それを指定する場所に置くなり、シンボリックリンク貼ってあげれば。
0274271
2006/02/10(金) 07:18:50ID:???http://nx.eth.jp/hiki.cgi?PHP-i18n-Compile
に書いてあることにしたがって、
--enable-zend-multibyte --enable-mbstring --enable-mbstr-enc-trans
を指定しました。
>273
仕事に出かけますので、帰宅したら探してみます。
■ このスレッドは過去ログ倉庫に格納されています