【PHP】質問スレッドpart18【php】
レス数が1000を超えています。これ以上書き込みはできません。
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
抜けているものがあったら補足願います
0002nobodyさん
04/06/14 14:36ID:???Part1 : http://ebi.2ch.net/php/kako/982/982687820.html
Part2 : http://pc.2ch.net/php/kako/1003/10032/1003283567.html
Part3 : http://pc.2ch.net/php/kako/1013/10139/1013919792.html
Part4 : http://pc.2ch.net/php/kako/1022/10229/1022999539.html
Part5 : http://pc.2ch.net/php/kako/1031/10317/1031721334.html
Part6 : http://pc5.2ch.net/php/kako/1038/10389/1038988518.html
Part7 : http://pc5.2ch.net/php/kako/1044/10444/1044478561.html
Part8 : http://pc5.2ch.net/php/kako/1050/10502/1050249148.html
Part9 : http://pc5.2ch.net/php/kako/1057/10579/1057947512.html
Part10: http://pc5.2ch.net/php/kako/1064/10641/1064104114.html
part11: http://pc5.2ch.net/php/kako/1067/10676/1067635640.html
part12: http://pc5.2ch.net/test/read.cgi/php/1070639208/
part13: http://pc5.2ch.net/test/read.cgi/php/1073291978/
part14: http://pc5.2ch.net/test/read.cgi/php/1076163015/
part15: http://pc5.2ch.net/test/read.cgi/php/1078592587/
part16: http://pc5.2ch.net/test/read.cgi/php/1081267619/
part17: http://pc5.2ch.net/test/read.cgi/php/1084781699/
※前スレからの引用修正
0003nobodyさん
04/06/14 14:37ID:???2ch Pear Wiki
http://pear.sakura.vg/
PHP Kitchien
http://www.phpkitchen.com/
PHP Developer
http://www.phpdeveloper.org/
phpPatterns
http://phppatterns.com/
Perl/PHP Translation
http://www.cs.wcupa.edu/~rkline/perl2php/
0004nobodyさん
04/06/14 14:37ID:???・参考スレとか
質問される方は聞く前に調べたほうが良いと思われます。
2ch 総合ガイド
http://www.2ch.net/guide/
CGIに関する質問はこちらで
[CGI: Common Gateway Interface part 11 ]
http://pc5.2ch.net/test/read.cgi/php/1055597189/l50
CGIとPerlの区別がつかない方はこちらも
△▲ WebProg 初心者の質問 Part9 ▼▽
http://pc5.2ch.net/test/read.cgi/php/1086715675/
☆ P H P 5 ☆
http://pc5.2ch.net/test/read.cgi/php/1056969979/
Pear
http://pc5.2ch.net/test/read.cgi/php/985665522/
【PHP】Smarty【Template】
http://pc5.2ch.net/test/read.cgi/php/1047225437/
■PHP関連の書籍(但しPHP出版系お断り)
http://pc5.2ch.net/test/read.cgi/php/985315574/
※過去ログに行っている場合がありますので、
見れない方は同じような名前の板を探してください
0005nobodyさん
04/06/14 14:37ID:???では、早速質問どうぞ。
0006nobodyさん
04/06/14 15:39ID:+XeQjlo/http://enema.x51.org/x/i/cute_birds2.jpg
http://enema.x51.org/x/i/cute_birds3.jpg
これどういうこと?
0007nobodyさん
04/06/14 16:56ID:???0008nobodyさん
04/06/14 16:58ID:???0009nobodyさん
04/06/14 16:58ID:6bKGvEI+グロじゃない。
むしろ1枚1枚はほのぼのしてるぐらい。
ただね・・・連続で見ると
0010nobodyさん
04/06/14 19:12ID:???0011nobodyさん
04/06/14 21:08ID:???多次元配列の一つ目の階層の要素だけを数えたいのですが、
($array[$i]←この部分の数が知りたいのです。)
count($array)とするとどうも要素がやたら大きくなってしまいます。
(どうやら$array[$i][$e]←ここまでカウントしているようです。)
いい具合の関数はありませんでしょうか?
多次元関数に関する記事があまりなかったもので・・・。
0012nobodyさん
04/06/14 21:27ID:???0013nobodyさん
04/06/14 21:45ID:???0014nobodyさん
04/06/14 21:53ID:???$next = ((count($viewdata))+1) / 5;
を
$next = count($viewdata)+1 / 5;
としていたためにむちゃくちゃな数が出ていたのでした。
お騒がせしました。
0016名無し募集中。。。
04/06/14 23:33ID:jS1Q2NuJ0017nobodyさん
04/06/14 23:39ID:???0018nobodyさん
04/06/15 00:37ID:???0020nobodyさん
04/06/15 01:01ID:???0021nobodyさん
04/06/15 01:07ID:???0022nobodyさん
04/06/15 02:24ID:???0023nobodyさん
04/06/15 03:21ID:???cgi.f13.aaacafe.ne.jp/~mugen/perlvsphp/mysql_mj/
PHPの内部プログラムに関しては全て高速設計。
出てくるデータ変換もPerl交互の正規表現で対処しているし、
何よりもセッションをファイルではなく、DBサイドでやってしまっている点。
素人がもたつく部分は、全て天才的なやり方が解決してきた。
将来的には箱庭を超えるもんに仕上がればいいと思っています(ぉ。
0024nobodyさん
04/06/15 03:29ID:???0026nobodyさん
04/06/15 08:37ID:???これってそんなに大層なことか?
0029nobodyさん
04/06/15 10:32ID:???常識的な技術を「僕チン凄いことやってるよー」みたいに見せかけて人を騙そうとする所なんか特にね
頭が悪いから詐欺師にはなれないと思うけど
0030nobodyさん
04/06/15 10:52ID:VBE/CSzdエラーメッセージやワーニングの改行が
<br /> になるのが気に入りません。
どうしたらいいでしょうか?
0031nobodyさん
04/06/15 11:03ID:???CLI版のPHPを使う。
http://www.php.net/manual/ja/features.commandline.php
CGI版も含めて、そもそも他のSAPIのものはHTTPを通して使うのが前提だからね。
どうしてもって言うなら出力バッファリングを使って、自分で取り除く。
0032nobodyさん
04/06/15 11:07ID:???0033nobodyさん
04/06/15 11:12ID:lLtRoZvOhtml_errors = Off
0034nobodyさん
04/06/15 13:29ID:GnjSLWGD0035nobodyさん
04/06/15 13:34ID:???0036nobodyさん
04/06/15 13:39ID:???echoやprintした内容がメモリに蓄積されているみたいで
例えばPostgresqlのラージオブジェクトから数GBのファイルを
出力しようとするとOut of Memoryで死んでしまいます。
というわけで、Postgresqlのラージオブジェクトから
メモリを節約しつつデータを出力させる方法を教えてくだsaina
0037nobodyさん
04/06/15 13:55ID:???$db = pg_connect(DB_CONNECT);
pg_query($db, "BEGIN");
$dblo = pg_lo_open($db, $oid, 'r');
while ($buf = pg_lo_read($dblo, 4096)) echo $buf;
pg_lo_close($dblo);
pg_query($db, "COMMIT");
pg_close($db);
0038nobodyさん
04/06/15 14:00ID:???0040nobodyさん
04/06/15 14:17ID:GnjSLWGDtelnetアクセスができないんですよ。
0041nobodyさん
04/06/15 14:23ID:???php.iniでは
output_buffering = Off
を宣言しており、スクリプト中でも特に変更はしていないつもりです。
output_handlerやzlib.output_compression等も無効にしています。
>>39
pg_lo_read_allで書くと便利で簡単なのですが、
なぜかメモリ使用量が今よりも大きくなってしまうので、現在の方法に変更しました。
0045nobodyさん
04/06/15 16:13ID:???004636
04/06/15 16:54ID:???そうなのです。
もしかして、httpで1GBを超えるデータは扱えないとか・・・
>>45
バッファリングを行うと、逆にメモリ使用量は増えてしまいますね。
implicit_flushはパフォーマンスが低下してしまうので、デバッグ用のようです。
試してみましたがやはり無理でした。
Apache2のフィルタ機能(複数のモジュールを通すことができる)が怪しい気がするので、
一度Apache1で試してみます。(PHPじゃないじゃんかYp!)
改善したらまた報告に来ます。
004736(解決!)
04/06/15 17:06ID:???46で「試してみましたがやはり無理でした」と書きながらも、ちょっと気になっていたので
調べてみると、「flushはechoの後でflush()を呼び出すのと等価」ということを聞き、
明示的に指定してみたところうまく動作するようになりました。
(45さん微妙にスマンカッタ)
$db = pg_connect(DB_CONNECT);
pg_query($db, "BEGIN");
$dblo = pg_lo_open($db, $oid, 'r');
while ($buf = pg_lo_read($dblo, 4096)) {
echo $buf;
flush();
}
pg_lo_close($dblo);
pg_query($db, "COMMIT");
pg_close($db);
お答えいただいた皆様ありがとうございました!
0048nobodyさん
04/06/15 18:42ID:???一次元だとforeach($array as $key => $value)でできたのですが・・・
0049nobodyさん
04/06/15 18:51ID:???005048
04/06/15 18:55ID:???$array[]としてもうまくいかないし。。どうすればいいでしょうか
0051nobodyさん
04/06/15 19:09ID:???という具合ではいかが?
0053nobodyさん
04/06/15 20:23ID:???多次元なので、
function array_echo ($_array){
static $indent = 0;
foreach ($_array as $key=>$value){
echo str_repeat("\t", $indent).$key."\n";
if (is_array($value)){
$indent++;
array_echo($value);
$indent--;
} else {
echo str_repeat('\t',$indent + 1)."=>$value\n";
}
}
}
っていう関数はどうかな。と思ったけど、var_dump() の方がいいよ。
0055nobodyさん
04/06/15 22:22ID:???0057nobodyさん
04/06/15 23:27ID:gVK53Lr1005855
04/06/15 23:42ID:???0059nobodyさん
04/06/16 00:22ID:???むぅ。カポコン日記には結構ためになる事書かれてるな。
多分、コイツはPHPメーリングもしっかり見てるぞ。
DBのセッションは結構アルゴリズムが人によって違うし、
使う関数も違っていたりするから大層なことだろ。
セッションを語れんでPHP語るなっていう名言があるの知ってる?
大体Javaが本業な奴に間違いは少ない、これ間違いなし。
ただカポコンはもう出てくるな。
0062nobodyさん
04/06/16 11:59ID:???0063nobodyさん
04/06/16 12:04ID:???telnetやsshによるシェル・アクセスの可否と
crontab使用の可否は直接の関連性はないよ。
シェルでメンテナンスが出来ないので、
スクリプトのチェックとか面倒な部分もあるけど。
使ってるサービスでcrontabの登録を出来る方法はないの?
コンパネ使うとか、フォームで申請するとか。
0065nobodyさん
04/06/16 13:27ID:???if(A)
と
if(A!=0)
どっちの方がいいのですか?教えてエロイ人
0067nobodyさん
04/06/16 14:13ID:???0070nobodyさん
04/06/16 15:22ID:???どっちも同じ結果になるので、どっちでもいいと思う。
コードを短かく書くことを優先するなら前者。
(あとで見てそれとわかるように)「0ではない」という意味を尊重して書きたければ後者。
PEAR のコーディング規約だとどーなんだろ?
false と 0 を違うものとして扱いたいとかゆーことであれば、"===", "!==" とか使う。
0071nobodyさん
04/06/16 15:35ID:???マニュアルの言語リファレンス・制御構造、言語リファレンス・型・論理型を見てみ。
FALSEと見なすものの多さに呆れて、明示的に比較したくなると思われ。
0072nobodyさん
04/06/16 15:38ID:hmUL29ONereg_replace str_replace strtr等使っても変換されません。
置換する対象の文字列はarrayの1つを受け取ったものなんですが
これが原因なのでしょうか?
$str=$array[0];
$str=ereg_replace("ア","イ",$str)?
0073nobodyさん
04/06/16 15:39ID:???booleanの FALSE
integerの 0 (ゼ ロ)
floatの 0.0 (ゼロ)
空の文字列、 および文字列の "0"
ゼロを要素とする 配列
ゼロを要素とする オブジェ クト
特別な値 NULL (値がセット されていない変数を含む)
007572
04/06/16 16:00ID:hmUL29ON文字コードがEUCっていうのは関係あるのでしょうか?
0076nobodyさん
04/06/16 16:14ID:???デフォルトだと内部エンコーディングが使われるので、もし違うなら
mb_regex_encodingで設定。
あってるなら、ちとわからぬ。
ちなみにphp4.2.0以上なので、それ以下なら使えないっぽ。
007772
04/06/16 16:25ID:hmUL29ON原因はなんだろう・・
直接 文字を入れた変数になら置換できるのに・・
0078nobodyさん
04/06/16 16:40ID:???マテ、配列からちゃんととれているのか?
配列は値が入っているのか?
print_r($array);
print "{$array[0]}";
$str = $array[0];
print "{$str}";
これで全部表示される事を確認したまい。
007972
04/06/16 17:06ID:hmUL29ON0080nobodyさん
04/06/16 17:14ID:???(;´Д`)?
あー、問題なければその配列の作成部分から取得->置き換え->出力までの流れを書いてみてくれ。
もうさっぱりだ。
0081nobodyさん
04/06/16 17:15ID:???0082nobodyさん
04/06/16 17:17ID:???0083nobodyさん
04/06/16 17:18ID:???0085nobodyさん
04/06/16 19:02ID:FlwZGV+n入力フォームから追加して、一覧にするまではできました。
問題は、編集時に文字化けが起こるんです。
list.phpが一覧表で、こんな感じに出力してます。
echo '<td><a href="redit.php?mode=edit&sid='.$row["sid"].'&brand='.$row["brand"].'&item='.$row["item"].'&c_price='.$row["c_price"].">編集</a></td>';
echo "<td> ".$row["sid"]."</td>\n";
echo "<td> ".$row["brand"]."</td>\n";
echo "<td> ".$row["item"]."</td>\n";
echo "<td> ".$row["c_price"]."</td>\n";
redit.phpへ $mode = 'edit' の時編集モードに入り、各値をGETで渡して、
echo '<form action="'.$_SERVER["PHP_SELF"].'?mode=edit&sid='.$sid.'" method="post">';
echo "<font size=\"3\"><strong>編集/削除</strong></font>";
echo '<tr align="center"><th>ブランド名</th><td><input type="text" name="brand" size="30" value="'.$brand.'"></td></tr>';
echo '<tr align="center"><th>アイテム</th><td><input type="text" name="item" size="30" value="'.$item.'"></td></tr>';
echo '<tr align="center"><th>仕入原価</th><td><input type="text" name="c_price" size="30" value="'.$c_price.'"></td></tr>';
echo "<tr align=\"center\"><td colspan=\"2\"><input type=\"submit\" name=\"post_mode\" value=\"編集\">
このように、valueで値をフォームに表示していますが、'ム'とか、ある一定の文字で文字化けが起こるんです。
PHPにも禁止文字ってあるんですかね?
この対処方をどなたか教えて頂けませんでしょうか?
文字コードはeuc で作成していて、サーバーLinuxでeucです。
0086nobodyさん
04/06/16 19:06ID:???http://jp.php.net/mbstring
0087nobodyさん
04/06/16 19:19ID:???とりあえずphp.iniかhttpd.confの文字設定あたりかな?
0088nobodyさん
04/06/16 19:30ID:FlwZGV+nご返答ありがとうございます。
さっきのURLのところの
PHP 4.3.0以降、このオプション --enable-mbstr-enc-trans は廃止され、mbstring.encoding_translation に変更となります。HTTP入力文字エンコーディング変換は、 このオプションをOnに設定した場合のみ 有効となります。 (デフォルトは、Offです。)
この辺が関係あるのかなとも思いますが、今は自鯖なんで設定いじれるからいいんですが
サーバーの仕様に関係なく表示させる方法ってないもんですかね?
そのまま処理が問題だとすると
フォームから追加するときに、sjisでSQLに入ってるから、
それをeucで表示しようとして、文字が化けるってことですかね?
でも、リストでは化けないので。。。うーん
0089nobodyさん
04/06/16 20:04ID:???1つ前のページからちゃんときてない場合(直リン、お気に入り等)は見れないようにしたいんです。
どうやるんですか?
0090nobodyさん
04/06/16 20:11ID:???そうならlistのほうもsqlから取った値は派手に化けるかと思うんだけど、、。
listでは化けないのにreditで化けるということは、reditへgetで値が渡ってくる時に、
ブラウザがエンコードした文字列の処理でこけてるということっぽい。
ムが化けたりするってことはブラウザからはsjisで来てるんだろうけど、
mb_detect_encoding()でエンコードが所望のものかどうかチェックしてみたほうがいいかも。
ブラウザからの値を内部エンコに変換する方法としは、iniをいじらないなら、
reditのほうでmb_language() + mb_http_input()で入力値を自動変換したり、
$_getの各値をmb_convert_encodingやjcode.phpで逐一変換してから処理するとか。
0091nobodyさん
04/06/16 20:13ID:BaSzqMZ7わからんけど
<a href="redit.php?mode=edit&sid='.urlencode($row["sid"]).'&brand='.urlencode($row["brand"]).'&item=以下略
はどうでしょう。
0092nobodyさん
04/06/16 20:19ID:???ブラウザが送ってくるrefererを見る。
リファラを送る機能の無いブラウザやセキュリティ対策ソフトを入れてるヒトは巻き添えで見られない。
.htaccessなど鯖側でやるものでphpではやらない。
session使えばもう少し複雑なコントロールもできるかな。
0093nobodyさん
04/06/16 20:23ID:???まあその辺りだろうな。
91のやり方は変更が少なくていいと思うが、
ユーザから編集後の文字列が渡ってくるわけだから、
どのみちエンコードは変換する必要がでてくることないか?
009472
04/06/16 21:37ID:hmUL29ON$fp = fopen($file,"r");
flock($fp, 1);
$file = fread($fp , filesize($file));
$file=mb_convert_encoding($file,"EUC","auto");
$csv=split("[\n]",$file);
for($i=1;$i<count($csv)-1;$i++){
$array=split(",",$csv[$i]);
$str=$array[11];
$str=mb_ereg_replace("あ","い",$str);
echo $str;
}
こんな感じでしょうか?
0097nobodyさん
04/06/16 22:13ID:???0100nobodyさん
04/06/17 00:24ID:???先のこと考えずに作るなら 取りあえず何にしてる?
0101nobodyさん
04/06/17 00:35ID:???0102nobodyさん
04/06/17 00:42ID:???OSがEUCなんでスクリプトもDBもEUCにしてる。
下手な小細工要らないし。スプリクトそのものはWin上で
EUCと改行コードLFで書いているんだけどな。
んだけど、UTF8なFedoraCore鯖がそろそろまわってきそうな悪寒。
文字コードそのものはFTPで転送するときに変換すりゃ済むのだが、
メタタグも書き換えるのは面倒そう。http鯖の設定でしのぐ方が
いいのか?
0103nobodyさん
04/06/17 00:52ID:???0104nobodyさん
04/06/17 00:58ID:???簡単な掲示板みたいのを作っているのですが入力されたテキストを
ファイルに保存する際に1件につき1行で格納したいと思います。
ファイルから読み出して表示する際には改行もありの状態にしたいので
保存・読み込みのそれぞれで、テキスト中の文字を以下のように相互変換して
やれば良いかなと思ったのですが・・・
[CR]←→"\r" [LF]←→"\n" \←→"\\"
下記のコードで、$s1 と %s3 が等しければ、相互変換は可能ということになりますよね?
$arr1 = array("\\", "\r", "\n");
$arr2 = array("\\\\", "\\r", "\\n");
$s1 = "ABC\r\nEFG \1,000";
$s2 = str_replace($arr1, $arr2, $s1);
$s3 = str_replace($arr2, $arr1, $s2);
echo "<pre>" . $s1 . </pre>";
echo "<pre>" . $s3 . </pre>";
ところが $s1が上のような場合は問題なく$s3で元に戻るのですが
$s1 = "ABC\\nDEF\\nGHI\\JKL"
などとすると元にもどりません。
何か間違っているでしょうか。
長文ですみませんが、ご教授ください。
0105104
04/06/17 01:00ID:???正しくはこうです。
echo "<pre>" . $s1 . "</pre>";
echo "<pre>" . $s3 . "</pre>";
0106nobodyさん
04/06/17 02:20ID:WEWy3iw0まだ実験的なものとかって書いてあるんだけどじゃあ何を使えっていうんだい?
だれか経験者いない?
0107nobodyさん
04/06/17 02:29ID:???1. 元データ $s1 → ABC\nDEF\nGHI\JKL
2. 変換 $s2 → ABC\\nDEF\\nGHI\\JKL
3. 逆変換 $s3 → ABC\nDEF\nGHI\JKL
各段階での変数の内容(リテラル)はこうなってるんだと思うが。
1で\\nはエスケープされて改行コードではなく文字列それ自体(ABC\nDEF)として$s1に代入、
2でその\nの\が\\に置換され(ABC\\nDEF)、
3で\\が\に置換される(ABC\nDEF)。
LFは$s1にそもそも入ってないから関係なし、と。
したがってコードはかかれたとおり正常に動作してる。
0108nobodyさん
04/06/17 02:34ID:???ってかなんでfor文を1から始めてるの?
ファイルの一行目は使わないってこと?
配列は0から始まるって事を勘違いしてたとしたら
$str=$array[11];
は
$str=$array[10];
の間違い。って事はない?
0109nobodyさん
04/06/17 02:36ID:???dom関数使えばいいよ。
phpでやろうというならdomかdomxmlかxmlparser(expat)かsimplexmlか、pearライブラリの
いずれかを選んでやるしかない。
0111nobodyさん
04/06/17 02:44ID:???なら変更があるといってもよほど妙な機能を使ってない限り
大したことないような。
漏れはSimpleXml関数とXml関数で足りてるからDOMのことば
よう知らんけど。
0112nobodyさん
04/06/17 02:51ID:???csvなら一行目が定義フィールドな可能性はある。
まあイテレータが1から始まる理由にはならんけど。
つーかそれ以前にエラー処理とかflockの定数とかありえない文字コードの指定とか
splitを使ってるとことかキャラクタクラスが\nなとことか""で囲まれた値を考慮してないとか
毎回countしてるとことかfgetcsvを使ってないこととか無意味な代入とか、
ようするに釣りじゃなければなんだってことのほうが重要だと思うけど。
0113nobodyさん
04/06/17 02:58ID:zQROHTgZ0114104
04/06/17 02:59ID:???ありがとうございます。
それが正常にならないのです。
各段階を実際に出力させてみると、以下のようになってしまいます。
(上から$s1 $s2 $s3 です)
<pre>ABC\nDEF\nGHI\JKL</pre>
<pre>ABC\\nDEF\\nGHI\\JKL</pre>
<pre>ABC
DEF
GHI\JKL</pre>
書き忘れていましたが環境は PHP4.3.7 + IIS5.0 です。
0115104
04/06/17 03:00ID:???実際には空いていません。
<pre>ABC
DEF
GHI\JKL</pre>
0116nobodyさん
04/06/17 03:13ID:???検索語・置換語が複数渡ってるから、まず
s2の ABC\\nDEF\\nGHI\\JKL が ABC\nDEF\nGHI\JKL に置換されて、
さらに ABC\nDEF\nGHI\JKL が残りの$arr2の置換(\n -> LF)をやって
s3に改行が入るんだろうね。
0117nobodyさん
04/06/17 03:38ID:???出力時どれも改行に逆変換されちまうってことですな。
だからリテラル\nがもとに戻らず改行になってしまう。
\nという文字列を入力できなくするのはナンセンスだし、エスケープを実装するとコスト高なので、
入力される可能性のない文字列に置換して保存するしかないか。
0119nobodyさん
04/06/17 06:43ID:???ImageTTFTextを使って日本語を書き込みたいのですがどうも文字化けしてしまうのです。
文字の部分はUTF-8にエンコーディングしているのですが、
サーバーの仕様に依存するのでしょうか?
ご教授よろしくお願いします。
0120nobodyさん
04/06/17 06:59ID:???ハードウェアやosやhttpdのことなら関係ないだろ。
phpのコンパイルオプションやini設定には依存する。
何をしてるのかかかれてない以上マニュアル読めとしか言えないよ。
0121nobodyさん
04/06/17 10:35ID:dLzzZdYXありがとうございます。それでいけました(^^)
0122nobodyさん
04/06/17 13:28ID:mG7yRBZ4そのまま表示されてしまいます。<br>を出さずに改行された状態でテキストエリアに読み込みたいのですが
どうすれば良いでしょうか??よろしくお願いします。
0123nobodyさん
04/06/17 13:30ID:???0124ぺぷし
04/06/17 13:30ID:t9pcSu9t初めて書き込みさせていただきます。PHP初心者のため、ご教授いただけたら幸いです。
MySQLのデータベースのBLOBフィールドにバイナリデータとして格納してある複数の画像ファイルをPHPでブラウザに全て自動的に書き出すようにしたいのですが、下記のようにDo Whileを使ってフィールドの全データを書き出そうとすると
"Cannot modify header information- headers already sent by output started ..."というエラーになり、画像ではなくバイナリデータのまま
出力されてしまいます。
ちなみに、ループにいれず、クエリで抽出した単一の画像だけを出力する分にはこのようなエラーは出ず、画像を表示することができるので、
ループに入れることで、header情報のContent-typeの指定が繰り返されるのがいけないのだと思うのですが、試しにループの外にheader("Content-type: " . 'image/jpg'); の部分をおいてみるとファイルダウンロードダイアログボックスが開いてしまいます。
ループでの全データ書き出しはできないのでしょうか?
どなたかご存知の方、いらっしゃいましたらお助け下さい。
***********************************************************************
<table border="1">
<tr><td>ID</td><td>Image</td></tr>
<?php do { ?>
<tr><td><?php echo $row_rs1['id'] ; ?></td>
<td> <?php header("Content-type: " . 'image/jpg');
echo "<img src= {$row_rs1['image'] } >"; ?></td>
</tr>
<?php } while ($row_rs1 = mysql_fetch_assoc($rs1)); ?>
</table>
0125nobodyさん
04/06/17 13:34ID:mG7yRBZ4理屈はわかるのですが^^;ソースで書くとどんな風になりますか??よろしくお願いします。
0126125
04/06/17 13:35ID:mG7yRBZ40127nobodyさん
04/06/17 13:38ID:???なんと言うかだな・・・とりあえず画像とHTMLの出力は別にしようや
>>125
よく分かりませんが、マニュアルを知らないという意味でしょうか?
http://www.php.net/manual/ja/
0129nobodyさん
04/06/17 13:44ID:???mysql ヘルプ!
http://pc5.2ch.net/test/read.cgi/php/1011683282/466
('A`)
できない
0130nobodyさん
04/06/17 13:54ID:mG7yRBZ4ありがとうございます!
これの反対をすればいいということですかね!?
$s = str_replace("\r\n", "\r", $s);
$s = str_replace("\r", "\n", $s);
$s = str_replace("\n", "<br>", $s);
0131nobodyさん
04/06/17 19:09ID:???/link/index.html からの場合で、出力を振り分けたいのですが、
$gets = getenv{"HTTP_REFERER"};
if ($gets =~ "/game/index.html") {
print ("ゲームから来ましたね");
}
elseif ($gets =~ "/link/index.html") }
print ("リンクから来ましたね");
}
こんな書き方をしても、/link/index.html から来たやつも
全部何故か /game/index.html の方に飛んでしまいます。
分かる方お願いします。
0132131
04/06/17 19:09ID:AJJf+veG0134nobodyさん
04/06/17 19:19ID:H2q6Vd97$b = "test";
print $a.$b;
で文字出力させた時、
何故か$aのtestが漢字で文字化けし、
$bのtestは正常に表示されます。
両方とも半角英字で同じ文書なのに、何故最初のだけが
文字化けするのでしょうか?
分かる方居ましたらお教え下さい。
0135nobodyさん
04/06/17 19:22ID:???何が楽しいんだか。
0137nobodyさん
04/06/17 19:27ID:???つーかまともに答えてる奴がいるのが笑えるんじゃね。
0139nobodyさん
04/06/17 19:37ID:???0141131
04/06/17 20:10ID:???他行きます・・
0142nobodyさん
04/06/17 20:12ID:???0145nobodyさん
04/06/17 20:40ID:???0148nobodyさん
04/06/17 21:15ID:???$gets = getenv{"HTTP_REFERER"};
if (preg("|/game/index.html|",$gets)) {
print ("ゲームから来ましたね");
}
elseif (preg("|/link/index.html|",$gets) }
print ("リンクから来ましたね");
}
はい、どうぞ!
0149nobodyさん
04/06/17 21:19ID:???君の言語は難題?
0150nobodyさん
04/06/17 21:28ID:???header('Content-Type: image/jpeg');
imagejpeg($im);
で、イメージを出力させてもjpegにならず、bmpになってしまうのはなぜでしょうか?
ご教授よろしくお願いします。
0152nobodyさん
04/06/17 21:45ID:???漏れも最初釣りかと思ったんだけど、記憶が確かならば
ブラウザがIEだと画像をローカルに保存するときに御丁寧にもBMPに変換してくれたような。
015394
04/06/17 22:01ID:QhI2MtNB>>98 おお、いけました^^ ありがとうございました。
mb_regex_encoding() ではちゃんとEUC-JPとでてるのに・・。
>>99 string(8) "あいうえ" こんなんでました。
>>108 >>112 察するとおりCSVの1行目は使いたくないので1にしてます。
fgetcsv こんな関数があるとは知りませんでした。
その他いろいろな駄目だしありがとうございました^^;
もっと勉強してみます。
0156130
04/06/18 00:01ID:PKyyDHRx釣りじゃないですよ。。
$s = str_replace("\n", "<br>", $s);
これで出来ました!
教えてくださった方達どうもありがとう!
初心者の頃は釣りみたいな質問をしちゃうってことか・・
0157104
04/06/18 00:02ID:???おっしゃるとおり str_replace では複数の置換を同時に行うと、
置き換えた文字列をさらに置き換えることができてしまうようですね。
結局 preg_replace_callback と str_replace を組み合わせることで解決できました。
どうもありがとうございました。
0158nobodyさん
04/06/18 00:44ID:???\n <-> <br> じゃhtmlが見難くて仕方ない
0162nobodyさん
04/06/18 13:54ID:???普通にtesttestと出るよ
0163nobodyさん
04/06/18 14:34ID:YdLASFW3考えているのですが。。
仮に12件のフィールドが合った場合、本来なら次の10件をおすと残りの2件だけが表示されるべき
なんですが、何故か残りの2件のあとにまた1から表示し(8まで)最終的に10件になるまで表示してしまいます。
データベースに直接、select * from db limit 10 offset10;
とすると正常に2件のみが表示されます。
phpのスクリプトは
$con = pg_connect("dbname=datebase user=postgres password=***");
$sql = "select * from database limit 10 offset $page";
$result = pg_exec($sql);
$count = pg_numrows($result);
for ($i=0;$i<$count;$i++)
{
//処理
}
とこんな感じですが$countに10が入ってしまっている状況です。
phpかpostgresql側なのかどちらで適切か解らなかったので、もしスレ違いでしたら
申し訳ないです。
ご教示お願いします。
0164nobodyさん
04/06/18 15:17ID:kjBT0b/w$pageはどこで定義してんの?
0166nobodyさん
04/06/18 15:24ID:???試す事はまだいろいろありそうなんだが
デバッグの仕方を自力で覚えないと一生スキルあがんないよ
0167nobodyさん
04/06/18 15:33ID:YdLASFW3すいません、記入しませんでしたが既に試してます。limitをはずすってどういうことでしょう??
0168nobodyさん
04/06/18 15:37ID:YdLASFW3if($page=='')
{
$page = '0';
}
.
.
.
if ($page<9)
{
<a href=\"index.php?page=".($page-10)."\">前の10件</a>
<a href=\"index.php?page=".($page+10)."\">次の10件</a>
抜粋しましたがこんな感じです
0169nobodyさん
04/06/18 15:38ID:YdLASFW3{
$page = '0';
}
.
.
.
<a href=\"index.php?page=".($page-10)."\">前の10件</a>
<a href=\"index.php?page=".($page+10)."\">次の10件</a>
0170nobodyさん
04/06/18 15:40ID:???0171nobodyさん
04/06/18 15:48ID:???0172nobodyさん
04/06/18 16:15ID:kjBT0b/wGETで来た$pageの値はどこで受け渡してんの?
0174nobodyさん
04/06/18 16:17ID:kjBT0b/w0175nobodyさん
04/06/18 16:52ID:???質問する以前のレベルだな
0176nobodyさん
04/06/18 17:14ID:???遅レスだが、IEの場合キャッシュがオフだとbmpで保存するらしい
明示的にキャッシュをオンにするといいかも
0177nobodyさん
04/06/18 17:25ID:WxV310Yf画像を削除してその後追加すると削除した画像が一度ページに映り、更新しないと後で追加した
画像が表示されません。。画像の削除は別ファイルで行っています。
どうにか画像追加したときにページの更新まで出来ませんか?
0178nobodyさん
04/06/18 17:55ID:w9rleEeTこのディレクトリーにrwxrwxrwxというパーミッションを与えておいて
以下のスクリプトでaaaの中にbbbというディレクトリを作成して、
bbbの中にfileという名前のファイルを作成しようとしているのですが
bbbまでは作成されるもののfileが作成されません。
<?php
mkdir("aaa/bbb");
$OUT = fopen("aaa/bbb/file", 'w');
flock($OUT, 2);
fwrite($OUT, "test");
flock($OUT, 3);
fclose($OUT);
?>
レンタルサーバーでやってましたが、ほかのレンタルサーバーでもダメでした。
どうやらセーフモードで制限を受けているためのようなのですがセーフモードでも
上記の操作を行う方法が他にあるでしょうか?
よろしくお願いいたします。
0179nobodyさん
04/06/18 18:00ID:???0180178
04/06/18 18:04ID:???bbbのパーミッションはrwxr-xr-xです。
オーナーは自分のアカウントでなくapacheというアカウントになっています。
0182nobodyさん
04/06/18 18:13ID:???class test {
function type( $type ) {
$stack = array();
print( gettype( $stack ) );
function test( $test ) {
global $stack;
print( gettype( $stack ) .": グローバルにした時の変数の型" );
print $test;
}
test( $type );
}
}
$t = new test;
$success = "成功" ;
$t->type( $success );
?>
としたときに、
gettype( $stack )
がNULLを返さずに、arrayを返すようにするにはどうしたらいいですか?
0183nobodyさん
04/06/18 18:18ID:???0184nobodyさん
04/06/18 18:25ID:???0185nobodyさん
04/06/18 18:26ID:???どう考えてもおかしい
0186182
04/06/18 18:30ID:???>>182の文はもとは複雑だったので、簡略化してモデルとして書きました。
本当は上記のfunction typeはXMLパーサーで呼び出されるハンドラ関数なんです。
そして、$stackには現在のXML要素を収めたい配列なんですが、
開始要素、データ、終了要素の各functionで$stackを共有させたいのですが、
できなくて調べていたら、global $stackで共有させると、
データ型が失われて、配列として扱えなくなっているんです…。
ググッてみても、良い参考例がなくて…。かといって、クラス変数にしてもちゃんと
扱ってもらえないので、2日ほどはまっています…。
0187184
04/06/18 18:34ID:???class->function(XMLパーサ)->function(XML処理部分の関数)は成り立つのかと
思ったんですが…。
各function(XML処理部分)を別クラスにまとめた方がいいんでしょうか?
0188nobodyさん
04/06/18 19:33ID:???マニュアル読んだ?header()の項目からたどれば、
ttp://jp.php.net/manual/ja/function.session-cache-limiter.php
こことか
ttp://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
ここを見れば判りそうなもんだけど
0189nobodyさん
04/06/18 19:37ID:???global $statck; がnullになるのは当然。
存在しない変数のnull以外の型情報が返る事はありえない。
0190189
04/06/18 19:39ID:???0191nobodyさん
04/06/18 19:45ID:???それはわかっているし、定義をしているけれど、
クラス内のメソッド内で定義した変数をグローバル変数にして
メソッド内のユーザー定義関数からグローバル変数を参照できない場合、
どうしたらいいのかっていうことを知りたいんだ…。
再利用制なんか考えずに、ひとつのファイルにまとめちゃえばいいんだろうけれどさ。
0193nobodyさん
04/06/18 19:53ID:???初歩の初歩すぎて書くのば馬鹿馬鹿しいが、出来ません。
どうやればできると思ったんだ?
グローバル変数を呼び込んでそれを書き換える。
プログラミング言語のスコープ概念を知りましょう。
> メソッド内のユーザー定義関数からグローバル変数を参照できない
さっきも書いたがグローバル変数は参照できる!
ユーザー定義関数はグローバルスコープでやる!
ユーザー定義関数はメソッド内で定義できない。
クラス概念が分かってないようだが、xmlパーサー関数のクラス粒度が
分からないならpearのxml_htmlsaxを読むと勉強になる。
0194nobodyさん
04/06/18 19:55ID:???こいつも釣りだな。
0195nobodyさん
04/06/18 19:58ID:???クラスの振る舞い定義の中に振る舞い定義があるとはw
ハライテー
0196nobodyさん
04/06/18 19:58ID:???0197nobodyさん
04/06/18 20:11ID:???クラスはともかくスコープが分からなきゃハンドラかけんだろ。
それはわかってる、と言いながらその前の指摘を無視して終わりのない話を
はじめてるあたり、やや釣り的な特徴が出てると言えるな。
0198187
04/06/18 22:08ID:???>> メソッド内で定義した変数をグローバル変数にして
> 初歩の初歩すぎて書くのば馬鹿馬鹿しいが、出来ません。
> どうやればできると思ったんだ?
単純に、メソッドとして定義したfunctionに入れ子にしたfunctionが正常に動作したから。
> クラス概念が分かってないようだが、xmlパーサー関数のクラス粒度が
> 分からないならpearのxml_htmlsaxを読むと勉強になる。
クラスとPEARの繋がりを不思議に思ったけれど、実際に Parser.php を読んで
オブジェクト内部でXMLパーサを使用する場合には、
xml_set_object
を利用しないといけないのね。
どうもありがとう。
他はバカばっかだな。
0199nobodyさん
04/06/18 22:45ID:???$stackをグローバル変数にする意味あるの?
class test {
var $stack;
function type( $type ) {
$this->stack = array();
// 以下略
}
}
みたいにすればいいだけの話では。
0200nobodyさん
04/06/18 23:29ID:???なんでネストした関数が動作するとローカルスコープの変数をグローバル化できることになるのか分からん。
これが出来たらスコープもそうだが関数型プログラミングの存在意義そのものもない。
xml_set_objを使えばナビゲータビリティを双方向化できるが、ハンドラクラス内でハンドラをコールする側を
呼べるようになることと、グローバルスコープの変数を参照することとはまるで関係がない。
(ハンドラに特化したクラスのなかでパースするというのも奇怪なクラス関係じゃないか・・・)
しかもparser.phpってPear::XMLのでしょ? >>193のいうhtmlsaxは全く別のパッケじゃなかったっけ。
君たち会話が成り立ってませんよ。
0202nobodyさん
04/06/18 23:35ID:+ev/OK60もういいんじゃない。
0203nobodyさん
04/06/19 00:59ID:???ですよね?
だけどjpgで保存できませんyo
0204nobodyさん
04/06/19 05:58ID:???stream_context_createでhttpのheaderに Range: bytes=256-\r\n を追加してコンテクストリソースを作った。
よしということで、file_get_contents('http://example.com/example.html', null, $context); とやってみたんだけど、
Warning: file_get_contents(http://example. . . ): failed to open stream: HTTP request failed! HTTP/1.1 206 Partial Content
というエラーがでてデータが取れない。
206が返っているからサーバは問題なく処理したようなのだが、
となるとphpが206応答をハンドリングできないということなのだろうか。
結局ソケットストリームでちまちまとやることになったのだが、上の疑問は残った。
コンテクストを使った部分的GETは出来るぞ、とかトリビアがあれば希望。
0205204
04/06/19 06:14ID:???TCPパケット見たらやっぱりデータの受信自体には成功してる。
なんだろう。PHP 5.0.0RC3なんだけど、RCだっつーのにバグかな、、。
0208nobodyさん
04/06/19 18:00ID:???$date = "2004-06-17 12:00:00";
sscanf( $date, "%s-%s-%s %s:%s:%s", &$Y, &$M, &$D, &$H, &$m, &$S );
print( $Y.$M.$D.$H.$m.$s );
を
20040617120000
として出力したいんですが、
2004-06-17
と出力されます。いろいろ試してみた結果、日付に含まれる「-」が原因だとわかったのですが、
意図した出力にするためには、どうしたらいいのかわかりません。
sscanfのリファレンスを見ても、何も書いていないので、
おそらくフォーマット文字列と関係あるとは思うのですが…。
0209nobodyさん
04/06/19 18:17ID:???天然ですか
>>208
http://jp.php.net/sprintf
0210nobodyさん
04/06/19 21:06ID:???どういう方法が一般的でしょうか?
期限をDBへ保存するので、その数字を見たときにすぐ分かるようにもしたいので
time関数以外でしたいのですが。
今のところ、date('YmdGis')の形式の数字を比較という方法を思いついたのですが、ほかに一般的な方法ありますか?
0211nobodyさん
04/06/19 21:25ID:???DBではTIMESTAMP型で記録しておけば、取り出したときにはPHPの文字列型に
なっているはずだから、それを strtotime() で数値 (UNIX epoch からの
通算秒)に変換するとか。
0212vv
04/06/19 22:12ID:???クラスをまとめた.phpファイルをrequireして読み込むと
Echoしていないのにブラウザにクラスの内容が表示されてしまいます
require ("/class.php");
とすると
class userclass { var $name; var $region・・・
という風にブラウザ上部にクラスの内容が表示されてしまいます
これって何??
0213nobodyさん
04/06/19 23:08ID:????>
で囲んでる?
0214nobodyさん
04/06/19 23:22ID:???$date = "2004-06-17 12:00:00";
print(date("YmdHis", strtotime($date)));
0215212
04/06/20 00:15ID:TK4JxxLi須磨祖
0216208
04/06/20 00:54ID:???ありがとう。今実行して動作確認を行って、意図した結果になりました。
ところで、>>209のsprintでどうやったら、意図する結果になるんですか?
思いつく限り、やってみたんですが、実行結果と意図が違うのですが…。
0217208
04/06/20 00:56ID:???おかげで英文形式の日付なんてのも勉強になりました。
http://www.gnu.org/software/tar/manual/html_chapter/tar_7.html#SEC111
0218nobodyさん
04/06/20 03:09ID:???You should press Tablator ten times,
...And EnterKey! :-)
0219nobodyさん
04/06/20 03:09ID:???0220vvv
04/06/20 04:56ID:???無理なんでしょうか?
class userclass{
var $name;
var $address;
}
$class=new userclass;
$class->name="名前";
$class->address="住所";
$value["20040620"]=$class;
$s = serialize($value);
$fp = fopen($path, "w");
flock($fp,LOCK_EX);
fputs($fp, $s);
flock($fp,LOCK_UN);
fclose($fp);
0222vvv
04/06/20 11:22ID:???保存自体ができんのよ
0223nobodyさん
04/06/20 12:15ID:???うちでは上のスクリプトに$pathを設定したら動いたよ。unserializeも確認済み。
0224220
04/06/20 12:49ID:???痛すぎた スマソ
0225nobodyさん
04/06/20 13:19ID:e+KlAhh1,r' /=ミ
/ 彡ll',''´
. / 彡lll
!-- .、 ,、、、、,,, 彡lノ
l,,,,,__ / ___ 'r''゙ヽ
. |`゙'' ./ `'゙'''" .〉,l |
|. ,' //
. ',. ,' , r'
. ゙, ゙'ー ‐` l |
゙、''゙ ,,、二''‐ ノ l、
''''''''7'ヽ ''' / /`〉`゙T''''''''''
l ` 、,,,,、- ' " / /.| |
. | | .l i / ./ | |
| | | l / ./ .| |
. | | | l / / | |
| | | ', / / l .l
【ゴールデンレス】
このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
0226nobodyさん
04/06/20 15:33ID:???例えば掲示板の本文($msg)の中のJsky絵文字($E> 等)だけに
htmlspecialcharsを施したくない場合はどうすればいいでしょうか。
0228nobodyさん
04/06/20 16:02ID:6Dgt7SHl$im2 = ImageCreateFromJpeg("test.jpg");
header("Content-type: image/jpeg");
ImageJpeg($im2);
ImageDestroy($im2);
というphpファイルにアクセスしてブラウザに表示させようと
しているのですが、うまく表示されません。(IEだと壊れたイメージ
アイコンになる)
ImageJpeg($im2,"o.jpg");
としてファイルに書き出して、そのファイルにアクセスすると
ちゃんと見れます。
なんか原因わかりますでしょうか。
OS: linux
PHP: 4.1.2
apache: 1.3
GD version: 1.6.2 or higher
となっています。
0229nobodyさん
04/06/20 18:03ID:???0231nobodyさん
04/06/20 18:49ID:???しかしデータの受信に成功してるという部分が読めてないことを考え合わせるとマニュアル権威言霊主義かな。
ファイルが何なのか分かっていないらしいから、一般的なデータ構造についてはまだググってないと見える。
アンチマニュアルのあつまるこのスレではかなりの希少思想者だと言える。
とりあえずエラーを吐いてるのはfile.cではなく別のソース部分だよ、とヒントを与えてみるが、さて。
0232nobodyさん
04/06/20 19:08ID:QviSJ75H和訳できんのかなんていってるんだからただの糞厨房にきまってんだろ。
しかもファイル全体を読み込むからとか言語障害くせーぞ。
すげー無駄だわ。
>>228
スクリプトは問題ないし、GDのバージョンかなあ。
0233nobodyさん
04/06/20 19:39ID:???つーかRedhat?
あれにデフォルトでのってるphpを使うといろいろ苦労が絶えないらしいね。
0234204
04/06/20 20:16ID:???>>231が少し書いているが、これは本質的にはfopenの問題なのでfile_get_contents()だけじゃなく、
fopenのhttpラッパーをとるhttpアクセスすべて(要するにコンテクストをつかったもの)で起こる。
因みに、本家のバグリポートはこの問題の修正には極めて消極的で、
あきらめるしかないようだった。
荒れぎみなのでこの話はこれで終了ということにしてほしい。
以上。
0235nobodyさん
04/06/20 20:32ID:Uv3J3abeバッチファイルからローカルでPHPを処理するプログラムを書きました。
ファイル名の一括置換プログラムなんですが、
foreach($rename as $var){ //$renameは置換条件を記した配列
$n = $newfilename;
$newfilename = preg_replace("/$var[0]/i","$var[1]",$newfilename);
if($n != $newfilename) print "$n\n"; //四行目
}
として、preg_replaceで文字置換を行っているんですが、
日本語ファイルの場合、必ず ー(伸ばす音) が ・ に文字化けします。
四行目では、preg_replaceを通す前と通ったあとが違う場合に変化を表示させようと
したのですが、改名条件にはまったく ー を入れてないのに、
文字が変わってしまいます。
本バージョンで、文字化けなどのバグは報告されたりしてるんでしょうか
ググったら前のバージョンでの文字化けの情報があり、 ←参照ttp://jp.xoops.org/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=1998&forum=11&move=next&topic_time=1063857527
php.iniの設定をいじってはみたのですが変わりません。
0236nobodyさん
04/06/20 20:41ID:???キチンと質問文かけば偉い人が教えてくれるかも。
0237nobodyさん
04/06/20 20:51ID:???そうなるとphpの問題じゃなくなるか。環境しだいですな。
0238nobodyさん
04/06/20 20:55ID:???ところでphpの日本ユーザ会ってアクティブにやってんの?
まるで話を聞かないんだが。
googleの検索順位ではいつのまにかphp研究所を抜いてるね。
0239nobodyさん
04/06/20 22:00ID:PqNZ37ceスクリプトの途中で
いろんなファイルにリダイレクトしたいのですが
どうしたらよいですか?
0240228
04/06/20 22:12ID:???どうも。結局原因不明のままファイルに書き出すように
仕様変更しました。
ちなみにDebian (woody)のパッケージ物でした。
本番環境は自分のいじれない環境なので、自力コンパイル
することもできず。。
0241235
04/06/20 23:01ID:Uv3J3abe文字コードはphp.ini で
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none
にあわせたんですが、どこの設定を見直せばいいのでしょう
参考の参考ていどでもアドバイスがいただければお願いします
0242nobodyさん
04/06/20 23:11ID:???>PHP: 4.1.2
この頃のPHPでoutput_handlerにmb_output_handlerを使っていると、
Content-Typeを見ずに画像もコード変換するので画像が壊れるんだが
(phpinfoのロゴまで壊れてくれる)、その現象じゃないのか?
0243nobodyさん
04/06/20 23:11ID:???0244nobodyさん
04/06/20 23:20ID:???そんなことはない。確かにメジャーな組み合わせだけどね。
Webサーバ用インターフェースはCGIも含めて色々あるし、CLI(コマンドライン)版もある。
0247nobodyさん
04/06/20 23:36ID:???PHP Warning: Unknown(): Unable to load dynamic library '/usr/lib/php/extensions/mysql.so' - libmysqlclient.so.12: cannot open shared object file: No such file or directory in Unknown on line 0
orz
0249nobodyさん
04/06/20 23:44ID:???0250nobodyさん
04/06/20 23:54ID:???>>247のエラーは、php.iniにauto_prepend_fileを設定してあるんではないかと。
外しているかもしれんが。
設定してあったとしても、そういうエラーが出るのは不思議だが、
使ったこと無いので、わからんぽ。
0251nobodyさん
04/06/21 00:19ID:???winの文字コードからスクリプト内で扱っている文字コード(euc-jp)に
コンバートして、書き込み時は逆変換すればおkと思われ。
0252nobodyさん
04/06/21 00:26ID:???Error in argument 1, char 2: option not found r
Usage: php [-q] [-h] [-s] [-v] [-i] [-f <file>]
php <file> [args...]
-a Run interactively
-C Do not chdir to the script's directory
-c <path>|<file> Look for php.ini file in this directory
-n No php.ini file will be used
-d foo[=bar] Define INI entry foo with value 'bar'
-e Generate extended information for debugger/profiler
-f <file> Parse <file>. Implies `-q'
-h This help
-i PHP information
-l Syntax check only (lint)
-m Show compiled in modules
-q Quiet-mode. Suppress HTTP Header output.
-s Display colour syntax highlighted source.
-v Version number
-w Display source with stripped comments and whitespace.
-z <file> Load Zend extension <file>.
できないヽ(`Д´)ノ
0254nobodyさん
04/06/21 00:32ID:???0255nobodyさん
04/06/21 00:39ID:rIRMytTYzlib libjpeg libpng GDをインストールした後、
./configure --with-zlib-dir=/usr/local/lib --with-gd --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/local/lib
make
make install
としたのですが、
なにか他にやることがあるのでしょうか?
OS: linux
PHP: 4.3.6
apache: 1.3
0256nobodyさん
04/06/21 01:36ID:???FAQ を読むこと
0257235
04/06/21 02:16ID:U3ATJTTUアドバイスありがとうございます。
それってphp.iniの設定ですよね?
今色々調べながら苦戦中です。文字コードを変えたら
日本語がまったく表示できなくなったりして
0258nobodyさん
04/06/21 02:31ID:???一応PHP.net等のFAQは見てみたのですが、参考になりそうなのがなさそうでした。
見つけられないだけかもしれません。
PHP付属のがあるので、GDは特に自分ではインストールする必要がなかったのでしょうか
0259nobodyさん
04/06/21 02:48ID:???iniの設定であわせてもいいし、251にあるようにスクリプト内で変換してもいい。
phpで参照する場合には、内部エンコードに合わせ、最終的な出力時にはwinの
コードにあわせて変えればいいだけ。
必要なことは全部マニュアルに書いてあるので、他は色々調べる必要なし。
http://www.php.net/mbstring
要するに内部エンコとwinのエンコが違うなら、当然一手間かける必要があるということ。
文字コードはいつまでもついて回るので自分で分かったと思えるまでやったほうがいいのです。
0260257
04/06/21 03:19ID:U3ATJTTU何度もすみません、ご指定のページを自分でも見つけてやってはみたのですが、
もとのphp.iniに追加モジュールのphp_mbstring.dllをsystem32に追加して
追加モジュールを受けるように php.iniのその行の;をはずしました。
あとは例2にあるようなEUC-JP ユーザ用のphp.iniの設定に直せばいいんですよね
php.iniはそのページの設定どおりに変更したはずなんですが、どうしても
伸ばす音が文字化けが消えないのですが、他にいじるところはあるのでしょうか
preg_replaceでもmb_ereg_replaceでも変わらないのですが・・・
0261nobodyさん
04/06/21 03:28ID:???windowsから受け取ったらeuc-jpに、windowsに渡すときはsjisにコンバートかければよいかと。
mb_convert_encoding($string, 'euc-jp', 'sjis');みたいな感じでつ。
0262nobodyさん
04/06/21 03:29ID:???まあそのへんは適当に(^^);
0263nobodyさん
04/06/21 04:38ID:t8xSnGRb渡す前の中身は "%001%002%003%004%005" なのですが、これを$_GETや$_POSTで拾おうとすると
"\01\02\03\04\05\" という文字列に変わってしまっています。
これを元に戻す、もしくは上手く拾う方法は無いでしょうか?
0264263
04/06/21 09:55ID:???stripslashesでした。
0269nobodyさん
04/06/21 16:30ID:???libmysqlclient.so.12 をPHPがロードしようとして、
見付からなくて止まってるんだな。
find /usr -name libmysqlclient.so.12 で探して、
見つけたディレクトリを /etc/ld.so.conf に書き加えて、
ldconfig しとけ。
0270sage
04/06/21 17:23ID:???umask(0);
if(mkdir("/hoge/hoge", 0707)) {
...
} else {
...
}
これで同名のディレクトリが存在した場合に
Warning: mkdir(/hoge/hoge): File exists in /***/result.php on line --
と、警告がでてしまいます(処理は流れきっているぽい)
できればこの警告を表示させたくないのですが
なにか対処方法はありますでしょうか
0271sage
04/06/21 17:24ID:???umask(0);
if(mkdir("/hoge/hoge", 0707)) {
...
} else {
...
}
これで同名のディレクトリが存在した場合に
Warning: mkdir(/hoge/hoge): File exists in /***/result.php on line --
と、警告がでてしまいます(処理は流れきっているぽい)
できればこの警告を表示させたくないのですが
なにか対処方法はありますでしょうか
0272nobodyさん
04/06/21 17:52ID:???umask(0);
if(!file_exists("/hoge/hoge") && mkdir("/hoge/hoge", 0707)) {
...
} else {
...
}
でどぅ?
単にエラー表示したくないのなら
error_reporting(0);
0273nobodyさん
04/06/21 18:43ID:???0274nobodyさん
04/06/21 18:46ID:???そのエラーの発生要因が判っていて、かつ、
そのエラー発生を防ぐ為だけにとまどろっこしくなる(複雑になる)
のなら、エラー制御演算子
ttp://jp.php.net/manual/ja/language.operators.errorcontrol.php
を使うといいかも。
臭いものには蓋的な解決法なんで、>>272の方がいいけど
0275nobodyさん
04/06/22 10:25ID:???PHPからmysql_queryするとエラーが出る場合、SETする文字に問題があるとは
想うのですが、どんな文字が原因となっていると考えられるしょうか?
mysql_query($query)の部分をecho $queryで出力してC&PでphpMyAdmin
のSQLで実行すると成功します。文字コードも関係しているのでしょうか?。
0277275
04/06/22 10:53ID:???と書いていたせいでした。お騒がせしましたm(_)m。
>>276
アドバイスありがとう^^
0278nobodyさん
04/06/22 16:04ID:5HQSlaavセッション以外に格納できる良い場所はないでしょうか?(毎回ページアクセスするたびにDBにアクセスされたくないため)
0279nobodyさん
04/06/22 16:07ID:???0280nobodyさん
04/06/22 16:47ID:uF7//6+H0282nobodyさん
04/06/22 16:56ID:???0284nobodyさん
04/06/22 18:39ID:???0285nobodyさん
04/06/22 19:41ID:???0287nobodyさん
04/06/23 08:56ID:???診断君へ逝く
もしくはLAN外で、<?=$_SERVER['REMOTE_ADDR']?>
または、>>281
2.プライベートIPが知りたいなら
LAN内で<?=$_SERVER['REMOTE_ADDR']?>
もしくは、Windowsだったら、ipconfig
Linuxだったら、>>285
3.メアドが知りたいなら
ISPに聞く。
4.住所が知りたいなら
>>283
たぶん…3かな。
0288nobodyさん
04/06/23 09:04ID:???出力バッファに貯めておいて横取りしてファイルに出力する。
<?php
ob_start();
?>
(ここでいろんな出力)
<?php
$file = fopen('ファイル名','w');
fputs($file, ob_get_clean());
fclose($file);
?>
0289nobodyさん
04/06/23 12:22ID:gFRZUYHbは、PHPではどうやるのでしょうか?教えてください、お願いします
0290nobodyさん
04/06/23 12:23ID:gFRZUYHbPHP5.0β4
Apache2.0.48
です。
0291nobodyさん
04/06/23 12:30ID:???csvファイルのアップロードをするのに、fgetcsv関数をつかってるんですが
excel2000で"," をという値で保存したcsvファイルをアップロードすると,"と読み込まれます。
これは仕様でしょうか?
PHP Version 4.3.6を使っています。
よろしくお願いします。
0292うんこ
04/06/23 12:40ID:???http://jp.php.net/reserved.variables
0295nobodyさん
04/06/23 12:53ID:???すいません。
エディタで見たのですが、わかりませんでした。
こちらのほうで正常に読み込まれたのでこちらをつかう事にします。
http://pukiwiki.org/index.php?%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%2Fcsv2newpage.inc.php
0296nobodyさん
04/06/23 14:01ID:???0297nobodyさん
04/06/23 14:20ID:qX+B9Isgis_numeric($str)
0301nobodyさん
04/06/23 15:06ID:???これで文字列に \ を入力すると どんどん増えていきます (バイバイン級)
どうしたらいいでしょうか
送信前にJavaScriptでurlencodeしなきゃだめ?
0302nobodyさん
04/06/23 15:17ID:???<INPUT NAME="unko" VALUE="<?= stripslashes($_GET['unko']) ?>">
0305nobodyさん
04/06/23 15:39ID:???0306nobodyさん
04/06/23 15:44ID:???$kurimanju = $kurimanju * 2;
return $kurimanju;
}
0309301
04/06/23 16:11ID:???まあそうなんだけどさ
VALUE="<?= urlencode(stripslashes($_GET['unko'])) ?>"
ってやってもだめだったし
preg_replace("/\"/","\\\"",$dpreg) でもだめだった
そもそも"\""という表記がだめっぽだし
シングルクオーテーションで囲えばいいんだけど
今度はそのシングルクオーテーションが入力できなくなるし
もうおっぱいおっぱいなんですよ
0311nobodyさん
04/06/23 16:15ID:jqDhu+uCVALUE="<?= urlencode(htmlspecialchars(stripslashes($_GET['unko']))) ?>"
0313nobodyさん
04/06/23 20:26ID:15bnd+/J$key=mb_convert_encoding($_POST["keyword"], "EUC-JP","auto");
で文字コードを変換すると、変換したくない他の検索エンジンもEUCに変換されてしまうのですが、
変換されないようにするにはどうすればよろしいのでしょうか。
<?php
$Key=urlencode($_POST['keyword']);
$key=mb_convert_encoding($_POST["keyword"], "EUC-JP","auto");
switch($_POST['engine']) {
case "kakaku": $url="http://www.kakaku.com/txtsearch/txtsearch.asp?SearchWord=";
break;
case "yahooauction": $url="http://search.auctions.yahoo.co.jp/jp/search/auc?auccat=0&alocale=0jp&acc=jp&p=";
break;
}
header("Location: ".$url.$Key);
?>
0315nobodyさん
04/06/23 20:38ID:???方法は色々あるけど、件のソースのようにswitchで
切り替えてるなら、caseの中でそれぞれのサイトに合わせて
$key←$_POST["keyword"]の処理をしたらいいでそ。
最も、各サイトのurlとか変換処理の有無なんかは
配列かなんかで前の方で設定を集約するのがスマートやね。
0317nobodyさん
04/06/24 11:14ID:Ig3nklaT昔のPHPはGETやPOSTなど区別する必要が無いと効いています。
例えば、
$_POST["giko"] : 10
$_GET["giko"] : 20
$_COOKIE["giko"] : 30
$_SESSION["giko"] : 40
のような場合のときに、
echo $giki
とすると何が表示されるのですか?
0318nobodyさん
04/06/24 11:40ID:???0322nobodyさん
04/06/24 12:36ID:???variables_orderで指定した優先度の高い(右側)ものが入る。
通常の$_SERVER[]と同じ。
ああ、PHPの設定で変わるもんだから、仮にPOSTが無かった
時にはGETでという処理を書くときも、システムの動作に
依存させないで、ちゃんとコーディング上で処理しないと駄目。
# register_globalsはコードの中でini_setできないし
0323nobodyさん
04/06/24 13:35ID:???register_globals = Offで使おうとしてこうやった事あるw
$key = array_keys($_REQUEST);
$i = 0;
while(isset($_REQUEST[$key[$i]])){
${$key[$i]} = $_REQUEST[$key[$i++]];
}
0324nobodyさん
04/06/24 13:46ID:???0325nobodyさん
04/06/24 13:49ID:???0326nobodyさん
04/06/24 16:35ID:???0327317
04/06/24 17:36ID:???自分ではそのようなかき方はしないのですが、
頂いたソースがそのように書いたものでしたので。
0328nobodyさん
04/06/24 20:43ID:???@function_name で呼出してる例があって
探したんだけど@についての説明を見つけることができませんでした
@つけるとどうなるんですか?
0329nobodyさん
04/06/24 21:54ID:???0330nobodyさん
04/06/24 22:26ID:WjPQG3mJphpのソースをプレーンテキストとして表示させるにはどうしたらよいでしょうか?
apacheの設定なのか拡張子をtxtに変えただけでは、プレーンテキストとして表示してくれません。
よろしくお願いします。
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ファイルに追加書き込みしていった方が後で集計するのも楽だと思いますが。
0431nobodyさん
04/06/28 17:58ID:???スクリプトを見てみないと分からないけど上書き処理で前のデータが消えるんだろうね
それより閲覧する場合は投稿分のファイルを全部オープンする気だろうか・・・
ログを生成して保存してるのかなぁ
1つのスクリプト内でMYSQLに頻繁にアクセスする場合、その都度
mysql_connect('localhost:3306','id','pass');
と、みなさんは書いてますか?
classやfunction内でmysql_connectを書いてるのが美しくない気がしてならない
0432nobodyさん
04/06/28 18:42ID:???美しい美しくない以前にリソースの無駄遣いのような...
グローバルスコープで$my = mysql_connect();して
関数やクラス内でglobal $my;するとかではだめっすか?
PEARのDB_DataObjectのソースが参考になるかと。
0433nobodyさん
04/06/28 18:43ID:???書き込もうと思ったファイルが存在したら、乱数秒待機させるとか。
>MYSQLに頻繁にアクセスする場合
単一コネクションで済む場合は、普通コネクションは使いまわしだわな。
コネクション張るのにコスト(PHPの場合は少なくて済んでるけど)が必要だから。
0434nobodyさん
04/06/28 19:17ID:l4cOKm4nindex.php
<?php require("hogehoge.inc");?>
<? echo $hogehoge_1;?>
hogehoge.inc
$hogehoge_1=123456
とすれば123456と返ってくると思うのですが。
これを
$_GETを使って
ttp://127.0.0.1/index.php?main=1 もしくは
ttp://127.0.0.1/index.php?main=2
index.php
<?php require("hogehoge.inc");?>
<? echo $hogehoge_$_GET['main'];?>
hogehoge.inc
$hogehoge_1=123456
$hogehoge_2=78910
などで呼び出せないものでしょうか。
<? echo $hogehoge_$_GET['main'];?>を
<? echo $hogehoge_{$_GET['main']};?>
にした場合、夢だったのか呼び出せたように思えたのですが、、(2日ほど寝ていないので・・)
わかる方よろしくお願いします。
0435nobodyさん
04/06/28 19:38ID:???今日はもうやめるか
0436nobodyさん
04/06/28 19:52ID:???俺個人的には可変変数は気持ち悪い。。。
0437nobodyさん
04/06/28 20:02ID:???うぉ〜〜ありがとうございます!
できました!(ノ_・。)
とてもうれしいです!
今夜はゆっくり眠れそうですw
<(_ _)>
0438nobodyさん
04/06/28 20:18ID:???文字化けするようになったのだが、
どんな原因が考えられますか?
昔は全然なかったような気がするだけどなぁ、なんでやろ。
0440nobodyさん
04/06/28 21:37ID:O2HF8evSphp.iniのSMTPの内容をそのサーバ名に指定してもメールが送れません。
mb_send_mailでもmailでも戻り値はTrueです。
また、Webサーバからはちゃんとtelnetでそのメールサーバにつないで
メールを送ることはできていますがPHPで送信しても
ログにも残っていないんでデータが渡せていないっぽいんですが・・
他にも設定しないといけないところがあるのでしょうか?
0441nobodyさん
04/06/28 22:03ID:???マニュアルのmail関数のあたりに詳しく書いてあるのだけど、
Windows版の場合はメールサーバに渡してくれて、
それ以外の場合はsendmailプログラム(not サーバ)に渡してくれる。
鯖OSを書いてないから勝手にirixだと仮定して話を進めるけど、
mail()がtrueになってるってことは、Webサーバのメールプログラム(ややこしいな..)を
呼び出していてそこで溜まってるんじゃないかな。
で、解決方法はと言うと、Webサーバのメールサーバ設定をきちんとするか、
メールサーバとsocket通信をするか、くらいかな。
0442nobodyさん
04/06/29 00:49ID:zFB2Z8eM<?php
setcookie("bbs_name",$_POST['name'],(time()+60*60*24*30),"","",0);
?>
<html><head><title>掲示板</title></head><body>
<form action='このファイル自身' method='post'>
<input type='hidden' name='action' value='regist'>
名前<input type='text' name='name' value="<?php echo $_COOKIE['bbs_name'] ?>">
<?php
if ($_POST['flags'] == 'return') {
echo "<input type=submit value=[" . $_POST['return'] . "]に返信>\n";
echo "<input type=hidden name=ress value=" . $_POST['code'] . ">\n";
} else {
echo "<input type=submit value=書き込み/更新> <input type=reset value=リセット>\n";
}
?>
以下、記述が続きます・・・
上記の記述でサブミットボタンを押し、1回目に更新した時には、
名前入力欄に前回入力した内容が表示されるのですが、
2回目に更新をかけると、全て消えてしまうのです。
いったい何が原因なのか、わかる方、ご教授下さい。
0443nobodyさん
04/06/29 01:40ID:???submitボタンを押して更新しているから大丈夫っぽだが、
前後の取り合いが判らんので、念のため、
if($_POST['name']) {
setcookie("bbs_name",$_POST['name'],(time()+60*60*24*30),"","",0);
}
ってするとどうなる。
#どうなる。って聞きながら今日はもう寝る。l
0444nobodyさん
04/06/29 01:51ID:2uVjJIh2--------------------------------------------------------------------------------
送信側でりんごとみかんとどっちか選ぶ選択肢があって、
処理側でりんごとみかんをどっち選んだかの結果を表示し、
かごの中にはりんごは今 個です
かごの中にはみかんは今 個です
と表示させたいのですが、どうしてもできないんです。。
セッション関数、formタグのinputを使ってもいいみたいなんですが・。・・
0445nobodyさん
04/06/29 01:55ID:???/ 冫、) / 冫、)
/ ` / / ` /
/:::::::::::\ /::::::::::::;\
//:::::::::::: l | //´|::::::::::::l |
//|::::::::::::/| | >>444 // /::::::::::::/| |
U |::::::::::/. U ↓ U |::::::::::/ U
|::::||::| | | /⌒ヽ/ |::::||::|
| / | | | / ´_ゝ`) | / | |
// .| | / __ ,/ // | |
// | | | / | | // | |
U U U U U U
0446nobodyさん
04/06/29 02:00ID:2uVjJIh2<head>
<title>課題</title>
</head>
<body>
<center><h2>ワークシート4</h2></center>
<form action = "worksheet4.php"method = "POST">
<center>
お名前<input type="text" name="username">
<br>
メールアドレス<input type="text" name="mail">
<br>
郵便番号<input type="text" name="bango">
<br>
住所<input type="text" name="zyusyo">
<input type="submit" name="submit" value="登録!">
<br>
<input type = "hidden" name ="product" value="Apple"><br>
<input type = "submit" value = "かごに入れる">
<input type = "hidden" name ="product" value="Orange"><br>
<input type = "submit" value = "かごに入れる">
</center>
</form>
</body>
</html>
というふうにしたんですが、オレンジとりんごを選択するタグって何をつかうんですが?
0447nobodyさん
04/06/29 02:08ID:9Mhdwhm6fgetcsvには文字化けするという問題があります・・・。
fgetcsvに相当する関数を自作すれば良いと言われましたが、
そんな事できませんです。
だれか fgetcsvに相当する関数作った事ある、知っている
という方 教えて下さい。
0448nobodyさん
04/06/29 02:14ID:???へぇ、初耳。
> fgetcsvに相当する関数を自作すれば良いと言われました
ext じゃなくて PHP によるユーザー定義関数の自作、でしょ。
余裕で可能。
0449nobodyさん
04/06/29 02:36ID:???ereg_replace("(https?|ftp) 〜〜
上記のようにURLを判定し、文字列をリンクするよう置換しています。
これに当てはまらない場合でよく見かける直リンク避けの「ttp」から始まるものも
違う文字列に置換したいのです。
ereg_replace("(ttp) 〜〜
このようにしてしまうと上に書いた通常リンクのものと衝突してしまいますし
ereg_replace("(^ttp) 〜〜
このようにすることでそれらの問題は回避でき、望みの動作をするのですが
本文の一番最初にURLが記載されないといけないので不都合です。
例えば 「あいうえおttp://hogehoge/」 という投稿があった際にも
置換処理を行いたいのですが、いい方法はないでしょうか?
0450nobodyさん
04/06/29 02:37ID:???>fgetcsvには文字化けするという問題があります・・・。
>fgetcsvに相当する関数を自作すれば良いと言われましたが、
その話が話題になったところで回答出てるだろ。
人づてで聞いたなら、聞いた人に訊け。
0455nobodyさん
04/06/29 09:55ID:???何ができないの?プログラムを作ったことがないのか?
0.前処理(ファイルオープン、DBトランザクション開始とか)
1.1行読み込む
2.ファイルエンドまで繰り返す
3. 読み込んだバッファをカンマ(,)をセパレータにして区切る
4. (必要に応じて、フィールド数が想定したものと違っていたらerrorとする)
5. (必要に応じて、フィールド後のチェックを行う)
6. (必要に応じて、DBテーブルに格納してもいいかも)
7. 1行読み込む、2のループへ
8.後処理(ファイルクローズ、DBコミットとか)
※1、フィールドのダブルクオート(")囲みを想定している場合、3.の処理でダブルクオート(")を
取り除く処理が必要、データ中にカンマ(,)ダブルクオート(")を許す場合はさらに複雑
※2、フィールド中に改行を許す場合は2.7.のと読み込み処理にも工夫が必要
0456nobodyさん
04/06/29 13:12ID:???> ※1、フィールドのダブルクオート(")囲みを想定している場合、3.の処理でダブルクオート(")を
> 取り除く処理が必要、データ中にカンマ(,)ダブルクオート(")を許す場合はさらに複雑
> ※2、フィールド中に改行を許す場合は2.7.のと読み込み処理にも工夫が必要
この条件が満たされないと、CSVを読み込めるとは言えないでしょう。
0459nobodyさん
04/06/29 14:38ID:???ところが、用途が限定されていれば、1行読んでカンマで切り分けるだけすむ場合も良くあるよ。
必要ないなら、わざわざ汎用的なCSV読み込みプログラムを作る必要もない。
どっちにしろ>>457の言う通り、大した事じゃない。
0460nobodyさん
04/06/29 16:17ID:???引っ張ってきたのかと思ってスルーしてたよ
0462nobodyさん
04/06/29 16:45ID:8D9V5eyp+という文字が2回以上続いた場合、+一個にしたい。
+++→+
++→+
+→そのまま
0463nobodyさん
04/06/29 16:49ID:???質問の仕方もどうにかしてくれ。
0464nobodyさん
04/06/29 17:10ID:???Apache1.3.28とPHP4.3.7でオフラインでやっているのですが、html内に記述したPHPが実行されなくて
困ってます。
PHP単体だと問題なく動作します。
例えば、
//----------------
<?php print "テスト"; ?>
//----------------
これで **.phpとすれば問題なく表示されますが、
//----------------
<html><body>
<?php print "テスト"; ?>
</body></html>
//----------------
これだと何も表示されません。
何が原因として考えられますか?
インストールには下記のサイトを参考にしました。
ttp://www.dream-seed.com/server/php_apache.html
0466464
04/06/29 17:18ID:???書き忘れてました。
下の方は **.htmlです。
0467nobodyさん
04/06/29 17:27ID:???0469nobodyさん
04/06/29 18:26ID:???0470nobodyさん
04/06/29 19:00ID:???imodeはutnで問題無く取得できたのですが、
ezwebではうまく取得できません。
サブスクライバIDを取得すればいいというのは分かったのですが、
実機(auのwin)で検証してみると、「表示できません(未対応)」
というようなエラーがでてうまく動きません。
プログラムの書き方が間違っているのでしょうか?
プログラムは以下です。
if( ereg( "UP.Browser", $_SERVER['HTTP_USER_AGENT'] ) )
{
$headers=getallheaders();
$post['sub'] = $headers['x-up-subno'] ;
}
よろしくおねがいします。
0471nobodyさん
04/06/29 19:34ID:???0472nobodyさん
04/06/29 19:47ID:???}else if(! is_numeric($YEAR) or is_numeric($MON) or is_numeric($DAY)){
print "<CENTER>生年月日を正しく入力してください。<BR>";
print "ブラウザの「戻る」で前のページにお戻りください。</CENTER>";
と、やってみたのですが、生年月日に半角数値を入力しても
「生年月日を正しく入力してください。」と表示されます。
これはいったい何が原因なのでしょうか?
0475nobodyさん
04/06/29 20:01ID:???書 い た コ ー ド を よ く 見 直 せ
久々にこのスレ見てるけど、前に比べてさらに悪化してるよ、ママン _| ̄|◯
ちょっと試してみるか考えてみれば分かるだろうに、、全員釣り?
0477472
04/06/29 20:02ID:???<TR>
<TD bgcolor="#0000ff" align="center"><FONT size="2"><B><FONT color="#ffff00">生年月日</FONT></B></FONT></TD>
<TD bgcolor="#ccccff"><FONT size="2"><INPUT size="5" type="text" maxlength="4" name="YEAR" VALUE="<?php echo
$YEAR ?>">年<INPUT size="5" type="text" maxlength="2" name="MON" VALUE="<?php echo $MON ?>">月<INPUT size="5" type="text" maxlength="2" name="DAY" VALUE="<?php echo $DAY ?>">日<BR>
生年月日を入力してください。</FONT></TD>
</TR>
0478nobodyさん
04/06/29 20:09ID:???ついでに、
if (条件式1 or 条件式2 or 条件式3)
{
処理
}
となっている場合、条件式 1 から順に真か偽をチェックし、
ある式が真を返した時点で残りの式のチェックをスキップし処理に入る。
これで見直してみそ。
それでもわからんかったら条件式を最初の一つだけにして、その後徐々に増やしながら確認してみろ。
>>472
タグはこれでつじゃなくてさ、、、
プログラムは正しく動いている。
おまいの意図した通りではなく、おまいの書いた通りそのままに。
あとついでに
> ブラウザの「戻る」で前のページにお戻りください
こんな処理組むのやめて、、キャッシュ効かなかったら入力全部飛ぶぞ。
QuickForm とか適当なライブラリ使うか入力値の継承しような。ちゃんとサニタイズしろよ。
0479nobodyさん
04/06/29 20:27ID:???ttp://jp.php.net/manual/ja/language.operators.php#language.operators.precedence
この辺読んどけ
0480nobodyさん
04/06/29 21:06ID:szUQP7IW韓国語文字のutf-8コードからiso-2022-krへの変換等を行いたいんですが。。
PHPのバージョンが4.2なので、mbstringが韓国語をサポートしていません。
どなたかご存知の方がいらっしゃったらよろしくお願いいたしますmm
0482nobodyさん
04/06/29 23:09ID:bB0o4iTw渡された引数のファイルの更新を行うスクリプトがあるのですが、
30人程が更新を行う際に同じスクリプトを30人で使うのと、
引数を使わないで30個の専用のスクリプトを用意するのではリソースは変わりますか?
0483nobodyさん
04/06/29 23:27ID:???等として、about.phpを呼び出したときに、
about.phpから?以下のクエリを取得する方法はありますか?
0484nobodyさん
04/06/29 23:53ID:???>>482
まずボトルネックが何かだろう。課題に対して解決の求め方が間違っている。
>>483
赤マンモスでも読んで一から勉強しる。
他の知識も欠落しているだろうから本かソース読んだ方で総合的に学習した方がいい。
0486nobodyさん
04/06/30 01:25ID:???それだけPHPの間口が広がったと取るべきか。
0487nobodyさん
04/06/30 01:32ID:???0488nobodyさん
04/06/30 02:09ID:FZovrSyIどうもありがとうございます。
あるだろうことはなんとなく分かるんですけどね。。
コミュニティよく分かりません。。
PHPファイル名だけでも分かればありがたいですが。
0489nobodyさん
04/06/30 03:21ID:???単なる低レベルな質問なんだか、そのレベルに合わせた釣りなんだか
判断付かん質問がマジ質問だったりする
掲示板で人に質問する前にすることがあるだろうと小一時間(ry
0490nobodyさん
04/06/30 08:34ID:???0492nobodyさん
04/06/30 10:25ID:???0494nobodyさん
04/06/30 10:50ID:???echo "ひさびさきいたー ";
0495nobodyさん
04/06/30 11:36ID:???$一 = "一";
$時 = "時";
$間 = "間";
0496nobodyさん
04/06/30 12:53ID:???{
if( !( $i % 2 ) )
print "<br>";
print "小一時間";
}
0497nobodyさん
04/06/30 13:08ID:???0498こませ
04/06/30 14:33ID:???0499nobodyさん
04/06/30 14:51ID:???どうしたらいい?
for($i=0;$i<4;$j++){
↑こういうのを防ぎたい
0502499
04/06/30 15:34ID:???$iと$jのタイプミス のサンプル
つまり、こういうタイプミスを事前検出する手段
まあ事前じゃなく実行時でもいいけど
とにかくこういう自動変数が認められるせいで
バグが増えてしまうのをなんとかしたいポヨ
0503nobodyさん
04/06/30 15:34ID:???だから、そういう間違いをおこさないような仕組みない?って聞いてるんだよ。
#!perl
use strict;
見たいなやつよ。
0504nobodyさん
04/06/30 15:41ID:???と言いつつさっき options が optoins になっていて 5min くらい迷ってた orz
まぁでもいちいち変数宣言なんてやっとられん罠。
>>503
全部 $vars['var_name'] とか配列に放り込んでおいたら E_NOTICE で警告出る。
そんな変態スクリプトもどうかと思うが。
0505nobodyさん
04/06/30 15:47ID:???オマイは質問の次のレスさえ読まないのかと小一時間(ry
そんなんだからキーミスをするのだと小(ry
php.iniの設定で変更できる形ででもあれば便利なんだけどなぁ。
0506503
04/06/30 15:48ID:???そうなんだ、phpってそういう自主規制の仕組みがないんだ。
なんかちょっと大きいやつの開発むかないんだね。
perlだってuse strict;つけないなんて考えられんもんな。
無駄なデバッグに時間とられたくないし。
0507499
04/06/30 15:52ID:???連想配列の要素追加なんかも否定しなきゃならなくなるのかも・・・
むずかしい
0508nobodyさん
04/06/30 16:11ID:???0509nobodyさん
04/06/30 16:25ID:???> なんかちょっと大きいやつの開発むかないんだね
探せばいくらでも事例やオープンソースのプロジェクトはあるワケだが。
いくつもの考え方が並列して成り立ちそれぞれに価値がある事を解しない香具師は一生 Perl の世界に閉じこもっとけ。
と釣られてみる。
0510nobodyさん
04/06/30 16:26ID:bmKP74+o評価して下さいませ
<?
$r_a=array("name"=>"名前","tel"=>"TEL","email"=>"E-mail","age"=>"年齢","comment"=>"P
R","ginkou"=>"銀行名","siten"=>"支店名","namber"=>"口座番号","meigi"=>"口座名義");
while(list($key, $val) = each($r_a)) {
if(!$$key){$re .="${val}がありません<br>";}
}
if($re){echo"$re";exit;}
?>
0511nobodyさん
04/06/30 16:27ID:???じゃたりない?
0512nobodyさん
04/06/30 16:32ID:bfdTVs9y'".$id."'
これがどういう意味なのかわからないのですが
どう解釈すればよいのですか?
0516nobodyさん
04/06/30 17:07ID:???サーバー上のファイルをダイアログを出してダウンロードさせようとしています。
現在
a.php : ダウンロードするファイルを指定するスクリプト
b.php : a.phpからPOSTされた情報でダウンロードを実行するスクリプト
という構成です。
b.phpでheader指定やらreadfileやらして実際にダウンロードはできています。
お聞きしたいのは、a.phpだけでダウンロード処理を実行できないか、ということです。
a.phpでダウンロード実行するとブラウザ上でのロケーションは変更されず、
ダウンロードダイアログが表示されるようにしたいのです。
(今はb.phpが空っぽの状態で開いています)
header関数は、その前に空行を含むいかなるHTTP出力を含めてはいけない
とのことで、このような構成になっているのですが、なんとかできないでしょうか?
0517nobodyさん
04/06/30 17:22ID:???error_reporting の影響範囲について伺いたいのですが、
set_error_handler によりユーザー定義のエラーハンドラ関数をセットすると error_reporting の設定に関係なくあらゆるレベルのエラーからエラーハンドラがコールされています。
これは仕様なのでしょうか。
エラーハンドラ関数の中でエラーレベルを識別し、処理をしろって事でしょうか、、
環境
WindowsXP PHP 4.3.4
FedoraCore1 PHP 4.3.7
sample1 -- 意図した通りに動作 (未定義のインデックスによるエラーはレポートされない)
--
$_error_reporting = error_reporting(E_ALL^E_NOTICE);
$array = array();
print $array['hoge'];
--
sample2 -- error_reporting の内容にかかわらずエラーハンドラがコールされている
--
$_error_reporting = error_reporting(E_ALL^E_NOTICE);
set_error_handler('myErrorHandler');
$array = array();
print $array['hoge'];
function myErrorHandler($level, $errstr, $errfile, $errline)
{
print "[$level] Line:$errline -- $errstr <br>\n";
}
--
0519nobodyさん
04/06/30 17:31ID:???途中で送信してもうた
a.phpをこんな感じにすれば
if (isset($_POST["〜"])) {
元々のb.phpのスクリプト
exit;
}
元々のa.phpのスクリプト
0520nobodyさん
04/06/30 17:32ID:???0522nobodyさん
04/06/30 17:38ID:???レスありがっつぉございます。
やっぱexitしないといけませんですかぁ。
a.phpに複数ファイルを並べておいて、
順に落とせるようにしたいんですけど・・・
0525nobodyさん
04/06/30 17:56ID:???何悩んでるのかよく分からんが、下のを実行しても「geko」が表示されることは無い。
(POSTだと長くなるのでGETで代用した。)
<?php
if(isset($_GET[file]) && $_GET[file] != ''){
header("Content-disposition: attachment; filename= test.txt");
header("Content-Type: application/octet-stream");
readfile($_GET[file].".txt");
}
?>
<html><body>
<a href="a.php?file=a">download</a>
<?php
if(isset($_GET[file]) && $_GET[file] != ''){ print "<p>geko</p>"; }
?>
</body></html>
0527516
04/06/30 18:16ID:???あ、あれ・・・このサンプルでまさに意図していた通りの動きですよ?
強烈に何かを間違えている予感。
自分とコードを見つめ直します。
0529nobodyさん
04/07/01 00:31ID:???その通り。
>PHP の標準のエラーハンドラは完全にバイパスされることに注意して下 さい。
>error_reporting() の設定は影響せず、どの ような場合でもユーザが設定した
>エラーハンドラがコールされます。ただし、この場合でもハンドラで
>error_reporting() のカレントの値を読み、適当に動作させることは可能です。
と、PHP マニュアルの set_error_handler 関数のページに書いてある。
0531nobodyさん
04/07/01 14:28ID:???にあるように
error_reporting(E_ALL);
set_error_handler("myErrorHandler");
をしても Parse error や Fatal error を捕まえられないわけですが、
どうしても捕まえたいです。別の方法、もしくはよいアイディアはないでしょうか?
# ob_get_contents() して Parse error などの文字を preg_match() させようとも思いましたが
# ユーザ側の入力で万が一でも Parse error と入力した場合も捕まえてしまいますし…。
0533nobodyさん
04/07/01 16:28ID:???ありがとうございます。
ob_* を使って「error</b>」で検索する方法や eval() ですよね。
eval() は怖いし、ob_* は万が一マッチしたら、という不安や、
長時間処理の時に ob_flush() が使えないのが困り者です。
PHP5 になったらプログラム全体を try ... catch で囲むとか…。
うーん。引き続き妙案募集です。
0534nobodyさん
04/07/01 23:50ID:???PHPでチャットを作ろうと思っているんですが、
発言内容をログファイル(log.txt)に
↓のように<>で一つの発言ごとに区切って保存してある場合
------ log.txt ------------------------------------------------
名前0 : メッセージ0<>名前1 : メッセージ1<>名前2 : メッセージ2<> ・・・・
---------------------------------------------------------------
次のように配列に代入するにはどうしたらいいですか?
$a[0] ‥‥ "名前 : メッセージ0"
$a[1] ‥‥ "名前 : メッセージ1"
$a[2] ‥‥ "名前 : メッセージ2"
:
:
$fp = fopen("log.txt", "r");から先がどう書いていいのかが分かりません。
よろしくお願いします。
0537nobodyさん
04/07/02 01:00ID:???あらまっ、奥さまっ
0538nobodyさん
04/07/02 01:53ID:6/QnGsWtオクサマッ534ミタ?( ´д)ヒソ(´д`)ヒソ(д` )アラヤダ
0539nobodyさん
04/07/02 02:19ID:???デバッグとかでそれをファイルに書き出して見ようとすると
非常に見づらいので、適当に改行が入るフォーマットにするのが普通
ではないかと思ってみる
0540nobodyさん
04/07/02 07:25ID:???<>のかわりに改行で区切ったほうが楽だと思う。
それだと$a = file('log.txt');で終わり。
生のログファイルも見やすい。
0541nobodyさん
04/07/02 13:29ID:???とりあえず認証成功したらユーザIDをセッションに保持するのを
書いたんだけど、動くんだけどどうにもしっくりこないです。
状況に応じて最適解は変わるってのは百も承知だけど
なんというか、基本的な部分だけに毎回車輪の再開発するのも
ちょっとイヤンな感じで。
0542nobodyさん
04/07/02 13:41ID:???0543nobodyさん
04/07/02 16:56ID:???模範解答という訳ではないが、何種類かのパターンの解説
「Web認証システムの作り方大全―Apache/IIS/PHP/Servlet&JSPそれぞれの場合」
http://www.amazon.co.jp/exec/obidos/ASIN/4797321490
0544nobodyさん
04/07/02 20:57ID:proF8LyPで最初の●より後に▲があったら全て×に置き換えたい(最初の
●のあとに再び●が出てくることも、出てこないこともある)
↑こういう変換をしたいのですが、どうしたらよろしいでしょうか?
かなり複雑なことをしないと無理ですか?
0546544
04/07/02 21:45ID:proF8LyP●より後の、▲以外の文字をそのまま残すということが可能でしょうか?
0547544
04/07/02 21:52ID:???やってみます。
ありがとうございました。
0548nobodyさん
04/07/02 21:57ID:6Y75o+Jb$fp = fopen("data.txt",a);
fwrite($fp,$new_text);
fclose($fp);
と改行コードを<br />に変換して出力したところ、<br />には変換されているのですが、改行されてしまっています。
代わりに str_replace("\n","<br />",$_POST[text]);とやっても同じでした。\r\nでもだめです。
0549nobodyさん
04/07/02 22:21ID:???preg_replace_callbackのほうが適任のような。
>>548
Windowsでは$fp = fopen("data.txt", "ab");としないと
テキストモードでファイルが開かれ、fwrite/fputsするたびに改行が入るわけだが、
OSは何をお使いで?
0550549
04/07/02 22:23ID:???0551548
04/07/02 22:31ID:???スクリプトはEUCを使用しています。
0552548
04/07/02 22:32ID:???0553544
04/07/02 22:41ID:proF8LyPありがとうございます。
難しそうですが、やってみます。
0554548
04/07/02 22:50ID:???str_replaceで。
0555544
04/07/02 23:16ID:proF8LyPreturn $a ;
こんな感じでやってみたら「第二引数が足りない」という趣旨のエラー
メッセージが出たのですが、どうしたらいいんでしょうか?
preg_replace_callback 関数の第二引数に他の関数かなにかを入れ
ないといけないのでしょうか?
0556549
04/07/02 23:34ID:???たのむからマニュアルぐらい読んでよ。。。
ttp://jp.php.net/manual/ja/function.preg-replace-callback.php
お前さんのやりたいことはこのコードでできるはず。
function hoge($m) {
return $m[1] . str_replace("▲", "×", $m[2]);
}
$a = preg_replace_callback("/^(.*●)(.*▲.*)$/", "hoge", $a);
●や▲が半角英数字じゃないと期待通りには動かないこともあります。
0558nobodyさん
04/07/03 00:04ID:???"最初の●より後に▲があったら全て×に置き換える" ということなので、それでは
$a = 'test●▲●▲';
の時にはうまくいかないような・・・。
単純な置き換えだったら、preg_replace_callback() を使わなくても e オプションを使えば
いいような気がするので、以下のような感じでどう?
$a = preg_replace("/^(.*?●)(.*▲.*)$/e", '"\\1" . str_replace("▲", "×", "\\2")', $a);
マルチバイトを考慮したら mb_ereg_replace() を使うといいと思うけど。
$a = mb_ereg_replace("^(.*?●)(.*▲.*)$", '"\\1" . str_replace("▲", "×", "\\2")', $a, "e");
0559nobodyさん
04/07/03 00:14ID:???なるほどー。そういう手がありましたか。
自分はマルチバイトを含む文字列をトリッキーな置換するときは
UTF-8決め打ちでpreg_replace_callbackでuオプションを使ってますが
将来mb_ereg_replace_callback関数ができたらそっちも使ってみたい。
あとpreg_*でUnicodeプロパティーのサポートも希望したいですね。
0560nobodyさん
04/07/03 01:02ID:???こっからserXXXXXXXXXXXXXXXだけを取り出したいのだがどうすればいい?
問題はYYYYが必ず同じ長さではない。
つまりser以降指定の文字数を得たいのだが…
0562nobodyさん
04/07/03 02:36ID:???0563nobodyさん
04/07/03 02:59ID:???スマン、正規表現でがんがったんだがさっぱりわからん、、、。
>>562
それも考えてみたんだが問題が。。。
FOMA
DoCoMo/2.0 N2001(c10;serXXXXXXXXXXXXXXX; iccxxxxxxxxxxxxxxxxxxxx)
PDC
DoCoMo/1.0/X503i/c10/ser***********
こんな風に違うんだよな…。
さらにVodaなんか
http://www.dp.j-phone.com/dp/tool_dl/web/useragent.php
J-PHONE/4.0/J-SH51/SN************ SH/0001a Profile/MIDP-1.0 Configuration/CLDC-1.0
Ext-Profile/JSCL-1.1.0
0564nobodyさん
04/07/03 05:38ID:???機種によって振り分けた方がいいんじゃな?。
0565nobodyさん
04/07/03 07:59ID:???正規表現の書き方がわからんのなら、正規表現スレで抽出条件を詳しく書いて聞けばいい。
とりあえずDoCoMoの分だと、serに続く文字列で ; もしくは行末までって条件でいいのなら
(ser[^;$]+)
0566てふてふ
04/07/03 11:22ID:Upkf89lK日本語の文字化けがおきてる方っていませんか?
0567nobodyさん
04/07/03 16:10ID:???0568nobodyさん
04/07/03 16:52ID:wzmmIfWrそのままファイル自体を読み込んで調べるしかないのでしょうか?
0569nobodyさん
04/07/03 17:00ID:???0570nobodyさん
04/07/03 17:17ID:???*自分の*ファイルなんだから、PHPでそのファイルを読まなくても知る術はあるけど。
0571nobodyさん
04/07/03 18:33ID:n3s5B9BGここのPHPの詳細おねがいします。英語読めません。
0573nobodyさん
04/07/03 20:57ID:???$encoding = mb_detect_encoding(file_get_contents($_SERVER['SCRIPT_FILENAME']));
0574>>571 です
04/07/03 21:50ID:n3s5B9BGごめんなさい
0576nobodyさん
04/07/04 00:34ID:fnOHrUgA届いたメールの題名が文字化けします。
題名部分は $title = JcodeConvert("題名", 0, 3); で、
文字コード指定は1,2,3どれも化けます。
環境は、Win XP Pro + Apache + PHP4.2
どこがいけないの?
0577nobodyさん
04/07/04 00:49ID:???脳ミソの変わりにくらげとか入ってないか調べたい。
0578nobodyさん
04/07/04 01:22ID:???メールの件名は特別だから。
詳細をググって調べるべし。
↓と同じ感じでjcodeつかってできるようにがんがれ。
$title = "件名";
$title = "=?iso-2022-jp?B?" . base64_encode(i18n_convert($title, "JIS")) ."?=";
0579576
04/07/04 01:49ID:???以下2行の追加で直りました。
$title = base64_encode($title);
$title = "=?iso-2022-jp?B?" . $title . "?=";
ありがとうございました!
0580nobodyさん
04/07/04 06:26ID:???「100円のものを1000個買いました。全部でいくらですか」
という問題を100を1000回足して答えを出すのに近いな
0581nobodyさん
04/07/04 07:41ID:???釣りか?
なぜネストの話が
つーかALUでは加算の繰り返(ry
0582nobodyさん
04/07/05 10:41ID:???0583nobodyさん
04/07/05 13:28ID:???0584nobodyさん
04/07/05 16:02ID:???$LV3 = $LV2 - $LV
$STR3 = ($STR2 - $STR) / $LV3;
$CON3 = ($CON2 - $CON) / $LV3;
$DEX3 = ($DEX2 - $DEX) / $LV3;
$INT3 = ($INT2 - $INT) / $LV3;
$LUCK3 = ($LUCK2 - $LUCK) / $LV3;
$CHA3 = ($CHA2 - $CHA) / $LV3;
?>
↑
Parse error: parse error, unexpected T_VARIABLE
と出るのでしょうが・・・
T_VARIABLEというのは何でしょうか?
0587584
04/07/05 16:09ID:???Division by zero in とはどういう意味なのでしょうか・・・ガクガクブルブル
0588nobodyさん
04/07/05 16:11ID:???それくらいの英語読め
0589nobodyさん
04/07/05 16:14ID:???$LV2に8、$LVに4入れても同じエラーが・・・
0590nobodyさん
04/07/05 16:22ID:???確認の仕方はマニュアル読んで調べろ
0591nobodyさん
04/07/05 16:30ID:???print "レベルが入力されていません。";
}else if($STR2 < $STR or $CON2 < $CON or $DEX2 < $DEX or $INT2 < $INT or $LUCK2 < $LUCK or $CHA2 < $CHA){
print "入力した値がおかしいです。";
}else{
}
これを使ったあと全部に0が入ってた〜(なぜだ
0593nobodyさん
04/07/05 16:36ID:???ttp://cgi.f44.aaacafe.ne.jp/~phpworld/002/seityo.php
値を出した後、ページが表示されない・・・
ソースを見ればHTMLがあるのに
0595nobodyさん
04/07/05 17:14ID:???もし$LV2=0で$LV=0なら じゃないんですか!?
0596nobodyさん
04/07/05 17:18ID:???★ ☆
☆ 質問者が返信する時は名前欄に「最初に質問したレス番号」を入れろ ★
★ ☆
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
>>595
お前はアホか・・・
$LV2=0、$LV=0にして>>584の計算をしてみろよ
0599nobodyさん
04/07/05 17:31ID:???<TITLE><TITLE>
を
<TITLE></TITLE>
とすれば解決。
何が原因が分からない時は問題の絞込みってやつをするといいyp。
0600nobodyさん
04/07/05 17:56ID:???0604nobodyさん
04/07/05 21:01ID:???>>595
= は代入演算子だから比較の意味では使えない。
比較には == や === などを使う。詳しくは下記を読め。
http://www.php.net/manual/ja/language.operators.comparison.php
http://www.php.net/manual/ja/language.operators.assignment.php
0606nobodyさん
04/07/05 21:02ID:???0607nobodyさん
04/07/05 21:07ID:???unexpected T_IF
ってなんだYO!
0608nobodyさん
04/07/05 21:18ID:???0609nobodyさん
04/07/05 21:25ID:???ファイルに保存されないぽ
これのエラーを直せたら教えてやる
if($action == "action"){
if(($NAME != "") && ($COMMENT != "")){
$NAME = htmlspecialchars($NAME);
$MAIL = htmlspecialchars($MAIL);
$COMMENT = htmlspecialchars($COMMENT);
$COMMENT = nl2br($COMMENT);
$COMMENT = str_replace("\r", "", $COMMENT);
$COMMENT = str_replace("\n", "", $COMMENT);
$input_msg = implode(",", array($NAME,$MAIL,$COMMENT,$time,$host));
$message = file($data);
$fp = fopen($data, "w"); //書き込みモードでファイルを開く
rewind($fp);
fputs($fp, "$input_msg\n");
if($data_max <= sizeof($message))
$msg_num = $data_max - 1;
else
$msg_num = sizeof($message);
for($i = 0; $i < $msg_num; $i++){
fputs($fp, $message[$i]);
}
fclose($fp);
unset($message);
}
}
0610609
04/07/05 21:30ID:???fputs($fp, "$input_msg\n");
これで保存したんだがデータが上書きされる・・・
0611nobodyさん
04/07/05 21:43ID:dk5OZx2a消す場合はどうしたらいいのでしょうか?
0612nobodyさん
04/07/05 21:45ID:???>$fp = fopen($data, "w");
あなたの書いた通りに動いているだけです。
PHPマニュアルのfopenのページをご覧あれ。
0615nobodyさん
04/07/05 21:51ID:???あれってPHPでもできんのけ?
0616nobodyさん
04/07/05 21:52ID:???>fputs($fp, $message[$i]);
上書きされるのはwriteでファイル開いてるんだから当然として
とりあえず改行コードが抜けているぞ。
0617nobodyさん
04/07/05 21:57ID:???JavaのSiteMeshみたいな?
できるかできないかでいえば「できる」けど書くのが面倒なら
そのCGIに任意のHTMLやPHPスクリプトを読み込ませてもいいんじゃない?
プロキシみたいなもんで、ブラウザの代わりにURIにアクセスして
レスポンスボディをレイアウトし直したり、リンクのURIを書き換えたりしてるだけだと思うから。
0618nobodyさん
04/07/05 21:58ID:???「PHP まぬある 付録 P. パーサトークンの一覧」
ttp://www.php.net/manual/ja/tokens.php
を読んでけれ。
"Parse error: parse error, unexpected T_VARIABLE" などという
エラーが表示された場合は、「私ってば PHP の構文解析をして
いるパーサですが、あなたの書いたソースを読んだら構文解析
に失敗しますた。予期せぬ位置に変数が表れたわよ。」と読む。
大抵の場合、パースエラーの出た変数の手前に問題があって、
セミコロン忘れてますた。括弧を閉じ忘れてますた。とかそういう
ことだたーりする。
だと思う。
0619618
04/07/05 22:04ID:???>大抵の場合、パースエラーの出た変数の手前に問題があって、
「正」
大抵の場合、パースエラーの出たイ "トークン" の手前に問題があって、
マチガエタ。サヨウナラ。サガサナイデクラハイ。
0620nobodyさん
04/07/05 22:07ID:???0621nobodyさん
04/07/05 22:20ID:???しってるよばーかマヌケ
>>620
スレとかんけーねーよ無能
0622nobodyさん
04/07/05 23:00ID:???多重投稿"ミス"なら、投稿履歴と照らし合わせて
「多重だったら」という処理をすることでもいい。
投稿履歴にはhiddenでユニークな投稿キーを埋め込んでおいて、
それを履歴リストに残して多重チェックするのが普通かな。
履歴リストの分量や、Webブラウザのキャッシュに入力フォームが
残らないようにするとか、細かいところは工夫してください。
0623nobodyさん
04/07/05 23:37ID:???投稿後にリロードして再投稿するミスを防ぐなら、header("Location {$_SERVER['PHP_SELF']}")
で同一ページに飛ばすテクもある。
0625620
04/07/06 00:16ID:???ttp://cgi.f44.aaacafe.ne.jp/~phpworld/
0626nobodyさん
04/07/06 00:25ID:???0630nobodyさん
04/07/06 03:48ID:???すでにApache2はインストール済みなのでPHP4.3.7のWinバイナリをインストーラーの方でe:\phpにインストール
http://www.php.net/manual/ja/install.apache2.php に従って
php4ts.dllをwindows/system32に移動
LoadModule php4_module e:/php/sapi/php4apache2.dll
AddType application/x-httpd-php .php
をhttpd.confに追加しましたがApacheを起動しようとすると
Apache.exe: module "c:\php4build\snap\sapi\apache2filter\sapi_apache2.c" is not compatible with this
version of Apache (found 20020628, need 20020903).
Please contact the vendor for the correct version.
というエラーが出てしまいます。
そもそも c:\php4build\snap\sapi\apache2filter\sapi_apache2.c なんでパスは存在しないのです
LoadModuleの部分をコメントアウトするとApacheは起動します
原因に心当たりのあるかたいらっしゃいますか?
php4.3.7 Apache2.0.43です
0631nobodyさん
04/07/06 04:28ID:???>Apache2.0.43
が古くて、最近のSAPIの仕様とは違ってるんじゃないの?
Apche2.0.50+PHP4.3.7でやってみな。
0632nobodyさん
04/07/06 07:53ID:???for文から抜け出すことは可能だろうか・・・
0634nobodyさん
04/07/06 09:30ID:???0635nobodyさん
04/07/06 10:28ID:???includeだとphpファイルの変数しか読み込めないので、txtファイルの中の変数を読み込みたいのです。
よろしくお願いします。
0637nobodyさん
04/07/06 10:46ID:???ttp://www.php.net/manual/ja/function.parse-ini-file.php
とか、どーですか。
0639nobodyさん
04/07/06 11:01ID:???普通に<?phpとか書いてない txtファイルを読み込んで
その中に入ってる$hoge とか言う変数を読み込みたいのです
0640638
04/07/06 11:05ID:???0641nobodyさん
04/07/06 11:08ID:???その程度の問題を自分で解決できないならプログラム組むのやめた方が良いね
とりあえずマニュアルのファイルシステム関数ページを読めよ
ttp://www.php.net/manual/ja/ref.filesystem.php
0642nobodyさん
04/07/06 11:46ID:???解決しました(^^
0643nobodyさん
04/07/06 12:04ID:Rny+MH6z<html>
<body>
<?php
print ("<a href = 'get.php?a=5'> Get</a>");
?>
</body>
</html>
▼get.php
<html>
<body>
<?= print($_GET['a']) ?>
</body>
</html>
上記のコードで、index.phpからget.phpへ移動すると、
ブラウザには「51」と表示されてしまいます。「5」と表示したかった
のですが、原因がわかりません。おわかりの方がいましたらご教授
お願いします。
0645nobodyさん
04/07/06 12:14ID:NBQAU1O/0646nobodyさん
04/07/06 12:15ID:NBQAU1O/0647nobodyさん
04/07/06 12:15ID:5MCxUUr8を
<?php print($_GET['a']) ?>
では?
0648nobodyさん
04/07/06 12:16ID:???質問の要旨とは関係ないけど、二重引用符と単一引用符を
入れ替えた方が良い。
どこに問題があるか見極めるには、静的な HTML を書いて、
get.php を呼びだしてみたりするとか。
とりあえず、index.php で生成される HTML を良く眺めることを勧める。
0649643
04/07/06 12:28ID:mpLQA1tZみなさん、レスどうもです。
<?php print($_GET['a']) ?>が正しいようでした。
>>648
二重引用符と単一引用符を入れ替えてみました。
ソースを見るとこちらのほうがよさそうですね(実はあまり意味がわかって
いませんが・・)
それにしても1時間くらい悩んでいたので助かりました。
ありがとうございました。
0650nobodyさん
04/07/06 13:12ID:???0651nobodyさん
04/07/06 13:13ID:???0652alvi
04/07/06 13:14ID:A6zHoUWtincludeされるファイル
function.php
と
実行する(function.phpをincludeさせる)ファイル
main.php
があるのですが、
万が一main.phpではなくfunction.phpにアクセスされた時にはfunction.phpがエラーを舶用に
htaccessは使わずにファイル名で判定できた筈だったのですが変数を忘れてしまいました。
function.phpをmain.phpに読み込んで$_SERVER["SCRIPT_NAME"]
とするとmain.phpになってしまいますが、これをfunction.phpと表示させる変数は何であるのか
教えて下さい。よろしくおねがいします。
0653nobodyさん
04/07/06 13:28ID:???<?="あいうえお"?>と<?php print "あいうえお"?>
は同じ結果が得られるわけだな。
0657nobodyさん
04/07/06 14:04ID:???<?=[var]?>は<?php echo[var]?>のエイリアス。
<?="あいうえお","かきくけこ"?>はできても
<?php print "あいうえお","かきくけこ"?>はできない
0658alvi
04/07/06 14:28ID:A6zHoUWtincludeするファイルがあり、そのincludeされるファイルをincludeするファイルのなかで使用する為に
includeされるファイルへ何を書くとそのincludeされるファイルのファイル名を取得できるのでしょうか?
>>656
今、外出する直前で確認出来ないのですが、__FILE__ですか?
phpinfoでは分かりませんでした。(include等は使っていない為)
0659nobodyさん
04/07/06 14:55ID:???こんな答え方をしている時点で、何も理解していない、理解する気もないって感じだな。
0661nobodyさん
04/07/06 15:31ID:???のだと想うのだが、そんな関数ありましたっけ?
0662nobodyさん
04/07/06 15:42ID:???HTMLタグの<TD>〜</TD>の中にPHP構文を入れるとエラー出るのか?
0663nobodyさん
04/07/06 15:43ID:???ぜんぜん簡単に書かれてないぞw
includeされた場合はmain.php、直接動かした場合はfunction.phpで切り分けできるでしょ?
何か問題でも
0665662
04/07/06 15:45ID:???0666nobodyさん
04/07/06 16:11ID:???計算結果が4になるんだがこれを4.00と表示したい
こんな時どうするか教えやがれぬるぽ
0667nobodyさん
04/07/06 16:21ID:???$値 = 4;
$桁 = 2;
echo number_format($値, $桁);
0669nobodyさん
04/07/06 16:30ID:???0670nobodyさん
04/07/06 16:35ID:???0671nobodyさん
04/07/06 17:18ID:???お前らがマニュアル引き係じゃぁ
と思っている輩が質問してる訳です
0672nobodyさん
04/07/06 17:22ID:???0675nobodyさん
04/07/06 18:24ID:???ob_start();
?>
<html>
<head>
<title>ログイン</title>
</head>
<body>
<h1 style="font-size:14pt;text-align:center;">
ログインtest
</h1>
<hr />
<form method="GET" action="index.php">
<table border="0" align="center">
<tr>
<th align="right">ユーザ名:</th>
<td>
<select name="id">
<?php
$db=mysql_connect("COMPUTER","root","root");
$rs=mysql_db_query("test_db","SELECT * FROM scheusr");
while($aryCol=mysql_fetch_array($rs,MYSQL_ASSOC)){
print("<option value='".$aryCol['id']."' ");
if(isset($id)){if($id==$aryCol['id']){print("selected");}}
print(">".$aryCol['nam']."</option>");
}
?>
</select>
</td>
</tr>
0676675
04/07/06 18:24ID:???<td>
<input type="password" name="passwd" size="10" />
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="sbm" value="ログイン" />
<input type="reset" value="取消" />
</td>
</tr>
</table>
</form>
<?php
if(isset($_GET['sbm'])){
print("if通過した");
$sql="SELECT * FROM scheusr WHERE id='".$id."' AND passwd='".
crypt($passwd,"ZZ")."'";
$rs=mysql_db_query("test_db",$sql);
if(mysql_num_rows($rs)==0){
print("<script language='JavaScript'>");
print("window.alert('パスワードが間違っています');");
print("</script>");
print("$rs");
}else{
$aryCol=mysql_fetch_array($rs,MYSQL_ASSOC);
header("Location: hello.php?id=".$id."&nam=".urlencode($aryCol['nam']));
}
}
print("</body></html>");
ob_end_flush();
?>
0677675
04/07/06 18:24ID:???id主キー
passwd
namです
テーブルに登録されているパスワードが入力されたときに
他のページに飛ぶようにしたいのですが、
パスワードが一致するようにならないみたいなんです。
どのように変えたらいいでしょうか?
よろしくお願いします。
0678nobodyさん
04/07/06 18:28ID:???0679nobodyさん
04/07/06 18:32ID:???0680nobodyさん
04/07/06 19:08ID:???0681nobodyさん
04/07/06 21:22ID:???0682nobodyさん
04/07/06 21:36ID:???http://jp.php.net/manual/ja/ref.variables.php
0683nobodyさん
04/07/06 21:39ID:???header("Content-disposition: attachment; filename=${file_name}");
header("Content-type: application/octet-stream; name=${file_name}");
でcsvをダウンロードさせているのですが、なぜかNetscape(7.1)だけ
「test.csv.php」を開く になります。(中身は正常なcsv)
IE、Mozilla、Operaでは問題ないのですが、どなたか解決された方おられますか?
0684nobodyさん
04/07/06 21:40ID:???の間違いです。
0685alvi
04/07/06 21:59ID:A6zHoUWt前提
・A = main.php
・B = function.php
・Bには直接アクセスされたくない。だからといってhtaccessは使わないとする
・AはBをincludeする
いや、口で言うのは分かりづらいのでソース書いて実行した物をを付けます。
<?php
#A = main.php
include'function.php';
print_r($ABC);
?>
<?php
#B = function.php
$ABC[] = __FILE__;
$ABC[] = $_SERVER["SCRIPT_FILENAME"];
?>
そして、A = main.phpの出力結果は
Array
(
[0] => /home/****/public_html/function.php
[1] => /vhome/****/public_html/main.php
)
お騒がせしました。>>656さんの仰った方法で解決です。。
if ( __FILE__ == $_SERVER["SCRIPT_FILENAME"]) die('Forbidden!');
というコードが欲しかったのです。ありがとうございました。
0687nobodyさん
04/07/06 23:36ID:???WepProg界に新たな政策を呼びかけています。
アンチ民主党。取り愛ず、藻前ら嫁。
ttp://mykit.jp/pc/kapokon/index.php3
0688nobodyさん
04/07/07 02:38ID:+x8AlGbLどうしたらいいでしょうか?
0690nobodyさん
04/07/07 08:17ID:???結構あるものでしょうか?
また、ob_start();〜ob_end_flush();を使用した時の処理速度は変数
に放り込んでechoした時の処理速度と比較してどちらが早いの
でしょうか?
0692nobodyさん
04/07/07 11:10ID:HKrq5OGLURLをどなたが教えて頂けないでしょうか?
0693nobodyさん
04/07/07 11:22ID:???if($i=="10"){$hensu = $kochinohensu; }
もし10行目になったらコッチの変数にするよ。
0694nobodyさん
04/07/07 11:24ID:???PHP プログラマーズマガジンのことかね。
ついでにどうせ買うなら、2ch 系 PHP コミュのアフィリエイト通してやってくれ。
http://pear.sakura.vg/
0695nobodyさん
04/07/07 11:26ID:???0696nobodyさん
04/07/07 11:57ID:???$ time php -r 'ob_start();for($i=0;$i<1000000;$i++){echo "hoehoe";}ob_end_flush();' > /dev/null
real 0m7.346s
user 0m7.200s
sys 0m0.150s
$ time php -r 'for($i=0;$i<1000000;$i++){echo "hoehoe";}' > /dev/null
real 0m13.534s
user 0m12.800s
sys 0m0.730s
逐次書き出すより、ob_* を使用して「イッキ出し」した方が処理は早くなるようですよ。
0697nobodyさん
04/07/07 11:59ID:???crypt($passwd,"ZZ");
の結果と、対象のテーブルの値を見比べてください。
0698694
04/07/07 12:02ID:???言われるかなとは思った。
まぁ俺は俺で別のアフィリエイト ID もってるし、そもそも PHP|architect はあまり好きじゃないんで。。
最近はそうでもないかも知れないが、前までは業務用の堅実な記事が大半で面白みが無かった感じ。
0699nobodyさん
04/07/07 12:50ID:???こうやってテストするのですね。勉強になりますm(_)m。
私の環境ではphp -rというオプションが存在しないみたいなのですが、
これは環境によるのでしょうか?。
$ time php -r 'ob_start();for($i=0;$i<1000000;$i++){echo "hoehoe";}ob_end_flush();' > ./null
Error in argument 1, char 2: option not found r
real 0m0.186s
user 0m0.121s
sys 0m0.015s
$ time php -r 'for($i=0;$i<1000000;$i++){echo "hoehoe";}' > ./null
Error in argument 1, char 2: option not found r
real 0m0.471s
user 0m0.105s
sys 0m0.015s
$ time php -r 'for($i=0;$i<1000000;$i++){$k .= "hoehoe";}echo $k' > ./null
Error in argument 1, char 2: option not found r
real 0m0.171s
user 0m0.112s
sys 0m0.015s
0701nobodyさん
04/07/07 13:58ID:???CLI 版の PHP には acndefhilm"r"svwz というオプションを使用できる。CGI 版はわからない。
速さを求めるなら、出力制御するか、変数に格納して一発出力なのかな。
で、
ob_* を使うとメモリ使用量が違うらしい。
$ php -r 'ob_start();for($i=0;$i<1000;$i++){echo "orz";}echo memory_get_usage();ob_end_flush();'
orzorz...53736
$ php -r 'ob_start();$s="";for($i=0;$i<1000;$i++){$s.="orz";}echo $s, memory_get_usage();ob_e
nd_flush();'
orzorz...57136
$ php -r '$s="";for($i=0;$i<1000;$i++){$s.="orz";}echo $s, memory_get_usage();'
orz...16040
ちなみに、
$ php -r 'ob_start();echo memory_get_usage();ob_end_flush();'
52896
0702nobodyさん
04/07/07 15:06ID:???$exp[1] = 2;
for ( $i = 2 ; $i > 100 ; $i++ ){
$X = $exp[$i-1];
$Y = $i;
$Z = 3*(floor($i/10)+1);
$exp[$i] = $Z * $Y + $X;
print $exp[$i];
}
?>
HTMLに表示されないです。
分かる方いませんか?
0703702
04/07/07 15:10ID:???不等号反対だた
0704nobodyさん
04/07/07 15:56ID:???0705fushianasan
04/07/07 17:06ID:???0706nobodyさん
04/07/07 17:10ID:???最低限入れる機能(評価:極小)
自動リロードする
表示は10行程度
入れたい機能(評価:普通)
いわゆる普通のチャットシステム
自動リロードの間隔が選べる
表示の行数が選べる
入室画面がある
切断者(ブラウザを閉じた奴)は退出させる
発言者の名前がわかる
あったらいいな機能(評価:極大)
チャット中にファイルをUP・交換ができる
0709706
04/07/07 17:28ID:???オネガイオネガイ☆
0711nobodyさん
04/07/07 17:44ID:???金が無いなら元になっている雑誌(英語)は安い。
http://www.phparch.com/
自分は先に英語読んでたクチだが、結局日本語版だけにした。
少なくても自分がやるより翻訳の品質と時間コストが安いため。
定期購読方式だと割り引きになるし、毎月買わされるんじゃなくて
購入が選べるので、そっちの方がお勧め。過去の号もそこから充当できるし。
他の有名どころでは
http://www.php-mag.net/
紙のメディアでも出版されている(最近はPHP|architectも) が、
昔取り寄せが上手く出来なかった。今はどうかしらんけど。
インプレスが発行予定の雑誌っていつ発売だっけ。
初稿原稿の締め切りはもう過ぎたようなので、今月末ぐらい?
0713nobodyさん
04/07/07 18:43ID:???Unix系の tail のような機能を作りたいんですが
だれかそういう関数をつくっテイル人いますか?
0714nobodyさん
04/07/07 18:44ID:???0715nobodyさん
04/07/07 18:46ID:???php-mag、トラブル多いけどそれなりに届くよ。でも高いのよね。
PDF エディション出てるので、今ならそっちお勧めする、
0716nobodyさん
04/07/07 19:23ID:???0718nobodyさん
04/07/07 19:45ID:???トリガなしで汎用的に監視がしたいならFam関数+αだろう。
0719nobodyさん
04/07/07 20:56ID:H1YWjpHJソース内で
mb_http_output("UTF-8");
mb_internal_encoding("UTF-8");
で指定してもサーバ側が別だとエンコードされません。
ソース内の指示よりphp.iniの方が優先順位が高いのでしょうか。
0720nobodyさん
04/07/07 21:12ID:???mb_http_outputはphp.iniで
output_handler = mb_output_handler
となっているか、ob_start('mb_output_handler')してからだろ。
mb_internal_encodingやmb_http_inputは既に読み込まれている
スプリクトや$_POST,$_GETの文字エンコードは変換されない。
0721nobodyさん
04/07/07 22:22ID:uCG1B5VOSESSIONを使って買い物カゴ的なものを作りたいのです。
・formのラジオボタンで選択したほうの商品名を表示する
・選択した回数に応じて個数を加算していき、それを表示する。(表示ページから入力ページには戻れるようにしてある。)
上記のようなものを実現するにはどのようにしたらよいのでしょうか?
抽象的な表現でもうしわけありませんが、是非よろしくお願いします・・・。
0722nobodyさん
04/07/07 23:02ID:???そこまで決まってるなら後はスクリプトを書くだけなのだが...
サンプルが欲しいなら「ショッピングカート php セッション」あたりでググってみたら?
0723nobodyさん
04/07/07 23:13ID:H1YWjpHJつまり ob_start() 使うとエンコーディング出来ないって事ですか
0724720
04/07/07 23:29ID:???逆。
php.iniでoutput_handlerを指定していない場合は
ob_start('mb_output_handler')としないと、出力時にコード変換は行われない。
実際、mb_output_handlerを使った変換はしたこと無いので、
大外ししているかもしれんが。
0725nobodyさん
04/07/07 23:39ID:???マニュアルになんて書いてあるか知ってて言ってるんだろうな。
出力をバッファリングしたものをコンバートしてるって知ってて言ってるんだろうな。
0726nobodyさん
04/07/08 00:22ID:YCLF39oi過去の書き込みが消えてまったく新しいtextが出来上がってしまいlogとして使い物になりません。
ファイルにもともと書いてあった文章は残して追記するにはどうしたらよいのでしょうか?
またそれぞれの要素をファイルから変数に読み込ませるのはどうするのが最も効率がよいか教えてください。
$name = $_POST['name'];
$title = $_POST['title'];
$fl=fopen("./log/log.txt","w+");
fwrite($fl,$name,$namelen);
fwrite($fl,",",1);
fwrite($fl,$title,$titlelen);
fwrite($fl,",",1);
0727nobodyさん
04/07/08 00:28ID:???⊂⌒( ´・ω・)くぜんぶマニュアルのfopenに書いてあったでつ
`ヽ_っ⌒/⌒c
0728721
04/07/08 00:40ID:VIhri8TSラジオボタンのvalueに各々、<? echo $_SESSION["商品名"]++; ?>を入れてみて実行してみたところ、
両方同時に増えていってしまうし・・・。うわーん・・・。
0729nobodyさん
04/07/08 01:11ID:???0730nobodyさん
04/07/08 03:02ID:YCLF39oiphpでそれぞれ区切られた要素を取り出すにはどのようにしたらよいのでしょうか?
たとえば書き込み本文に半角カンマなどが使われていた場合はそこで間違えて区切ってしまったりするのではないのでしょうか?
たとえば本文で 私は,〜〜です。と言う書き込みがあった場合「私は」と「〜〜です」の二要素に分かれてしまうのではないかと心配しています。
$const=readfile("./log/log.txt");
このようにファイル全体を呼び出したあと具体的にはどのような関数を使ってわければよいのか、ぜひともアドバイスをお願いいたします。
0731nobodyさん
04/07/08 03:32ID:???0732nobodyさん
04/07/08 03:45ID:???もしくはしっかりコード見て盗めyo!
>>721 なんて仕事でやってるんだろう、、それで自分の書いたコードに責任持てるのかと。
0733nobodyさん
04/07/08 03:52ID:???http://jp.php.net/manual/ja/function.fgetcsv.php
0734nobodyさん
04/07/08 06:27ID:YCLF39oi// 終端に達するまでループ
while (!feof($fp)) {
// ファイルから一行読み込む
$line = fgets($fp);
// 読み込んだ行を出力する
print $line;
// <br>の出力
print "<br>\n";
}
この作業を逆に行うにはどうしたらよいのでしょうか?(log.txtの一番下の行から順番に出力させたい)
0737nobodyさん
04/07/08 09:03ID:???r;ァ'N;:::::::::::::,ィ/ >::::::::::ヽ
. 〃 ヽル1'´ ∠:::::::::::::::::i
i′ ___, - ,. = -一  ̄l:::::::::::::::l
. ! , -==、´r' l::::::/,ニ.ヽ
l _,, -‐''二ゝ l::::l f゙ヽ |、 こ
レー-- 、ヽヾニ-ァ,ニ;=、_ !:::l ) } ト
ヾ¨'7"ry、` ー゙='ニ,,,` }::ヽ(ノ チ
:ーゝヽ、 !´ " ̄ 'l,;;;;,,,.、 ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{ __)`ニゝ、 ,,iリ::::::::ミ
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ , な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
0738692
04/07/08 09:03ID:BnTCTIrCありがとうございます。というかここもうちょいちゃんとSEOやってくれ…
[php マガジン]でも[php (ウェブ)雑誌]でもひっかからんからどうしようかと思いました。
0739nobodyさん
04/07/08 10:06ID:???0740nobodyさん
04/07/08 10:11ID:???$codeにはUTF-8が返って来てしまします。この結果に
従いmb_convert_encodingすると拾得ページが文字化け
してしまうのですが、どうしたら良いのでしょうか^^;。
if ($file = @fopen($_REQUEST['url'],'r')){
if ($file) while(!feof($file)) $page .= fgets($file,4096);
fclose($file);
}
$code = mb_detect_encoding($page);
$page = mb_convert_encoding($page,'EUC-JP',$code);
0741740
04/07/08 10:15ID:???$codeが空白に・・あれ・・・
0742nobodyさん
04/07/08 10:39ID:???print $code;
EUCで読み込めてますけどね
0743nobodyさん
04/07/08 10:45ID:???完璧。
0744nobodyさん
04/07/08 10:59ID:???mb_detect_order() でエンコード検出リストを確認してみたら?
php.ini で
mbstring.language = Japanese
にして Apache を再起動するとか、スクリプトの最初に
mb_language('Japanese');
を入れてみるとうまくいくかもしれない。
詳しくはマニュアルで。
0745nobodyさん
04/07/08 11:05ID:???$code = $obj->get('http://www.yahoo.co.jp');
最強。
0746nobodyさん
04/07/08 11:38ID:???> というかここもうちょいちゃんとSEOやってくれ…
> というかここもうちょいちゃんとSEOやってくれ…
是非 >>738 の会社からアシアルに売り込みにいって、顛末記でも書いてくれ。
0747nobodyさん
04/07/08 11:39ID:???0748740
04/07/08 11:47ID:???以下の方法にする事にしましたm(_)m
先にUTF-8で認識されてしまったのが問題みたいでした。
これから、あちこちのページでもテストしてみたいと想います。
貴方のページにもきっと・・・^^w。
$page = @file_get_contents($_REQUEST['url']);
mb_detect_order('eucjp-win,sjis-win,UTF-8');
$code = mb_detect_encoding($page);
0749nobodyさん
04/07/08 11:48ID:???0750nobodyさん
04/07/08 11:54ID:???0751nobodyさん
04/07/08 12:10ID:???0752nobodyさん
04/07/08 12:11ID:???pdfで無料配布してるから
「赤マンモス pdf」でぐぐれ
0753nobodyさん
04/07/08 13:00ID:???0754nobodyさん
04/07/08 13:19ID:???http://pc5.2ch.net/test/read.cgi/php/985315574/l50
0755nobodyさん
04/07/08 13:20ID:???アルファベット順なのがちょっといや。
Math、 BCMath と GMP 関数 なんかは「数学関数」っていう分類
を作って、そこに列挙してほしい。
DB 関連の関数なんかも別に括っておいてほしい。と思たりする。
0756nobodyさん
04/07/08 13:23ID:???欲を言えばfunction searchのほかに
googleではないサイト内検索がほしいが
$_SERVERとか検索するときに困る
0757nobodyさん
04/07/08 13:41ID:Bp5irib3<?xml version="1.0"?>
この記述を入れるとエラーが出てしまいます。
どのように回避したら良いでしょうか?
0758nobodyさん
04/07/08 13:42ID:???0760nobodyさん
04/07/08 14:00ID:axDKGDjf0763nobodyさん
04/07/08 15:00ID:???php.ini か .htaccess あたりに ”short_open_tag = Off” を設定する。
詳しくは、
ttp://jp.php.net/basic-syntax
0764nobodyさん
04/07/08 15:02ID:???0765760(・∀・)
04/07/08 15:05ID:???0767nobodyさん
04/07/08 15:56ID:???phpinfo() を眺めればわかるかも。
0768764
04/07/08 16:02ID:???最初から設定されている変数しか取得できないのかなぁ。
0769nobodyさん
04/07/08 16:30ID:???「最初から」の意味がよくわからないんだけど。CLI だと以下のようになる。
$ OTL=9 php -i | grep OTL
OTL => 9
_SERVER["OTL"] => 9
_ENV["OTL"] => 9
0770nobodyさん
04/07/08 16:55ID:???>幸せになれるかと思います。
この表現キモイ
0772764
04/07/08 16:57ID:???Linux上で
# export TEST=1234
として
php上でTESTと言う名前を指定して、
1234という数字が取得できるかが知りたかったんだ。
0773nobodyさん
04/07/08 17:15ID:???とれる。$_SERVER か $_ENV に格納されているはず。
$ export TEST=1234
$ php -r 'echo $_ENV["TEST"];'
1234
0775770
04/07/08 17:24ID:???MLスレに書くつもりだった
0777nobodyさん
04/07/08 17:31ID:???$_ENVかgetenv()でとれるのは確かだけどモジュール版の場合は
httpdを起動させたユーザーの環境変数が引き継がれるので
サーバー起動と同時にhttpdを立ち上げる設定の場合は無理ぽ。
0778nobodyさん
04/07/08 17:37ID:???なるほど、httpd の起動スクリプトに環境変数を書いておけばいいのかな。
で、764 さんは環境変数を読み込んで何をしたいのか気になります。
0779764
04/07/08 17:50ID:???サーバー起動時にモジュールApacheを立ち上げてていたので、
それが問題になっていたようです。
>>778
バッチ処理で発生した日時データの必要部分を環境変数に保存し、
それをPHP側で利用しようとしていました。
0780nobodyさん
04/07/08 18:01ID:???環境変数じゃなくてファイルに書きこむのではだめですか?
0781nobodyさん
04/07/08 22:29ID:YCLF39oitest
test
test
test
以上のような改行を含んだ文字列の場合最終的には
test<br>test<br>test<br>test<br> このような形へと変更したいのですが
$text = $_POST['text'];
$text = nl2br($text);
$text =rtrim($text);
以上の処理では
test<br />
test<br />
test<br />
test<br />
このように改行コードが取り除かれていないような形になってしまっています。
どのようにすればよいのでしょうか?
0783nobodyさん
04/07/08 22:52ID:YCLF39oi0784カポコン
04/07/09 01:28ID:???質問の回答などに使ってみてください。
いずれ、リスト化させます。
ttp://cgi.f13.aaacafe.ne.jp/~mugen/2ch/
0788nobodyさん
04/07/09 14:06ID:rjBtiSrjその中の<a>タグのHREF属性にあるURLを取得したいのですが
HREF属性は相対URLで書かれている可能性もあるため、上手く処理できず困っています。
HTML中の相対URLを絶対URLに変換するにはどうすればよいのでしょうか?
0790nobodyさん
04/07/09 14:37ID:rjBtiSrjPHP関連はこの板かと思ったのですが・・・
0791nobodyさん
04/07/09 14:39ID:???0792nobodyさん
04/07/09 14:44ID:???httpやftpで始まっていなかったらそれらとくっつける。
始まっていたらそのまま利用する。
./ や / で始まっていたらその部分を削除して、
../ で始まっていたら先ほど取得したパスを ../ が連続する分遡るようにパースしてくっつける。
こんな感じか。
0793nobodyさん
04/07/09 15:31ID:???0794nobodyさん
04/07/09 15:43ID:???そんなことより最近、電動ナナシさそを見かけないけどどこいったんだろう。
0795nobodyさん
04/07/09 16:18ID:???0796nobodyさん
04/07/09 16:45ID:???$year = (!isset($year)) ? date("Y") : $year;
上の?の意味がわかりません。
どなたかご教授よろしくお願いします
0797nobodyさん
04/07/09 16:48ID:???PHPに限らず他の言語でも利用出来るものもあるんだが、
if( !isset( $year ) ){
$year = date("Y");
}else{
$year = $year;
}
と同義な。
0798nobodyさん
04/07/09 17:01ID:9qX+1d8Aphp.iniを編集して
;extension=php_mbstring.dll
を有効にすると
プロシージャ エントリ ポイント spprintf がダイナミックライブラリ php4ts.dll から見つかりませんでした。
Unable to load dynamic library '*****php/extension/php_mbstring.dll'-指定されたプロシージャが見つかりません。
と。上記の2つのメッセージが2回づつ出て、php_mbstringも有効になりません。
extension_dir =の指定は間違っていなくて、php_mbstring.dllも確実にあるのですが・・・
検索しても分からずお手上げ状態
0800nobodyさん
04/07/09 17:55ID:/g6zLd9Zある数値が奇数か偶数かを調べるのに一番最適な方法って何でしょうか?
現在は数値を2で割って余りがあるかどうかで判別してます
0801nobodyさん
04/07/09 18:04ID:???print ( $n % 2 ) ? "奇数": "偶数";
0802nobodyさん
04/07/09 18:05ID:???0803nobodyさん
04/07/09 18:06ID:???0804797
04/07/09 18:14ID:???0805nobodyさん
04/07/09 18:18ID:???print $a&1?'奇数':'偶数';
print $a%2?'奇数':'偶数';
うちの環境じゃ両方とも偶数と吐きやがる
0808nobodyさん
04/07/09 18:42ID:???print preg_match("/[13579]$/",$a)?'奇数':'偶数';
奇数だ。文句あっか?
0810yoshi
04/07/09 22:15ID:UYWtgnDgweb上にエクセル文書(.xls)を置きhtmlの中で
リンクを張りダウンロードできるようにしています。
とくにパスワードなどは何も設定していないのですが、
このファイルをIEからダウンロードしようとすると
IDとパスワードの入力をうながすダイアログが
表示されるという現象が起こっています。
これは何故なのでしょうか?
希望する動作としては何もダイアログなど表示されずに、
ダウンロードできることなのですが。
よろしくお願いします。
0811カポコン
04/07/09 22:58ID:???print preg_match("/[^02468]$/",$a)?'奇数だ。文句あっか?':'偶数だ。文句あっか?';
0812nobodyさん
04/07/10 00:30ID:???は偶数らしいです。
0813nobodyさん
04/07/10 00:48ID:???カポコンファンは黙っていない。バグってるぞ!!!
<?php
$a = 1e99;
print preg_match("/[^02468]$/",$a)?'奇数だ。文句あっか?':'偶数だ。文句あっか?';
?>
0815nobodyさん
04/07/10 01:42ID:89QqCOpOそのやり方で現在のURLの最後が/でない場合、それがディレクトリなのか
ファイルなのかを判別する方法はあるのでしょうか?
例:
現在のURL=http://aaa.co.jp/bbb/ccc
抽出したURL= ../test.html
この場合、cccがファイル名である可能性はないのでしょうか?
そうなると絶対パスが以下のどちらになるのか判定できず困っています。
cccがファイルの場合 http://aaa.co.jp/bbb/test.html
cccがディレクトリの場合 http://aaa.co.jp/test.html
>>793 正規表現で一発で相対パスを置き換える方法があるんですか!
できれば教えていただきたいです。
0817nobodyさん
04/07/10 03:27ID:???実際にアクセスするまで分からない。
ディレクトリならサーバのレスポンスコードが教えてくれる。
HTTP/1.0 301 Moved Permanently
Location: /を付加したパス
0818nobodyさん
04/07/10 08:09ID:???>>817のいうとおり。ちょっとかみくだいて書くと、
cccがディレクトリの場合は、http://aaa.co.jp/bbb/ccc にアクセスすると
http://aaa.co.jp/bbb/ccc/ にリダイレクトするようレスポンスが帰ってくる。
それに従って読み先を変えて読めばいい。
現在のURL=http://aaa.co.jp/bbb/ccc/
抽出したURL= ../test.html
→答え=http://aaa.co.jp/bbb/test.html
になる。
cccがファイルの場合はアクセスすると普通に読めて、
現在のURL=http://aaa.co.jp/bbb/ccc
抽出したURL= ../test.html
→答え=http://aaa.co.jp/test.html
になる。
だから、相対パスから絶対パスへの変換はどちらも同じやり方でできる。
0820nobodyさん
04/07/10 09:31ID:9IEmUTDPこのときあるサイズ以上の大きさには表示させないようにできますでしょうか?
<IMG>タグのwidthやheightで指定すると小さい画像もそのサイズに拡大されてしまうので・・
0821820
04/07/10 09:46ID:9IEmUTDPgetimagesizeでいけますね、すみません。
0822nobodyさん
04/07/10 10:43ID:???1,りんご,200円
2,みかん,100円
3,ぶどう,500円
(data.txt)
というファイルがあったとして
「2,みかん,100円」
を表示させるとしたら、
$lines = file("data.txt");
print $lines[1];
というように出来ると思うのですが、
「みかん」だけを表示させるとしたらどうすればいいか分かりますか?
$lines = file("1.txt");
$ary = fgetcsv($lines[2],1000,",");
print $ary[1]
まず行を読み込んで、カンマ区切りで読み込むというのを考えたのですが、
これはfgetcsvの機能的に無理みたいでした。
0823nobodyさん
04/07/10 10:48ID:???とりあえず、マニュアルでも読めば?
ttp://www.php.net/manual/ja/function.fgetcsv.php
0824nobodyさん
04/07/10 11:01ID:???fgetcsvがfopen()、 popen()、fsockopen()以外では使えないことはわかったんですが、
結局のところどうすればいいんでしょうか
fopenでオープンして、ポインタを2行目に持っていって
fgetcsvを使えればいいと思うんですが、そういうことはできますかね
0825nobodyさん
04/07/10 11:30ID:???こんな感じかな。
<?php
function 絶対URL($現在のURL,$相対URL){
$p=array('@/\.(?=/|$)@', '@^(.+//.+)/(?!\.\./)[^/]+/\.\.(/.*|)$@e');
$r=array('','preg_replace($p,$r,str_replace(\'\\\\"\',\'"\',\'\\1\\2\'))');
return preg_replace($p,$r,substr($現在のURL,0,strrpos($現在のURL,'/')+1).$相対URL);
}
$a='http://aaa.co.jp/bbb/ccc/ddd/eee/fff';
$b='././../.././././a/../a.a/../a/b/../../../b/.';
print "$a\n$b\n";
print 絶対URL($a,$b);
?>
0826nobodyさん
04/07/10 11:42ID:???array_map('deny_host',$hosts);
function deny_host($str){
$host=gethostbyaddr($_SERVER['REMOTE_ADDR']);
if( mb_ereg($str,$host) ){
echo "<html>\n<head>\n<title></title>\n</head>\n<body>\n</body>\n</html>";
exit;
}
}
このようなアクセス拒否(というか空白を表示する)スクリプト使ってるんですが
自分でもちょっとトリッキーかな、と思ったりするのですが普通はどうしてますか?
0827nobodyさん
04/07/10 11:51ID:???0828nobodyさん
04/07/10 12:11ID:???> PHPのイメージ関数により JPEG、GIF、 PNG、SWF、 TIFF、JPEG2000イメージの 大きさを知ることができます。
0830nobodyさん
04/07/10 14:53ID:???できる。
fopen() で開いてから fgetcsv() で1行目を読んで無視しして、再度読み込んだら2行目。
>>826
わざわざ array_map() を使う意味がわからない。
普通に以下のように処理したら駄目なのか?
$regex = 'hoge|moge';
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
if (eregi($regex, $host)) {
exit;
}
0832nobodyさん
04/07/10 17:43ID:???explode使わないのは理由があるのか?
1,"みかん,リンゴ","500円"
とか""で括られたデータも扱いたいなら
Stream_Var使え。
require_once('Stream/Var.php');
stream_wrapper_register("var", "Stream_Var");
$lines = file('fruits.dat');
$fp = fopen('var://GLOBALS/lines/2', 'r');
$fruit = fgetcsv($fp, 1024);
print_r($fruit);
fclose($fp);
0833nobodyさん
04/07/10 18:38ID:???どのサーバーでもたいがいインストールされてるのかなぁ
0834nobodyさん
04/07/10 18:53ID:???そんな質問投げてる時点で素人
まず PEAR のなんたるかを勉強しる!
http://phphp.net/pearwiki/?%5B%5BAN_INTERVIEW_OF_STIG_BAKKEN%5D%5D
http://pear.sakura.vg/index.php?%5B%5BPEAR%A5%DF%A1%BC%A5%C6%A5%A3%A5%F3%A5%B0%CD%D7%CC%F3%5D%5D
0836nobodyさん
04/07/10 19:57ID:???is_numericを使うと数値しか判断されないんですよね?
半角英数字を判断する命令文はあるのですか?
0838nobodyさん
04/07/10 20:10ID:???このように取得して処理する場合 $_GET['mode'] でよいのは分かるのですが
index.php?abc
として処理をさせたい場合、どのように記述すればよいのでしょうか?
0839nobodyさん
04/07/10 20:26ID:???0840nobodyさん
04/07/10 20:27ID:???PEAR を使うのも悪くないけど、今回のような場合は使わなくても簡単にできるような気が・・・。
質問者はあまり考える気はなさそうなのでどうでもいいけど。
$line = 2;
$fp = fopen('data.txt', 'r');
while (--$line) fgetcsv($fp, 1024);
$fruit = fgetcsv($fp, 1024);
fclose($fp);
print_r($fruit);
0843nobodyさん
04/07/10 22:13ID:???変数毎に2行書くのはなんか嫌だなと・・・・
php.iniのdisplay_errorsはoffにして気づかない事にするべきかなぁ
みなさんは変数毎に両方のチェックをしていますか?
0845nobodyさん
04/07/10 22:56ID:???!empty($val)は?
0846nobodyさん
04/07/10 23:03ID:???PHPでも$_SERVER["argv"]使ってる。
0847nobodyさん
04/07/11 00:38ID:???0848nobodyさん
04/07/11 00:41ID:???0849847
04/07/11 00:48ID:???$_SERVER['REMOTE_ADDR']でできますね・・。
0850nobodyさん
04/07/11 03:22ID:???0853nobodyさん
04/07/11 04:08ID:???http://www.boutell.com/gd/faq.html
0854nobodyさん
04/07/11 05:16ID:???0855nobodyさん
04/07/11 05:39ID:???ファイルに保存するのにはどうしたらいいですか?
`wget www.hoge.com/file`;
という行を、wget を使わず、phpの機能だけで実現したいのです。
0856名無しさん@そうだ選挙に行こう
04/07/11 06:54ID:???で何を使う?
0857名無しさん@そうだ選挙に行こう
04/07/11 09:02ID:???open
0858名無しさん@そうだ選挙に行こう
04/07/11 12:33ID:???$val = ereg_replace("<!--([0-9a-z._-])-->","\\1",$val);
の「>」がマッチ出来ないのですが何故でしょうか?
0859名無しさん@そうだ選挙に行こう
04/07/11 12:51ID:???abcとしたいのなら、
$val = ereg_replace("<!--([0-9a-z._-]+)-->","\\1",$val);
0860名無しさん@そうだ選挙に行こう
04/07/11 13:05ID:???ありがとうございますm(_)m
0861名無しさん@そうだ選挙に行こう
04/07/11 17:26ID:0oJHpIPmPHP内でPerlのコードを記述することは可能でしょうか?
どうしてもPHP使いたくないもんで。
よろしくお願いします。
0862nobodyさん
04/07/11 18:19ID:???0863名無しさん@そうだ選挙に行こう
04/07/11 18:19ID:fHFfT4lGecho('今から処理します');
と返して、httpコネクションを切ってから
重たい処理をさせたいのですが、
どうやったらhttpコネクションを切れますか。
0864名無しさん@そうだ選挙に行こう
04/07/11 18:21ID:???0865nobodyさん
04/07/11 18:33ID:???register_shutdown_function() を使ってみるとか。
ttp://www.php.net/manual/ja/function.register-shutdown-function.php
0866名無しさん@そうだ選挙に行こう
04/07/11 19:01ID:???copy('http://www.hoge.com/file', 'file');
こういう機能を使うときに
ああ、phpって幸せだな
と思う。
0867名無し募集中。。。
04/07/11 21:56ID:/oo9N7Gmどれが一番いいの?
0868カポコン
04/07/11 22:50ID:???0869nobodyさん
04/07/11 22:59ID:???そんなもの存在しません。終了。
0871nobodyさん
04/07/11 23:20ID:???性能で言うならAPC, PHPA, MMCacheの中ではMMCacheが良いと思う。
対応しているアーキテクチャも多いし。
ただ現在は開発が停止中なので最新のPHPと組み合わせて使うにはちょっと不安がある。
まれにスクリプトを更新したとき期待通りに動かなくなって、
/tmp/mmcahe-*を削除したら直ったりするので。
開発再開を期待して待ちましょう。
>>869,870
知らないなら余計なことは言わない方が...
0872nobodyさん
04/07/11 23:21ID:???釣りか?
いっそ PHP 自体使うなと言いたい。
0873nobodyさん
04/07/11 23:24ID:???それ全部ライセンスで 「無料」 でなければならないとは定められていない。
メモリ上に直接キャッシングを行うのって、MMCache だけだと思ってたけど、
APCやPHPAもそうなの?
0874nobodyさん
04/07/12 00:49ID:qiJhhqFohttp://www.stackasterisk.jp/tech/php/apc01_01.jsp
0875nobodyさん
04/07/12 05:45ID:Q0IoRcBp<?php
print <<<EOF
古池や
蛙飛び込む
水の音
EOF;
?>
このソースで 古池や蛙飛び込む水の音 と一行につながって表示されてしまいます。
どの変が間違っているのでしょうか。php4.3.7です。
0876nobodyさん
04/07/12 06:49ID:c+JkP+leprint($aryCnt[1]);
の出力結果が
2 test2 title2 degree2 2004 7 10 23 40 mail2 home2 1 0 1 test2 uchi-mmkmldegej
なのですがこの文字列に対して
list($num[$j],$name[$j],$title[$i],$degree[$j],$year[$j],$month[$j],$day[$j],$hour[$j],$minute[$j],$mail[$j],$url[$j],$mem[$j],$lang[$j],$br[$j],$text[$j],$host[$j],$browser[$j])
=explode("\r",$aryCnt[1]);
以上の処理でここの変数に値を格納したいと考えているのですが何故かうまくいきません。
ファイルへの書き込み形式は
fputs($fl,$Cntary,$Cntarylen);
fputs($fl,"\r",2);
fputs($fl,$name,$namelen);
fputs($fl,"\r",2);
fputs($fl,$title,$titlelen);
fputs($fl,"\r",2);
fputs($fl,$degree,$degreelen);
fputs($fl,"\r",2);
・・・・・
出力結果は以下のとおりです。
print(count($title)); →1
print_r(array_values($title)); →Array ( [0] => )
どこに問題があるかご教示ください。よろしくお願いします。
0877nobodyさん
04/07/12 08:17ID:???ブラウザ出力のソースを表示させると、改行されてませんか?
textとして改行していても htmlとして解釈した場合には改行されません。
0878nobodyさん
04/07/12 10:20ID:ntR1QL+F<input type='text' name='hoge' value='foo2'>
一つのフォームで同じnameの値をPOSTでCGIに渡すと、受け取った値には
'foo1 foo2'と入ります。
これを<textarea>内に表示させてると'foo1 foo2'が表示されますが、
コピー&ペーストをすると'foo1'だけしかペーストされません。
foo1とfoo2の間に区切り文字が入っているのでしょうか?
これを一つの値としたいのですが妙案がありましたらご教授ください。
0879878
04/07/12 10:31ID:???散々調べた後に質問したのですが、検索を続けていたら解決方法を見つけました。
区切りに\0が入って値が渡されることを見つけました。
お騒がせしました。
0882nobodyさん
04/07/12 18:57ID:sEDp1Uf0日本語名のファイルが化けてしまいます。
日本語を使う方法ってなにかありませんでしょうか?
0883nobodyさん
04/07/12 19:03ID:???0884nobodyさん
04/07/12 19:22ID:???xws-core-0.3.4.zipがほしいのですがどこに落ちてますか?
ぐぐっても落ちてません。
0885nobodyさん
04/07/12 19:33ID:c+JkP+lefput長さ指定なしにしましたが何も変わりませんでした・・・・
0887nobodyさん
04/07/13 02:37ID:AiceQq3qformから入力したマルチバイト文字のデータをphpにとおすとき、
shift_jisの場合は、0x5cの関係で文字化けが発生してしまいますよね。
そのため、euc-jpでformに入力する必要があると思うのですが、
最終的には shift-jis でデータを送りたいのです。
この場合、一体どのような方法を取ればいいのでしょうか?
euc-jpでform入力後、jcode.php 等でeuc-jpからshift-jisに
変換するというのが一般的な方法なのでしょうか?
他に方法はありますでしょうか?
よろしくお願いしますm(__)m
0888nobodyさん
04/07/13 03:03ID:???http://jp.php.net/manual/ja/ref.mbstring.php
0889nobodyさん
04/07/13 04:38ID:???・mb_convert_encoding関数による方法
・jcode.phpを使う方法
・mb_output_handler関数による方法
・mbstring.http_outputの設定で行う方法
それぞれの利点/欠点を比較して採用を考えましょう。
0890nobodyさん
04/07/13 08:57ID:???こういう余計な前置きは嫌われるからヤメロ
0893nobodyさん
04/07/13 11:43ID:???0894nobodyさん
04/07/13 14:02ID:???ラム爺タソ、乙。
0895nobodyさん
04/07/13 14:34ID:???0896nobodyさん
04/07/13 14:34ID:???0.3.4 なら eclips のプラグインマネージャから直でインストール出来た気がする (うろ覚え
そっちからなら取れるかも知れないし、まぁ試してみては。
文字化けっていうのが表示が表\示となるようなものなのなら
stripslashesを通せばよろし。
変換については>889にあるとおりどぞ。
0898nobodyさん
04/07/13 21:25ID:???作ろうとしているところなのですが、
画像をDBに格納する際に、いったんファイルとして
保存しなければならない点が何となくいやなので
できればそのまま直接DBに格納したいと思っているのですが、
方法がよくわかりません。
どなたか教えてくだされ。
0901nobodyさん
04/07/14 05:11ID:???0902nobodyさん
04/07/14 09:50ID:???画像ディレクトリ作ってファイル名だけDBへ格納すりゃいいじゃん
0903nobodyさん
04/07/14 10:20ID:???画像ディレクトリを作ろうとすると
ユーザーに対してパーミッションの変更など
よけいな操作を強いることになります。
したがって、画像をDBで管理したいと考えています。
0904nobodyさん
04/07/14 10:31ID:???そのへん使わないといけないなぁ。
ラージオブジェクト使うと色々と面倒なことが起きる場合があるから
>>902のように普通に保存するようにすればいいと思うよ。
0905nobodyさん
04/07/14 10:53ID:???ob_get_contents()
ob_clear()
でできました。
0906nobodyさん
04/07/14 14:33ID:???0907nobodyさん
04/07/14 14:33ID:???0908nobodyさん
04/07/14 15:09ID:k/PvMH0Mchmod("./log".$datcountr.".dat",0777);
fopen("./log".$datcountr.".dat","a+");
//fputs("./log".$datcountr.".dat","\r\n");
上記のファイル作成から書き込みの流れでfputs部をコメントアウトするとエラーは出ませんが
コメント外すとエラーが出ます
ファイル作成まではできているのでパスの指定が間違っているわけではなさそうなのですが
よろしくお願いいたします。
0910nobodyさん
04/07/14 15:22ID:???とりあえずfopenで拾ったハンドルをfputsのリソースとして使ってみなさい
$handle = fopen("./log".$datc(略
fputs($handle,"\r(略
こんな具合に。
参考までに
http://www.php.net/manual/ja/function.fputs.php
0911nobodyさん
04/07/14 15:22ID:???fputsの行とマニュアルのfputsのページを穴が空く程よく見ろ
0912nobodyさん
04/07/14 15:33ID:???無理なのでしょうか?目標はデータベースとのやり取りを考えています
0913nobodyさん
04/07/14 15:37ID:???最終的にレンタルサーバかなにか知らないけど、他人に迷惑かける環境でのテストは感心しない
0915nobodyさん
04/07/14 15:41ID:???0916nobodyさん
04/07/14 15:42ID:???やってほしくないのは、
-全世界に公開しているサーバーでテストすること。
-共用サーバーでテストすること。
理由は自分で考えて。
別にサーバーに特化したマシンが無くてもテストはできる。
とりあえず、手元のマシンに PHP と httpd をインストールしてみたらどうか。
勉強するには十分。
0918nobodyさん
04/07/14 15:49ID:???以前手元のマシンにPHP(最新版)をインストールしたところ
特定のサイトでPHPの初期画面(?)が表示されるようになり
閲覧が出来なくなってしまったんです。
その際は確か簡単にインストールが出来るという、パッケージを使いました。
それからPHPは専用のサーバが無いと無理なのかと考えてしまってたんです。
もう少し調べてみようと思います。ありがとうございました。
0919nobodyさん
04/07/14 15:54ID:???PHPマニュアルのインストールの項を熟読しろ
http://www.php.net/manual/ja/getting-started.php
0920nobodyさん
04/07/14 17:06ID:???> 特定のサイトでPHPの初期画面(?)が表示されるようになり
> 閲覧が出来なくなってしまったんです。
ん?もうちょっと分かりやすく書いてくれ
0921nobodyさん
04/07/14 17:48ID:tmsEgaLNこういう命令を見ると、
ああ、phpって本当にキモイなぁ
と思う。
HTTPリクエストによるファイルの取得を
ファイルのコピー風にするなボケ言語。
0922nobodyさん
04/07/14 18:01ID:???こういうカキコを見ると、
ああ、アンチphpユーザって本当にキモイなぁ
と思う。
ファイル空間をHTTPまで拡張して一元化・隠蔽しただけなのに
利便性などのメリットを語らずキモイとかゆうな似非原理主義者。
0923nobodyさん
04/07/14 18:08ID:???嫌ならそんなロジックにしなければ問題ない。
0924カポンコ
04/07/14 18:15ID:???質問は無いのかー!!
0925nobodyさん
04/07/14 18:18ID:???0926nobodyさん
04/07/14 18:20ID:???0927nobodyさん
04/07/14 18:22ID:???0928nobodyさん
04/07/14 18:27ID:???0929nobodyさん
04/07/14 18:43ID:???0930nobodyさん
04/07/14 18:48ID:VoMOFkAb>あいうえお
>かきくけこ
って表示させて、実際にログに記録するときは
<blockquote>あいうえお<br />かきくけこ</blockquote>新規入力文章ほにゃらら
とさせるのは無理矢理なんとか出来るのですが、
>>あいうえお
>>かきくけこ
>新規入力文章ほにゃらら
と引用部分が、どんどん入れ子状態になると出来ません。
なにか良いアイデアないでしょうか?
0931nobodyさん
04/07/14 18:52ID:???0932nobodyさん
04/07/14 18:54ID:???ログに保存する時は
>>あいうえお
>>かきくけこ
>新規入力文章ほにゃらら
のままにして、htmlに展開する時に行頭の>を頼りに、
タグをくっつけていくのが賢いと思います。
0933nobodyさん
04/07/14 18:55ID:???0934nobodyさん
04/07/14 18:59ID:0gUuBq5Cスタイルシート使えば?
0935nobodyさん
04/07/14 19:01ID:???0937nobodyさん
04/07/14 19:22ID:???0938nobodyさん
04/07/14 20:29ID:???そんなことより4.3.8が
0939930
04/07/14 22:01ID:???アドバイスの通り、ログ保存は
>>>第一の引用>>>改行で続く>>第二の引用>第一の引用>改行で続く
みないな書式で、表示時に
<blockquote>
<blockquote>
<blockquote>
第一の引用<br />
改行で続く
</blockquote>
第二の引用
</blockquote>
第一の引用<br />
改行で続く
</blockquote>
としようとしたのですが、どうしても</blockquote>で閉じることが出来ません orz
0941930
04/07/15 01:52ID:???$value = "> > > てすと\n> > > 開業ですわ\n> > 2段目\n> 1段目";
$value_array = explode("\n",$value);
$flag = 0;
foreach($value_array as $value_line){
if(preg_match_all("/> /m",$value_line,$match)){
$match_num = count($match[0]);
if($flag == 0){
$line = substr($value_line,$match_num*2);
for($i=0;$i<$match_num;$i++){
$msg .= "<blockquote>";
}
$msg .= $line;
$flag = 1;
$match_num_oya = $match_num;
}elseif($flag == 1 && $match_num == $match_num_oya){
$line = substr($value_line,$match_num*2);
$msg .= "<br>" . $line;
}elseif($flag == 1 && $match_num < $match_num_oya){
$line = substr($value_line,$match_num*2);
$msg .= "</blockquote>" . $line;
$match_num_oya = $match_num;
}
}
}
$msg .= "</blockquote>";
0942nobodyさん
04/07/15 05:11ID:???0943nobodyさん
04/07/15 07:37ID:???0944nobodyさん
04/07/15 09:02ID:???0945nobodyさん
04/07/15 10:01ID:???使ってから文句イエーイ
私のもはりつけてみましょっかね。
昨日はろうとしたらアク禁でorz
0947nobodyさん
04/07/15 10:20ID:???php4が邪魔だぁ!!と文句を言われます;;
共存させる事は出来ないのでしょうか?
$value = ">>> てすと\n>>> 開業ですわ\n>> 2段目\n> 1段目";
echo block_quote($value);
function block_quote($v) { bq_match(); $v =
preg_replace_callback('/^(>*)(.*)$/m', 'bq_match', $v);
return str_replace("\n", '<br>', $v . bq_match()); }
function bq_match($m = false) { static $i; $i2 = $i;
return str_repeat('<' . (0 < ($i = strlen($m[1])) -
$i2 ? '' : '/') . 'blockquote>', abs($i - $i2)) . $m[2]; }
0950nobodyさん
04/07/15 15:05ID:???pg_connect が動作しなくなった
マニュアル見たら 引数が変ってる
なんてこったい _| ̄|○
0951nobodyさん
04/07/15 15:15ID:???0952nobodyさん
04/07/15 15:18ID:???4.3.8または5.0.0にバージョンアップするかmemory_limit機能を無効にしろだと?
うちは4.2系だから辛いなぁ・・・
ここは漢らしく一発memory_limit OFFでいくか?
誰か俺もmemory_limitで対処するぜっという仲間はいない?←と同志を募るあたり女々しい
0953nobodyさん
04/07/15 17:08ID:???DB関係の変更だけで済むのならいいんだが、順次対処していって、どつぼにはまるのは嫌嫌嫌嫌
>>952
> うちは4.2系だから辛いなぁ・・・
4.1系のおいらは もっと辛い
> ここは漢らしく一発memory_limit OFFでいくか?
うーむ・・・
0954nobodyさん
04/07/15 17:17ID:IpnLix62ちなみにPHPバージョンは4.3.7
削除してインストールし直さなきゃならないなら5.0.0にしようかな
0955nobodyさん
04/07/15 17:53ID:At3KjVK/make dist
make cleandist
した後に普通に上書きしていけば良いよ。
Linuxの話だが。
0956nobodyさん
04/07/15 17:57ID:IpnLix62すいません
Windowsの話でした_| ̄|○
0957nobodyさん
04/07/15 18:51ID:???windowsバイナリなら漏れはいつも上書きしてる
今まで問題起こったこと無いから多分大丈夫だ
ってか、削除後に上書きでも対して面倒じゃない気がするが
0958nobodyさん
04/07/15 19:19ID:IpnLix62d!
アパッチのサーバーモニターのバージョン表示では4.3.8になってるけど…
<?php phpinfo(); ?>で表示した画面のバージョンはまだ4.3.7…
う〜ん…アパッチでは4.3.8と認識してるからこのままでいいのかな
0959nobodyさん
04/07/15 19:21ID:???0960カポ
04/07/15 19:52ID:???net start apache
コレで十分だろ
0961nobodyさん
04/07/15 19:55ID:IpnLix62もちろんやりましたよ…
っていうか上書きはサーバーストップしないとできなかったですし
0962nobodyさん
04/07/15 20:57ID:+fR0HFAVプレビュー画面を表示させたいのですが
どうすればよいのでしょうか?
0963nobodyさん
04/07/15 21:03ID:???どう考えてもムリだろ
サーバにアップロードされなくてはPHPから手の出しようがない
どうしてもというならJavaか何かでクライアントサイド処理の話で板違い
0964nobodyさん
04/07/15 22:20ID:???checkdnsrrですかね?
使い方おしえてください
よろしくおねがいします
0965nobodyさん
04/07/15 22:29ID:???ちょっと待ってね、考えてみる。
0967nobodyさん
04/07/15 22:37ID:???ごめんね。頑張ってはみたの。
0968nobodyさん
04/07/15 22:38ID:fzsAP17JJavascriptがあんだろうが!
0969964
04/07/15 22:42ID:???無理ですかね^^;;
0970nobodyさん
04/07/15 23:06ID:dhGDtDFUー ←これがあるとエラーになるんです。
UTF-8でエンコーディングをしても駄目です。
知恵をお貸し下さいます様お願い致します。
0971nobodyさん
04/07/15 23:32ID:???0972nobodyさん
04/07/15 23:35ID:dhGDtDFU自動リンク集の様な物を作っててキーワード検索で入力した時にエラーになるのです。
それは登録の際にーを−に変換し
検索時も−に変換すれば?って事でしょうか?
0973nobodyさん
04/07/15 23:52ID:???文字コードは何使ってん? 状況よろ。
0975nobodyさん
04/07/15 23:56ID:dhGDtDFU内部の文字コードはEUC-JPです。
0976nobodyさん
04/07/16 00:13ID:???ととおるが・・・
$string= "キッコーマン";
if(preg_match("/コーマン/",$string)){
echo $string;
}//こういうことじゃない?詳しく状況キボンヌ
0977nobodyさん
04/07/16 00:24ID:???有難う御座います。今から調べて試してみます。
>>976さん
$data = file($logfile);
foreach($data as $val){
list(123) = explode("<>",$val);
if(preg_match("/$word/",$val){
$flag=1;
}
}
こんな感じです。php_iniの設定が何か間違ってるのでしょうか…
0979nobodyさん
04/07/16 00:35ID:???任意のコードを実行できる脆弱性が発見された模様。 PHP実行プロセスのメモリ使用量を制限する
memory_limit機能のバグをついたものだ。対象となるPHPのバージョンは
4.3.7以前のすべてのバージョン
5.0.0RC3以前のすべてのバージョン
0980nobodyさん
04/07/16 00:35ID:???処理が増える上、一気に複数の情報をDBに出し入れ、削除する」って部分があるんですが
(ちなみに、そのユーザーには直接関係ない処理ばかり)
こういう処理中ってユーザー側の行動(ブラウザ閉じたり)で
データに破損があったりするんですか?
ないと思ってたんですが…system関数調べてたらよく分からなくなってきちゃって……
アホな質問ですいません。
0981nobodyさん
04/07/16 00:38ID:???$data = array("ヤッターマン","キッコーマン","仮面ライダー");
foreach($data as $val){
if(preg_match("/$word/",$val)){
echo $val;
}
}
php_iniの設定は関係なく
保存されてるファイルの文字コードが違ってたりは? んーなんでかねー。
0982nobodyさん
04/07/16 00:47ID:???この部分ってどういう意味なんだろう? んー。
0983nobodyさん
04/07/16 00:49ID:???こんなエラーになります。
(123) = explode("<>",$val);は特に意味がないです。通常のデータが入ってる配列です。
0984nobodyさん
04/07/16 00:56ID:???)が足りないとか・・・
0985nobodyさん
04/07/16 00:57ID:???0986nobodyさん
04/07/16 00:58ID:???$data = array("ヤッターマン<>53才","キッコーマン<>17才","仮面ライダー<>56才");
foreach($data as $val){
$list = explode("<>",$val);
if(preg_match("/$word/",$list[0])){
echo $list[0]."は".$list[1];
}
}//んー。
0987nobodyさん
04/07/16 01:05ID:???>>986さんのソースのまんまでもエラーです。
Warning: Compilation failed: missing terminating ] for character class at offset 8 in C:\www\home\99.php on line 6
0988nobodyさん
04/07/16 01:13ID:???mbstringだか、設定やったかい? 残念、これくらい。
0990nobodyさん
04/07/16 01:16ID:???0991nobodyさん
04/07/16 01:18ID:???大至急確認してみますです。
こんな夜中に有難う御座いますです。
986さんは優しい人ですね。本当に有難うです。
$data = array("ヤッターマン<>53才","キッコーマン<>17才","仮面ライダー<>56才");
foreach($data as $val){
$list = explode("<>",$val);
if(preg_match("/$word/",$list[0])){
echo $list[0]."は".$list[1];
}
}//
0993nobodyさん
04/07/16 01:34ID:AqvvA+DF出来ました!! 本当に有難う御座いました!
もっともっと勉強します。
優しい人ばかりで今日はとても嬉しいです 涙
0994nobodyさん
04/07/16 02:48ID:KvHeypq/librariesが無いと返されます
PHPのバージョンは4.3.8です
configure
./configure --with-pgsql --with-apxs2=/usr/local/apache2/bin/apxs
--enable-versioning --enable-mbstring --enable-mbstr-enc-trans
--with-zlib --with-gd --without-mysql --with-openssl
--with-curl --with-curlwrappers --enable-bcmath
--with-jpeg-dir=/usr/local
.forwardの中身
"| /usr/local/bin/php /home/script/test.php"
------------------エラーメール-------------------------
The original message was received at Fri, 16 Jul 2004 02:20:40 +0900
from *****
----- The following addresses had permanent fatal errors -----
"| /usr/local/bin/php /home/script/test.php"
(reason: 127)
(expanded from: <test@test.com>)
----- Transcript of session follows -----
/usr/local/bin/php: error while loading shared libraries: cannot open shared object file: cannot load shared object file: No such file or directory
554 5.3.0 unknown mailer error 127
-------------------------------------------------------
もう何がなにやらワケワカメ
どなたかヘルプミーorz
0995nobodyさん
04/07/16 05:02ID:???これでもだめ?
0996994
04/07/16 06:41ID:KvHeypq/#!/usr/local/bin/php
と付けてもメールを送ってもダメです
コマンドラインではちゃんと動くんですが・・・
------------------エラーメール-------------------------
The original message was received at Fri, 16 Jul 2004 02:20:40 +0900
from *****
----- The following addresses had permanent fatal errors -----
"| /home/script/test.php"
(reason: 127)
(expanded from: <test@test.com>)
----- Transcript of session follows -----
/usr/local/bin/php: error while loading shared libraries: cannot open shared object file: cannot load shared object file: No such file or directory
554 5.3.0 unknown mailer error 127
-------------------------------------------------------
環境はLinuxです
0997nobodyさん
04/07/16 06:51ID:G5BXIcyS>>995 このようなレス番号にカーソルを合わせると過去レスの書き込みが見えるような機能を搭載したいと考えております。
(2chブラウザなどによくある奴)
">num" このような文字列を取得し <P title="<?php print("説明文"); ?>">文字</P>
このように置換するのがもっとも適当かと考えているのですが
">num" この数字部分の取得ってどうすればいいのでしょうか?
たとえば ”>” のあとが文字列だった場合や数字の桁数が上がっていった場合などの対処法が考えつきません。
「ここからここまでの文字列は数字です」的な判別をさせるにはどのようにすればいいのでしょうか?
0998994
04/07/16 07:03ID:KvHeypq/preg_replace_callbackを使うと楽に置換出来ると思いますよ
preg_replace_callback('/>([0-9]+)/','henkan',$body);
function henkan($str) {
$int = $str[1];
//--取得された数字で処理
return $int;
}
http://www.zend.co.jp/products/studio/ZendInformationCenter/php_manual/php_function_refrence/function.preg-replace-callback.html
0999994
04/07/16 07:14ID:???新スレでお願いしますorz
【PHP】質問スレッドpart19【php】
http://pc5.2ch.net/test/read.cgi/php/1089929550/
1000tks
04/07/16 07:24ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。