トップページphp
1001コメント288KB

【PHP】下らねぇ質問はここに書き込みやがれ 47

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2007/05/26(土) 21:03:53ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0838nobodyさん2007/06/23(土) 00:56:03ID:???
where句の場合は無理じゃなかたけ
08397892007/06/23(土) 02:11:32ID:2hjTlCBK
>>795
遅くなりましたけどレスありがとうございます。

シェルスクリプトのがイマイチ良くわかってないので
もっと、いや、せめてもうちょっと^^;
勉強します。

ざっと見た感じ 受信したメールをテキストに保存してるみたいですね。(違ったらすいません)

dot-qmail(特定のメールを受信したときにスクリプトを起動したり、転送したりできる機能)
で、メールをユーザーdirに保存後、phpを起動してそのファイルを読みに行くって言うのも考えたのですが
タイムラグで、メールをPHPが読めないなんてコトがあるのかどうか心配です。

それがあり得ないのであれば、この方法が一番良いかな、と思ってます。

もしその方法が信頼性が低いならphpに一行ずつメールを渡して、それをテキストに保存(又はシェルスクリプトで保存)。
>phpで解析が良いのかな。
標準入力を改行も含めて一気に渡すコトってできませんよね?
まあ、とにかくシェルスクリプトの問題っぽいですね。

しかし、WEBでもちょっとしたシステムを作るって言うのは、本当に多岐にわたった知識が必要ですよね。
大きくて技術力のある人が多い会社は、無用な労力なんだろうか?
うちでは質問できるのは、君たちだけだよ・・・いつもすんませんね。
0840nobodyさん2007/06/23(土) 02:52:08ID:???
>>827-828
やべーw俺もだ
0841nobodyさん2007/06/23(土) 03:07:26ID:???
>>839
>811が見えないのか?
0842nobodyさん2007/06/23(土) 04:05:37ID:???
>>841
見えてて書いてる理由もわからないのか?
あんたバカとちゃうん?
0843nobodyさん2007/06/23(土) 04:15:12ID:???
標準入力が何なのかわからないんだとおも
0844nobodyさん2007/06/23(土) 06:20:47ID:M3Ri6nNm
$arry=fgetcsv($file,1000,",")
$dcsv[] = $arry;

のとき$dcsvの配列はどうやって参照すればいいですか?
0845nobodyさん2007/06/23(土) 07:18:45ID:???
>>844
エスパー的な回答

while(!feof($file)){
$arry=fgetcsv($file,1000,",");
$dcsv[]=$arry;
}
とすればきっとあなたの思い通りになるのではないでしょうか。
ただし$fileはファイルポインタですよ。
0846nobodyさん2007/06/23(土) 08:07:44ID:???
>>839
上記の場合は、
マルチドメイン(virtualメールアドレス)でどうしても運用したかったため、postfixの絡みもあってあんな風になってます。

んで、マルチドメインが必要ないならば素直な方法(先にこっち書けよ・・すまん)として以下のような
オーソドックスなやり方があります。 (受付専用ユーザhogeを作る必要有り)

1) /etc/alias 内に hoge: "|/usr/local/bin/fuga.php を書く
2) newaliases を実行して1)を有効に んで、hogeユーザへのメールは、fuga.phpに渡る。

fuga.php内で、
$fp = fopen("php://stdin", "r");
while (!feof($fp)) {
$buf = fgets($fp,256);
$all .= $buf;
}
fclose($fp); で、ストリームを読み込む んで、あとはパースする
$arr = explode("\n", $all);
$boundary = "";
$msg_id = "";
foreach ($arr as $line) {
$line = trim($line);// boundary 取得
if(!$boundary){
if (preg_match('/boundary="(.*?)"/i', $line, $match)) { $boundary = $match[1]; }
}
if (!$msg_id){// message-id 取得
if (preg_match('/Message-Id: <(.*?)>/i', $line, $match)) { $msg_id = $match[1]; }
}
if ($boundary && $msg_id) break;
}
みたいな感じ、$arrをグルグルやって読み込む。 同じ要領で、いけるんじゃないか?
0847nobodyさん2007/06/23(土) 08:22:31ID:???
>>846
/etc/alias は
hoge: "|/usr/local/bin/fuga.php" だクォート抜けてた
0848nobodyさん2007/06/23(土) 12:08:34ID:cbRsCM6u
aaa.incファイルをbbb.phpファイルで呼び出す(インクルード)方法と
aaa.phpファイルをbbb.phpファイルで呼び出す方法

どう違うんですか?
0849nobodyさん2007/06/23(土) 12:15:06ID:M3Ri6nNm
>>845神がかった回答ありがとうございました。
//ソート関数の定義
function cmp($a, $b){
return strcmp($a[7], $b[7]);//バイナリでも使える文字列比較
}
usort($dcsv, "cmp");
usortで上の関数を呼び出すと文字列比較になってしまうのですが数字比較を
するには何の関数を使えば良いでしょうか?
たびたびくだらない質問をして申し訳ございませんがよろしくお願いします。
0850nobodyさん2007/06/23(土) 12:19:12ID:???
>>849
usortのマニュアルくらい見れ
0851nobodyさん2007/06/23(土) 12:25:25ID:C481f9GD
<?php
$url = 'http://www.example.com';
print_r(get_headers($url));
?>

にタイムアウトを設定したいのですが
具体的にどこに何を書けばいいのかわかりません
くだらない質問をして申し訳ないですがご教授お願いいたします
0852nobodyさん2007/06/23(土) 12:37:46ID:???
>>851
ソースの上の方に↓の一行を追加すればOK

ini_set('default_socket_timeout', 10);
0853nobodyさん2007/06/23(土) 12:45:29ID:???
>>852
本当にありがとうございます、助かりました。
08548492007/06/23(土) 12:56:38ID:M3Ri6nNm
//ソート関数の定義
function cmp($a, $b){
if ($a == $b) return 0;
return ($a[7] > $b[7]) ? -1 : 1;
}
頑張ってソートの中身を変えて見ましたが出力結果は
497
391
10711
となってしまいます orz
0855nobodyさん2007/06/23(土) 14:46:10ID:C481f9GD
度々すみません

<?php
ini_set('default_socket_timeout', 10);
$url = 'http://www.example.com';
print_r(get_headers($url));
?>

に関してなのですが、ユーザーエージェントを特定のものにして
情報を受け取る方法を探していたのですが見つかりません

ユーザーエージェントを指定するにはこの場合
具体的にどこに何を書けばいいのかわかりません
度々質問をしてすみません、ご教授お願いいたします
0856nobodyさん2007/06/23(土) 14:51:23ID:???
>>855
ini_set("user_agent","xxxxx");
0857nobodyさん2007/06/23(土) 14:53:25ID:???
>>856
本当にすみません、ありがとうございます
08588392007/06/23(土) 16:52:33ID:2hjTlCBK
>>846
いや、まじ助かります。ありがとう〜

キモはphp://stdinでした。
知りませんでした。
0859nobodyさん2007/06/23(土) 17:47:47ID:???
>>303
動いてしまいました^^;
return;を関数を定義してる方に入れたのですが間違ってますか?
0860nobodyさん2007/06/23(土) 18:47:34ID:???
842 = 858?
気になってしまた
08618342007/06/23(土) 19:24:15ID:???
>>837
>>838
レス遅くなってすみません。
プレスフォルダに入れる値の配列を配列ごと何の考えも無しに文字コード変換してんですが、どうもその際にnullが空文字に変換されてinteger型のカラム等で弾かれてた見たいです。
お手数おかけしました。。
0862nobodyさん2007/06/23(土) 20:23:13ID:???
ファイル操作でテキストファイルに先頭から追記していきたいんだけどどうすればいいかな
0863nobodyさん2007/06/23(土) 20:36:08ID:???
>>862
よく分からないんだけど、ファイル名を追記するってこと?ファイルの中身を追記するってこと?
0864nobodyさん2007/06/23(土) 20:46:15ID:???
>>862
$fp=fopen($filename,"a");
でファイルポインタはファイルの終端に来るので、
そっからfwrite($fp,$str);
0865nobodyさん2007/06/23(土) 20:54:39ID:???
それ終端から追記じゃね?
0866nobodyさん2007/06/23(土) 21:05:55ID:???
>>863
中身

aaa

bbb
aaa

ccc
bbb
aaa

こういうふうににしたいんだけど・・・わかりにくくてすいません
0867nobodyさん2007/06/23(土) 21:10:16ID:???
>>864
終端から追記じゃなくて先頭から追記です。すいません
0868nobodyさん2007/06/23(土) 21:10:18ID:???
$str = file_get_contents("hoge.txt");
$buf = "bbb\n";
$buf .= $str;

$fp = fopen("hoge.txt", "w");
 fwrite($fp, "buf\n");
fclose($fp);

行数が決まってるならfileとかで読み込んでループでいいんじゃないかな
08698682007/06/23(土) 21:11:38ID:???
訂正

$str = file_get_contents("hoge.txt");
$buf = "bbb\n";
$buf .= $str;

$fp = fopen("hoge.txt", "w");
 fwrite($fp, $buf);
fclose($fp);
0870nobodyさん2007/06/23(土) 21:16:10ID:???
>>868
一度ファイルの中身を全部取り出しちゃうんですね。
それでいけそうです。ありがとうございました
0871nobodyさん2007/06/23(土) 23:08:52ID:???
フォームでフリガナの入力欄作ったんだけど
これの入力値がフリガナだけか調べるうまい方法おしえて
文字オードはUTF-8です
0872nobodyさん2007/06/24(日) 00:03:34ID:???
JAVAのスレで効いても、全然解答が無かったので、
こちらで効かせてもらいます。
0873nobodyさん2007/06/24(日) 02:44:08ID:???
/^(\xe3(\x82|\x83)[\x80-\xbf])*$/
08748712007/06/24(日) 06:41:14ID:???
すみません間違いました。
文字コードEUC-JPでお願いします。
0875nobodyさん2007/06/24(日) 07:28:41ID:???
シネ
0876nobodyさん2007/06/24(日) 11:51:09ID:???
テキストファイルに追記していった文字列が10行を超えたら5行以下を削除するってできないかな
0877nobodyさん2007/06/24(日) 11:57:42ID:???
できるんじゃね?
0878nobodyさん2007/06/24(日) 11:59:37ID:???
できるよ
0879nobodyさん2007/06/24(日) 12:58:34ID:???
どうやるんだろ
0880nobodyさん2007/06/24(日) 13:13:55ID:???
こうやるんだよ
0881nobodyさん2007/06/24(日) 13:19:36ID:???
何でもかんでも人に聞くな!


俺がそれできるようになるまで何日かかったと思ってるんだ!知らんと思うけど!!
0882nobodyさん2007/06/24(日) 13:57:05ID:RCivN73v
>>881の気持ちは判る
0883nobodyさん2007/06/24(日) 14:00:43ID:???
いつも楽しく拝見させて頂いております南場弘子です。
大変勉強になることばかりで、私の生活の糧になっています。
ところで、このスレはどうしてこんなにキモイ変態ばかりが群がっているのでしょうか?
0884nobodyさん2007/06/24(日) 14:01:08ID:???
文字列を扱うのは面倒くさい
0885nobodyさん2007/06/24(日) 14:58:47ID:???
>>884
なんで?文字列も整数も配列もオブジェクトも大して変わらんと思うが
0886nobodyさん2007/06/24(日) 16:59:44ID:j/kNbMoH

HTMLのTEXTAREA内にTEXTAREAのタグを読み込めないのですが、
どうすれば読み込めますかね?
0887nobodyさん2007/06/24(日) 17:59:21ID:???
何のために?
0888先ほど質問した者ですが2007/06/24(日) 18:08:38ID:j/kNbMoH
php内で
header省略
$body = file_get_contents("./index.html)
print <<<_EOT_
<form action="">
<textarea>
$body
</textarea>
</form>
_EOT_;
0889nobodyさん2007/06/24(日) 18:10:43ID:???
ごめん、何が言いたいのかがさっぱりわからん
0890nobodyさん2007/06/24(日) 18:11:31ID:???
>>88
phpじゃなくてhtmlの問題
08918902007/06/24(日) 18:12:13ID:???
×>>88→○>>888
0892nobodyさん2007/06/24(日) 18:17:29ID:???
>>888
それが何なんだよ。
0893nobodyさん2007/06/24(日) 18:34:49ID:RCivN73v
$body = htmlspecialchars(file_get_contents("./index.html));
0894先ほど質問した者ですが2007/06/24(日) 18:48:36ID:j/kNbMoH
>>893
なるほど、HTMLを実体参照にするのですね。
誠にありがとうございます。
では
0895nobodyさん2007/06/24(日) 18:55:33ID:???
>>894
他の人たちはスルーか死ね
0896nobodyさん2007/06/24(日) 19:23:44ID:???
>>895
あなたが死んでください。このクズ。
0897先ほど質問した者ですが2007/06/24(日) 19:25:21ID:j/kNbMoH
>>895
具体的な解を下さったのは>>893様です。
死ねなどという幼稚な発言はやめたらどうですか?
PHPどうたらの前に人間性ですよ。
0898nobodyさん2007/06/24(日) 19:29:19ID:???
>>897
貴方が幼稚な質問をしたから罵られているのですよ・・・
考えて見ても下さい、理由無く叩かれる質問なんて極僅かですよ
0899nobodyさん2007/06/24(日) 19:33:34ID:???
最近は言葉遣いだけ丁寧にすれば礼儀正しい人間になれると勘違いしている奴が多くて困る
0900nobodyさん2007/06/24(日) 19:43:07ID:j/kNbMoH
>>898
幼稚=下らない
ならば
スレタイ通りの質問をしたまでですが?
そんな事言われても困りますね。
>>899
あなたにとって丁寧な言葉遣い以外に何が必要か教えて下さい。
0901nobodyさん2007/06/24(日) 19:45:43ID:???
お前ら、そう言いつつもID:j/kNbMoHが可愛いおにゃのこだったら許せちゃうんだろ?
俺なら許す。
0902nobodyさん2007/06/24(日) 19:53:20ID:???
巨乳じゃなきゃいやだい
0903nobodyさん2007/06/24(日) 19:58:06ID:???
>>900
ヒント:ここはPHPの質問スレであって、HTMLの基礎について質問するスレではない
<textarea>の中にそのままページ丸ごと読み込みなんて、HTMLの基礎知識が有ればやらない

言葉使いが人格のメインだなんて思ってるのか?
君がやってるのは敬語を使いながら相手の靴に唾を吐きかけるような行為だよ
口先ばかりで行動が伴っていない
0904nobodyさん2007/06/24(日) 20:28:45ID:RCivN73v
新しき手法はいつの世も叩かれる
0905nobodyさん2007/06/24(日) 20:39:40ID:???
>>900
PHP初心者のお前のために解決方法を考えて労力と時間を費やしてくれた人がいるというのに
それに対して一言も謝辞がなく、具体的な解でなかったから価値がないように言い放つ奴は
どう考えても人間性が最悪な奴だと思うがどうかね?
0906nobodyさん2007/06/24(日) 20:45:16ID:???
>>905
人に死ね言い放つ奴はどうなんですか?
0907nobodyさん2007/06/24(日) 20:51:14ID:???
>>905 じゃあ、最初から何もしなければいいんじゃない?
誰かが任意で答えればいいだけだし。

答えたい奴が勝手に答える ってスタンスに変えればいいのに。
0908nobodyさん2007/06/24(日) 20:57:40ID:RborMjIR
おまえらめんどくせーな
0909nobodyさん2007/06/24(日) 21:04:10ID:???
>>906
死ねって言った奴以外はどうなんだよ
0910nobodyさん2007/06/24(日) 21:06:32ID:???
>>909 どうにもなりません。諦めて><
0911nobodyさん2007/06/24(日) 21:07:54ID:???
こうなったら、ここの住民だけで乱交パーティーでもやって何もかも忘れないか?
0912nobodyさん2007/06/24(日) 21:09:00ID:???
>>911 Good idea!!
0913nobodyさん2007/06/24(日) 21:12:06ID:???
男だけの乱交パーティーかよ
0914nobodyさん2007/06/24(日) 21:25:56ID:???
最近は男同士の方が流行りだぜ
0915nobodyさん2007/06/24(日) 21:26:36ID:???
これはひどい廃人窟ですね…
0916nobodyさん2007/06/24(日) 21:39:35ID:???
j/kNbMoHは質問者としても人間としても最低だ
反省すべし
0917nobodyさん2007/06/24(日) 21:41:25ID:???
死ねとか言われるようなことをしたのが悪い。

質問する上での最低限の態度・マナー・礼儀がそもそもなっていない。
すなわち質問する権利がない。
分かりやすく表現してあげるなら、身の程をわきまえろ、立場を考えろ、ということ。
もっと謙虚になろうな。>j/kNbMoH
0918nobodyさん2007/06/24(日) 22:02:42ID:???
>>917 むしろ、勝手に答えてくれるお前等こそ、何様のつもりなんだと問いたい。
0919nobodyさん2007/06/24(日) 22:16:55ID:???
自分ルール全開かよ
0920nobodyさん2007/06/24(日) 22:54:51ID:???
>>917
死ね

これでお前も悪いね^^
0921nobodyさん2007/06/24(日) 22:59:21ID:???
押し売り業者みたいな回答者がいてやだねぇw
そういうやつに限って使えない
0922nobodyさん2007/06/24(日) 23:04:24ID:???
     ____
   /      \
  /  ─    ─\
/    (●)  (●) \
|       (__人__)    |
/     ∩ノ ⊃  /
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
0923nobodyさん2007/06/24(日) 23:15:25ID:???
ヒアドキュメント内にHTMLズラズラ書くなら
perlでやれよと思う今日このごろ
0924nobodyさん2007/06/24(日) 23:16:03ID:???
date("Y年n月j日@B",$_SERVER['REQUEST_TIME'])
とやると日付とBeat表示が一致しなくなります。
date("Y年n月j日", $_SERVER['REQUEST_TIME']-8*60*60).date("@B",$_SERVER['REQUEST_TIME'])
などとすることになりますが、
こういうものなんでしょうか?

また、こういうものだとすれば、なんで
こんな仕様になってるのか教えてください。
0925nobodyさん2007/06/24(日) 23:26:02ID:???
>>924
・サーバーの時計がおかしい(これだとBeadがズレるのでないと思うが)
・タイムゾーンの設定
んなとこじゃね
0926nobodyさん2007/06/24(日) 23:26:51ID:???
>>924
何をどうしたいのか教えてくれ
0927nobodyさん2007/06/24(日) 23:31:09ID:???
>>871 >>874
もうわかったから、落ち着け。

$str="コレハイーユーシー";
if($str){
if(preg_match('/[\x00-\x8E]/', $str)){
echo "全角カナ以外が混じってる NG";
}else{
echo "全角カナ文字だけ OK";
}
}else{
echo "空白";
}
0928nobodyさん2007/06/24(日) 23:36:59ID:???
>>927
それだと$str='0'のときに空白にならんか
とか重箱の隅をつついてみる
0929nobodyさん2007/06/24(日) 23:40:13ID:???
>>928
すまん、全角チェックだから
echo "空白"; →echo "NG";だね

リガナ内の " " 半角スペースとかのチェックは別途うまくやってね。
09309242007/06/25(月) 00:03:31ID:yWbYl+8v
ID表示しわすれ
>>926
Swatch Internet Timeで日付・時刻表示をします。
基本的にはUTC+1なんで、タイムゾーンがAsia/Tokyoの場合、
date関数で924のように指定すると、BeatはUTC+1に、
その他の日付はUTC+9になる、ということのようです。
>>925
>・タイムゾーンの設定
この場合、date関数の前にタイムゾーンを変更してやればよい、ということでしょうか?
date_default_timezone_set関数で変更する場合、
どのタイムゾーンの指定が適切でしょうか?
夏時間でずれたりしないようにしたいところですが。
0931nobodyさん2007/06/25(月) 01:30:37ID:L5/fsAZZ
PHP5かサーバーの設定かわかりませんがプログラムが動きません。
PHP4.3の別サーバーなら動きます。
問題は何でしょうか?
プログラムは画像アップロードするものです。
0932nobodyさん2007/06/25(月) 01:58:01ID:???
>>931
情報が少なすぎてこれくらいしか
http://jp.php.net/manual/ja/migration5.php
0933nobodyさん2007/06/25(月) 01:59:11ID:???
何でエラー吐いてるか書けば一発なのに・・・。
0934nobodyさん2007/06/25(月) 02:50:10ID:???
なんでmb_str_replaceって無いの?
0935nobodyさん2007/06/25(月) 03:02:25ID:L5/fsAZZ
すみません。どういうわけか私が使っているサーバーはWarninngとかを
変えさす真っ白表示します。
PHPの設定を変えれば大丈夫なのですがやり方がわかりません・・・。
どうやら問題の関数はPReg_Matchのような感じです・・・。
それを外せば何とかプログラムは動きます。ただし、画像のアップはできたのですが
GD系が動いてないのかサムネイルが作れません・・・。
情報少なくてすみません。
0936nobodyさん2007/06/25(月) 03:25:08ID:L5/fsAZZ
すみません。Pregじゃないようです。
GD系の関数ですね・・・。
ただ、全く同じ別プログラムではPHP5でも動いてますので・・・。
謎は深まるばかりです。
0937nobodyさん2007/06/25(月) 03:28:09ID:L5/fsAZZ
たびたびすみません
PregMachを追加でも真っ白表示になります
レス数が900を超えています。1000を超えると表示できなくなるよ。