【PHP】質問スレッドpart18【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/06/14 14:36ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
抜けているものがあったら補足願います
0333nobodyさん
04/06/24 23:03ID:???parse errorが出た時に重宝してる。
0334nobodyさん
04/06/24 23:05ID:WjPQG3mJほーほー
どうもありがとう。調べてみます。
0335nobodyさん
04/06/24 23:42ID:???http://www.php.net/manual/ja/language.operators.errorcontrol.php
これだ。
0336nobodyさん
04/06/25 00:13ID:QzuvB6xta.phpというスクリプトに
<?
readfile("http://hoge.com/hoge.php?a=1&b=2");
?>
と記述してスクリプトを動かすとError 0がでるのに
<?
header("Location: http://hoge.com/hoge.php?a=1&b=2");
?>
と書くとうまく動きます。どうしてでしょうか。
0338nobodyさん
04/06/25 11:22ID:ydrfhQOCファイルに書き込むときはfwriteとfputsのどちらがいいのでしょうか。
教えてください。よろしくお願いします
0339nobodyさん
04/06/25 11:28ID:???http://www.php.net/fputs
意味わかるか。
0341nobodyさん
04/06/25 13:58ID:???echoとprintの決定的な違いってなんでしょうか
マニュアル読んだけどわかりませんでした
0342nobodyさん
04/06/25 14:13ID:???print $a,$b (だめ)
0343nobodyさん
04/06/25 15:16ID:???print "$a$b"; はできるよ?
0344nobodyさん
04/06/25 15:29ID:???0346nobodyさん
04/06/25 17:39ID:???phpinfo() の出力結果を横取りしてファイルにでも落としたいんだけど
どうしたらいいかな
0347nobodyさん
04/06/25 17:47ID:???0349nobodyさん
04/06/25 18:02ID:???0350nobodyさん
04/06/25 18:10ID:???http://jp.php.net/phpinfo
マニュアルを隅々と嫁。特に下の方
0351346
04/06/25 18:24ID:???できた!
<? ob_start(); phpinfo(); fwrite( fopen("unko.html",'w'), ob_get_contents() ); ?>
0352nobodyさん
04/06/25 18:28ID:76ADPduI$sub =~ s/^Re://g;
$sub =~ s/\[\d+\]\s?//g;
$com =~ s/<br>/\r> /ig;
PHPで使えないんであればどう書き直せばいいのか教えてくださいm(_ _)m
0353nobodyさん
04/06/25 18:30ID:???$sub =~ s/\[\d+\]\s?//g;
$com =~ s/<br>/\r&gt; /ig;
こうでした……
0354nobodyさん
04/06/25 18:36ID:???gはallだなぁ
0355nobodyさん
04/06/25 18:48ID:???こんなかんじでね?
gはデフォで、マッチさせる数を制限したいときだけpreg_replaceの第四引数で指定する。
$sub =preg_replace( '/^Re:/', '', $sub);
$sub = preg_replace('/\[\d+\]\s?/', '', $sub);
$com = preg_replace('/<br>/i', '\r> ', $com);
つーかマニュアル嫁。
ttp://jp.php.net/manual/ja/ref.pcre.php
ttp://jp.php.net/manual/ja/function.preg-replace.php
0356352
04/06/25 19:08ID:???マニュアル調べたりしたんですけど、Perlがよくわからなくてできませんでした_| ̄|○
0357nobodyさん
04/06/25 19:18ID:???phpでhead.txtを取得してスレッド一覧を表示するプログラムを作っています。
head.txtの内容はご存知かと思いますが、「9999999999.dat<>スレタイ(数)」という感じになっています。
「9999999999.dat」と「スレタイ(数)」はsplitで分割できたのですが、そこから「スレタイ」と「数」を取得するにはどうすればいいのでしょうか?
今は、
「(」で分解して、配列の最後を取得し、「)」より前を取得して・・・→数
「(」より前を最後を除いて連結・・・→スレタイ
とやっているのですが、これだと処理に時間がかかりそうな気がしてしまいます。
正規表現などで簡単にやる方法はないのでしょうか?
どなたか教えてくださいm(__)m
0358357
04/06/25 19:19ID:???preg_match('`^(\d+)\.dat<>(.*)\((\d+)\)$`', $line, $match);
こんな感じでは?
[1] スレッドID、[2] スレッドタイトル、[3] レス数
0360nobodyさん
04/06/25 19:46ID:???俺もそういうの作ったが、なぜsubject.txtを読みに行かない?
それで1行毎に<>でsplitして表示すればいいじゃん
0361nobodyさん
04/06/25 19:46ID:???ケツから最初の"("をサーチ。そこから")"まで、もしくはケツの1つ前の範囲がスレ数。
スレ名称は頭から、ケツから最初の"("の手前の範囲。そのままだと多分
スレ名称とスレ数の間にセパレータのスペースが入ってると思うけど。
しかし、subject.txtは鯖ごとに微妙に作りが違うというというワナ。
0363nobodyさん
04/06/25 19:53ID:???http://pc5.2ch.net/php/head.txt
http://pc5.2ch.net/php/subject.txt
0364nobodyさん
04/06/25 20:14ID:???できました。
ありがとうございます!
>360、>362
subject.txtの間違いでした。
すいませんm(__)m
0365nobodyさん
04/06/25 22:40ID:???具体的にはjavascriptにて取得した画像サイズなどの情報をphpへ
渡したいのです。
<img>タグを使う方法以外で何かありますか?
0366nobodyさん
04/06/25 22:49ID:???可能。javascriptでPOSTするデータを
作ってformで送ってやればよい。
><img>タグを使う方法以外で何かありますか?
?
0367nobodyさん
04/06/25 22:57ID:???POSTするってことは、
ページの遷移があるってことですか?
0368nobodyさん
04/06/25 23:11ID:???そうですよ。html+Javascriptのhttpdとの通信手段は
自ずとそんな感じ。別フレーム切ってユーザが見ている
コンテンツのページは遷移してないように見せるのは
最近PHP-usersにも話題が出てましたね。
ActionScriptとかjavaアプレット、ActiveXなんか
使うと別ですけど。(それも話題に上がってたかな)
0370カポコン
04/06/26 02:39ID:???0371nobodyさん
04/06/26 06:20ID:???あー、やっぱりそうなっちゃいますか。
配布したいので、やっぱり
imgタグからphpを呼び出してgetで渡した方が
良さそうですね。
ありがとうござい真下。
0372nobodyさん
04/06/26 11:58ID:???メルマガの広告などによく使われる、
http://www.xxxx.com/xxx.php?id=xxxx
のような、リダイレクトするphpで、なおかつ http://www.xxxx.com/
のrefererを相手のServerにきちんと受け渡すタイプのを探しています。
リダイレクト先のListは別ファイルで用意する形です。
0374nobodyさん
04/06/26 14:04ID:???おたずねしたいことかあります。
Cpanelってありますよね??
これをPHPなどでプログラムを作り、自動登録システムって可能ですか??
0377nobodyさん
04/06/26 15:14ID:???可能でしょうか?
ttp://www.hoge.com/image.gif
のようなURLから画像のサイズを取得するということです。
お願いします。
0379nobodyさん
04/06/26 16:09ID:???画像"ファイル"のサイズならHTTPヘッダで取れるけど、
画像のサイズはURLからは無理。URLのファイル(画像)を
取得して、PHPの画像系の関数で画像のサイズを取得する。
0380nobodyさん
04/06/26 16:12ID:???WARNING: couldn't load the socket extension
って怒られるんだわ
けど PHP Ver 4.3.4で Sockets Support: enabled は確認済み
対処法plz
0384nobodyさん
04/06/26 18:38ID:???IRCSmart.phpを見てみると、extension_loaded('sockets') に失敗して
なおかつ dl('socket')にも失敗した時にそのメッセージが出るから、
get_loaded_extensions でほんとにロードされてるか確認して、、、
ん、dl("ファイル名")じゃなかったっけ?
0385nobodyさん
04/06/26 19:06ID:???フォーロthx.
結論は Socket.phpが apache->PHPからの呼び出しではロードされ,
コンソールから $php hogeでは呼び出されないといったものでした.
つまらないミスを調べさせてしまって正直すまんかった.ありがとう >384
0386nobodyさん
04/06/26 19:34ID:plBi49aM後ろレコードからデータを読む場合はどうすればよいのでしょうか?
0387nobodyさん
04/06/26 19:49ID:???キモイやり方がお好みならmysql_data_seek()を使えばいいけど、
真っ当なやり方ならSQLの段階でorder byを設定すりゃいい。
つーかSQLの勉強をやり直した方がi..うわなにすんだやめr
0388nobodyさん
04/06/26 21:51ID:jyZGtADG変換コードってありませんか?
0389nobodyさん
04/06/27 16:28ID:???知らない。ただjcode(LEではない方)弄って
GB2312とbig5の変換表を入れてやれば作れると思う。
あれ、中身は変換式/テーブルそのものだから。
CJKを参考にすればOK
0390nobodyさん
04/06/27 21:31ID:???確率も指定出来て、一日に一名のみ当選するようにしたいのですが、
可能でしょうか
0391nobodyさん
04/06/27 21:57ID:???可能です。
> 確率を指定
$rate = 0.5
> 一日に一名のみ当選
lottery.dat みたいなファイルを作る。
日付のデータが入ってる。
1. lottery.dat を読む
2. 現在の日付を調べる
3. もし lottery.dat に入っていた日付と、現在の日付が違っていたら
3-1. 抽選を行う(srand(), rand())
3-2. 現在の日付を lottery.dat に書く
もし日付が同じだったら、抽選を行わない
0392nobodyさん
04/06/27 22:02ID:???C の構造体のデータをバイナリとして持ってきて、
その構造体にアクセスしたいのです。
読み出しは unpack() を使うとできるのですが、
書きこみは pack() 関数を使うと、「一部のデータだけ書き換え」することができません。
一部のデータだけ書き換えする上手い方法はないでしょうか。
(何万件ものデータにアクセスするため、できるだけ速いアクセスがいいのですが)
なにかご存知の方、ご教授ください。
0393392
04/06/27 22:34ID:???substr_replace() を使うことにしました。
データの該当部分を pack() した後、
substr_replace() で該当部分を書き換える、という具合です。
0394nobodyさん
04/06/27 23:17ID:zkNM2hBA改行が反映されないのですが、
どうすれば改行されるようになるでしょうか?
0395nobodyさん
04/06/27 23:30ID:Ba+8mIiM「能\」や「表\」のように、語尾に\記号がついてしまいます。
これを回避する方法はないでしょうか?
ご存知の方教えてください、宜しくお願いしますm(__)m
0398394(馬鹿)
04/06/28 00:05ID:???テキストファイルを表示するときに、
HTMLとして表示されているため、改行が行われないんだ。
当たり前だな。で、どうすれば改行されるんだ?
preタグ使うと横スクロールするようになるんでこれではちと困るのだが。
0399nobodyさん
04/06/28 00:06ID:bkEAVbgzmail関数で、DBに登録されているメールアドレスに
送信済みのフラグをたてながら一件づつ送信するプログラムなのですが
ループが早すぎてサーバーが処理しきれないのは問題があります。
ループの間隔をおくのも確実とは言えません。
過負荷にならない程度にメールを配信するには
どういった方法が挙げられるでしょうか?ご教授ください。
0400nobodyさん
04/06/28 00:09ID:???反応してる奴と2人でさしつさされつ完結していて欲しい。
0403nobodyさん
04/06/28 08:52ID:???よろしくお願いします。
0404nobodyさん
04/06/28 09:28ID:WEBa9e2hexec();
system();
passthru();
shell_exec();
``;
0405nobodyさん
04/06/28 12:30ID:???('A`)
0406nobodyさん
04/06/28 12:39ID:???0407nobodyさん
04/06/28 12:50ID:WEBa9e2h0409nobodyさん
04/06/28 13:39ID:???定義されていないテンプレート変数、例えば {$hoge} に assign が無ければ、
以前はスキップしてくれたのですが、バージョンアップ後は
>FATAL .. Undefined index hoge
とエラーを吐いています。
いちいち {if isset($hoge)} と囲うのも鬱陶しく、どう対処すべきかな〜、と。
# Smarty の設定かと思いマニュアル見直しましたが適当な設定は見あたらず。
# $smarty->undefined = NULL とかも試しましたが変化無しでした。
0410nobodyさん
04/06/28 14:53ID:???%に挟まれた文字列(%test%)から%を取り除き、
それをキーとする要素を連想配列から取り出して出力したいのですが、何も表示されません。
もしよろしかったら、教えていただけると幸いです。
<?php
$template = "%test%";
//%に挟まれた文字列にマッチ
$pattern = "/(\%)(.+)(\%)/";
//置換用配列
$replacement = array("test" => "キタ━━━━ヽ(゚∀゚ )ノ━━━━!!!!");
//このままだと、%を取り除いた文字列を表示
//"$2"の部分を$replacement['$2']や$replacement[$2]、$replacement['\\2']などとしてみましたが、ダメでした。
echo(preg_replace($pattern, "$2", $template));
?>
#一応全角スペースでインデントしました。よろしくお願いします。
0411410
04/06/28 14:58ID:???OS: Windows XP SP2 RC2
Server: Apache 2.0.49
PHP: 5.0 RC3
モジュールとして動かしております。
0412nobodyさん
04/06/28 15:00ID:???0413nobodyさん
04/06/28 15:02ID:???ソース斜め見しただけでレスしてました。
0414nobodyさん
04/06/28 15:06ID:???そうなんですが、htmlファイルでテンプレートを作って、%で囲まれた文字列を置換して出力したいんですよ…。
キーもtestだけではないので、
str_replace("%test%", $replacement["test"], $template);
などとしてもやはり複数行になってしまいますよね。
できることなら一行にまとめたいのですが…。
0415409
04/06/28 15:06ID:???マニュアルよく読むべし。
<?php
$template = '%test%';
$patterns[] = '/(\%)(.+)(\%)/';
$replacements[] = 'キタ━━━━ヽ(゚∀゚ )ノ━━━━!!!!';
echo(preg_replace($patterns, $replacements, $template));
?>
テンプレートを探してるなら自作するよりどこかから持ってきた方がいいよ。
regex 型のテンプレートならそれなりに普及しているのが幾つかあるし。
http://smarty.php.net/
http://pear.php.net/packages.php?catpid=10&catname=HTML
0417409
04/06/28 15:07ID:???流れたら pear スレの方に逝ってきまつ、、
0418nobodyさん
04/06/28 15:09ID:???0421nobodyさん
04/06/28 15:22ID:???0422415
04/06/28 15:23ID:???0423nobodyさん
04/06/28 15:25ID:???0425nobodyさん
04/06/28 15:54ID:???0427nobodyさん
04/06/28 16:14ID:???⊂⌒( ´・ω・)くpaserは何語表記なんだろう...
`ヽ_っ⌒/⌒c
0430nobodyさん
04/06/28 17:32ID:???誰かが投票するたびにYYYYMMDD-HHIISS.txtという形式でファイルを生成して書き込むという仕組みでした。
この場合1秒間に複数の投票があったら対応できないので明らかにまずいんじゃないかと(排他処理でなんとか
なるかもしれませんが)と思います。
素直に1ファイルに追加書き込みしていった方が後で集計するのも楽だと思いますが。
■ このスレッドは過去ログ倉庫に格納されています