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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/07/23(日) 20:00:03ID:???
PHPに関するくだらねぇ質問用スレです。
ここならお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

過去スレは>>2
0604nobodyさん2006/08/01(火) 20:35:20ID:???
>>602
sprintfで対処できました。
http://jp.php.net/sprintf
ありがとうございました。
0605nobodyさん2006/08/01(火) 20:39:21ID:???
>>603
こっちのほうが指定が簡単ですね。
処理速度計算して早いほう使ってみようと思います。

ありがとうございました。
0606nobodyさん2006/08/01(火) 22:20:27ID:???
>>605
専用に実装された関数と、もっと汎用性のある関数じゃ比較しようも無いと思うがなぁ。
0607nobodyさん2006/08/01(火) 22:29:09ID:???
Cだとprintfって結構重かったようなきがする
0608nobodyさん2006/08/02(水) 00:01:08ID:???
文字列処理について質問があり・・・というか、ボスケテ!!

例えとして「sample.txt」というファイルには下記のようなテキストが入っています。
2ch;giko;nanasi;\n
test;test;test;\n

これを

$list=$file('../data/sample.txt');
foreach($list as $line){
$array_list_tmp[]=$line;
$n++;

}

で、1行ずつ$array_tmp[]にいれまして

$findme=';';
for($x=$begin;$x<=$end-($end-$n);$x++){
$mystring=$array_list_tmp[$x];
for($y=0;$y<=2;$y++){
$setcount=strpos($mystring,$findme);
$array_list[$x][$y]=substr($mystring,0,$setcount-1);
$mystring=substr($mystring,$setcount);
}
}


で';'が最初に見つかる桁までの値を取得して、';'は必要ないので値-1で必要な文字列だけを取得したいんですが。
変数の中身が1回目のループ分しか取得できず、あとは''になってます。
馬鹿にもわかりやすく易しい文字列処理の方法がありましたご教授して欲しいであります。
0609nobodyさん2006/08/02(水) 00:06:55ID:???
>>608

$fdata = str_replace("\n", '', file_get_contents('../data/sample.txt'));
$mystrings = explode(';', $fdata);

何がしたいのかは知らんが。
0610nobodyさん2006/08/02(水) 00:40:54ID:???
>>608
最初のforeachって意味あるの?
0611nobodyさん2006/08/02(水) 00:46:27ID:???
ノートパソコンでもローカルサーバー作れましたっけ?
0612nobodyさん2006/08/02(水) 00:47:29ID:???
>>608
お前のやりたい事はは>>609の二行で網羅できる。
もうちょっと落ち着いてみろ
0613nobodyさん2006/08/02(水) 01:00:43ID:???
>>611
そりゃできるけど。
0614nobodyさん2006/08/02(水) 01:11:39ID:???
>>609,612
どうもありがとうございます。
explodeがあったんですね、しかし今は頭煮立ってましてダメぽです・・・。
まだ初めて二日目なのでコツコツと試行錯誤してみます。

ソースの意味が良くわからないのに助言求めてすいません・・・。
とりあえず頭冷やしてから助言頂いたやり方でがんばってみます。
0615nobodyさん2006/08/02(水) 01:17:44ID:???
>>605-607
Cの場合、他の一般的処理がめっぽう速いから、printf系みたいに
パラメータの文字列解析と可変引数を含む処理は相対的に遅くなるんだよね。
PHPの場合、変数の処理自体がその種の解析とメモリアロケーションを含むので
全体にCほど速くないからprintf系もさほど問題にならない。
実際、sprintfとstr_padだと1.5倍ほどsprintfの方が遅い程度。(Cだと10倍くらい違うので大問題)
このくらいなら500万回ループとかでもない限り「使いやすい方を使う」で全然問題にならないと思う。
(1000回くらい使っても0.001秒ほどしか差が出ない)

それでもとにかく速い方がいい、というのであれば、str_padの方が速いよ。当然だと思うけど。
0616nobodyさん2006/08/02(水) 01:19:51ID:???
>>614
初めてまだ2日程度でいきなり他人に頼ろうと思ったこと自体が間違ってる。
もうちょっと自力で悩んでみ。

中学生がPHPを習得するスレ
http://pc8.2ch.net/test/read.cgi/php/1139746974/
とか
くだすれPHP(超初心者用)
http://pc8.2ch.net/test/read.cgi/php/1150088761/
に行くのもいいかもね。
0617nobodyさん2006/08/02(水) 01:30:38ID:???
>>614
むしろ、便利な関数に頼らず1度は文字列処理に頭を悩まし
アルゴリズムを色々考えた方が今のうちは勉強になるぞ。がんばれ。
0618nobodyさん2006/08/02(水) 01:32:25ID:???
しかし凄いな。始めて2日という事は仕事で、というわけではないと思うが、
俺が学生の頃なんかプログラミングなんか全然やらなかったな・・・
0619nobodyさん2006/08/02(水) 01:35:26ID:???
商業高校・工業高校辺りなら20年も前からプログラミングの授業くらい普通にやってるぞ。
「俺が学生の頃」って一体何十年前の話さ。
0620nobodyさん2006/08/02(水) 01:47:35ID:???
すまなんだ。俺普通高だったんだ・・・
あの先生は元気かな・・・綺麗な人だった・・・
言っておくがまだまだ20代だぜ!
0621nobodyさん2006/08/02(水) 05:28:46ID:FnbeRIVd
書籍を参考にPHP5.14をインストールしました。
動作確認として
<? phpinfo(); ?>
と書かれていて実行しても動作しませんでした。
あれこれ3日間悩んだあげく、別の書籍で、
<?php phpinfo(); ?>
とあり、問題なく動作させることができました。
「<?php」が「<?」のみであった記述は
バージョン違いで動作しなかったのか、書籍の間違いであったのか
未だにわかりません…どちらなのでしょうか?
0622nobodyさん2006/08/02(水) 05:58:04ID:???
>>621
php.iniまたは.htaccessでshort_open_tagをONにしないと<? ?>形式は使えない。
標準ではこれはONになってるはず。(php.ini-distを使う場合)
アーカイブに同梱されているphp.ini-recommendedではXML併用対策としてOFFが標準になってる。
その書籍ではどのようにインストールするよう指示してる?
0623nobodyさん2006/08/02(水) 07:14:51ID:1IWPQLfy
PHPからMYSQLにINSERT文を発行すると文字化けします。
いくつか調べて、「mysql_query("SET NAMES ujis");」ってのを用いれば直るとありましたが、
改善しません。
PHPは4.4.2、MySQLは4.1.19です。
0624nobodyさん2006/08/02(水) 07:25:17ID:???
>>623
PHPでinsert文を組み立てるとき、データの文字コードは何にしてるの?
MySQLへの指定はそれに合わせないとダメだろう。闇雲にujisにしてもダメ。
まず、php.iniとmy.cnfでそれぞれ文字コードが何に設定されてるかを確認して
それを揃えるのが先決だと思う。
これが揃ってさえいればわざわざSET NAMESなんて発行する必要はない。
レンタルとかで、MySQLの設定を変更できない場合以外はまず不要なはず。
06256232006/08/02(水) 08:29:31ID:???
>>624
MySQLのデフォルト文字がujisで、
サーバ自体はレンタルという構成です。
なのでphp.iniがみれません。
INSERTする前の文字データはechoでみると文字化けしておらず、
INSERTしたデータをSELECTした結果を見ると文字化けしているのです。
UTF-8→EUC、SJIS→EUCとmb_convert_encodingでコード変換を試しましたが、
やっぱり文字化けが直りません。
0626nobodyさん2006/08/02(水) 09:06:00ID:FnbeRIVd
>>623
php.iniでshort_open_tagは初期値のままOffになっていました。
書籍では部分に関する記述はなく、
Offのまま作業を行う流れであったため気づきませんでした…。
大変参考になりました。
0627(^ω^)2006/08/02(水) 09:27:16ID:???
>>625
php.iniの設定はphpinfo()を見ればわかる
それがダメなら一つずつini_get()すれば見れる
それよりも、まずどこで文字化けするか把握しないといけないから、PHPを通さずにSSHが使える鯖ならそこからMySQLにアクセスした方がいい。
それが無理ならローカルに同じ設定のPHPとMySQLを入れて実験。

鯖側がujisでPHPの文字コードもEUC-JPなら普通は何もしなくても通るはずだけど。
ujisよりeucjp-msを勧める。
0628nobodyさん2006/08/02(水) 10:06:55ID:???
eucjp-ms って指定できるの MySQL 5.x.x以降じゃなかたっけ
0629nobodyさん2006/08/02(水) 11:53:55ID:???
>>625
実はDBにはちゃんとinsertできてるのに、表示のときにEUC-JPのまま表示しちゃって
PHPの設定と噛みあってなくて文字化けしてるとかいうオチじゃないだろうな。
selectしたデータをさらにEUC-JPからUTF-8やSJISに変換してから表示してみてはどうよ?

つか、まずはphpinfo()の確認が基本だけどな。
0630nobodyさん2006/08/02(水) 11:55:28ID:???
>>626
いや、short_open_tagのデフォルト値はOnなんだってば…
これがOffになってるのはチューニング済みのphp.ini-recommendedを使った場合のみだよ。
それがOffになってたんならお前のインストール方法が悪かっただけじゃないの?
0631nobodyさん2006/08/02(水) 13:17:36ID:???
質問させて下さい。
windowsXP SP2にて
phpPHP 5.1.3
apache2.0

を導入し
// ループ1
while (1) {
// ループ2
while (1) {
$hoge = 1
if ($hoge) {
// ループ1からやり直し
}
}
}
このようなルーチンを書きたいのですが、この場合どのような関数を使用すれば良いのでしょうか?
PHPマニュアルを読んでbreak 1 や、continue 1 をしたのですが、思い通りに動いてくれません。
アドバイス頂ければ助かります。よろしくお願いします。
0632nobodyさん2006/08/02(水) 13:19:50ID:???
>>631
まずは >>6 を読む。
そして、思い通りに動かないというソースを貼る。
0633nobodyさん2006/08/02(水) 13:22:44ID:???
>>631
特に問題はない。
思い通りに動いてないというのは貴様の勘違いだ
0634nobodyさん2006/08/02(水) 14:21:06ID:???
>>631
思い通りに動いてないというのは思い通りに動くように書いてないというだけだ
マニュアル読めば万事解決
0635nobodyさん2006/08/02(水) 14:40:37ID:???
>>631
普通にbreakやcontinueでいいと思う。関数は要らない。
ひょっとしてbreak 1じゃなくbreak 2が希望の動きなんじゃない?
06366352006/08/02(水) 14:41:14ID:???
違った。continue 2が希望の動きじゃない?の間違い。
0637nobodyさん2006/08/02(水) 14:55:18ID:???
コメントスパム対策で日本語(or マルチバイト)が含まれるかを判定したくて以下のように
しましたが、「あああ」というコメントでも弾かれます。
日本語が一切含まれない場合に弾くという処理をしたいのですが、どうすればよいでしょうか。

if (!preg_match("/^[あ-ン]+$/", $comment)) {
die('japanese only');
}
0638nobodyさん2006/08/02(水) 15:02:18ID:???
>>637
激しくガイシュツだ。このスレを読め
0639nobodyさん2006/08/02(水) 15:03:13ID:???
>>638
mb_strlen == strlen
0640nobodyさん2006/08/02(水) 15:09:01ID:???
>>638
以下の文字でこのスレッドを検索しましたが出てきません
昔のスレッドでしょうか?

コメント、スパム、spam、preg、マルチバイト…
0641nobodyさん2006/08/02(水) 15:13:43ID:???
>>637
>>6
0642nobodyさん2006/08/02(水) 15:21:28ID:???
>>638
過去スレじゃなかったっけ?
0643nobodyさん2006/08/02(水) 15:22:20ID:???
>>637
preg_matchはマルチバイト対応じゃないから[あ-ン]なんて指定はムリだよ。
0644nobodyさん2006/08/02(水) 15:49:44ID:???
>>641
ID表示にしました。

>>643
あ、なるほど…
googleでも1時間程検索したのですが、全くヒットしないんです。
検索用語は、

PHP 日本語 コメント コメントスパム spam マルチバイト

検索用語だけでもいいので何かアドバイス頂けないでしょうか。


06456372006/08/02(水) 15:50:53ID:RhHoIqr9
ID表示の仕様がわからなかった…再度表示です。
#2chブラウザ利用してるとデフォルトでなるからいつも忘れてしまう…
0646nobodyさん2006/08/02(水) 15:59:05ID:???
>>644
お前は、>>639が目に入らないのか?
0647nobodyさん2006/08/02(水) 16:09:46ID:???
>>646
目に入ったのですが、どういうことかよくわからないです。

長さを求める関数なのは知っていますが、それでどのように日本語のみ、又は
アルファベットのみを判定するのかが想像もつかないです…

あー、今わかりました…

strlen と mb_strlenの長さが違えば、マルチバイトということですか。

ありがとうございました。
0648nobodyさん2006/08/02(水) 16:12:50ID:???
>>647
あれ、そうかと思ってやってみましたが、ダメでした…
どちらもdieします。

if (strlen($comment) == mb_strlen($comment)) {
die('japanese only');
}
0649nobodyさん2006/08/02(水) 16:36:00ID:RhHoIqr9
>>648
すみません。こちらのミスでできたようです。

$commentが何もない時に通っていました。 orz...



0650nobodyさん2006/08/02(水) 16:38:12ID:???
文字列が短くても誤動作する。
できればencodingを追加しておく方がよい。
0651nobodyさん2006/08/02(水) 16:44:05ID:???
>>650
と言いますと…

$comment = mb_convert_encoding($comment, '内部エンコーディング?'');

を直前に入れるという理解で良いでしょうか?
0652nobodyさん2006/08/02(水) 16:46:00ID:???
やれば分かることを・・・
06536372006/08/02(水) 16:48:38ID:RhHoIqr9
>>651
これか…
mb_strlen ( string str [, string encoding] )

デフォルトが内部エンコーディングだから…うーん、よくわからないですけど
とりあえずそのままでも動いているので良いかな…

0654nobodyさん2006/08/02(水) 18:41:31ID:???
いや、オフィシャルからDLしてshort_open_tagは変更していないから
なにかおかしいと思ってもう一度確認した。
やはりshort_open_tagはデフォルトでOffだった。
今の最新バージョンではデフォルトでshort_open_tagがOffになっている?
0655nobodyさん2006/08/02(水) 18:49:43ID:???
オブジェクトの中の
値を変更するには
メソッドを必ず用意しなければいけないのですか?

変数の代入みたいにできませんか?
0656nobodyさん2006/08/02(水) 18:52:30ID:???
>>655
できる。
0657nobodyさん2006/08/02(水) 21:26:11ID:GYqJmd1r
すいません、スレ違いかも知れないのですがよろしかったら教えて下さい。
いまDBを使った投稿者に対し複数レスがつけられる掲示板を作っているんですが、投稿者用とレス用のテーブルを作ったんですが、どの様に表示すれば良いのかいまいち解りません。。
よろしくお願いします。。
0658nobodyさん2006/08/02(水) 21:33:32ID:???
同じテーブルでいいんじゃない。
0659nobodyさん2006/08/02(水) 21:35:18ID:???
あぁ、フィールドが親とレス全然違うなら別の方がいいけど。
表示ってそのまま親取ってきて、レス取って来ればいいのかと。
この場合JOINさせてもあんまり意味ないし。
0660nobodyさん2006/08/02(水) 21:59:29ID:???
クラスに
どんなメソッドがあるか
まとめて調べる方法はありませんか?
0661nobodyさん2006/08/02(水) 22:01:24ID:???
>>657
スレとレスのテーブルは同じで出来るんじゃない?
全ての投稿にid付けて、例えばスレのIDが「2」なら、そのスレのレスのIDは「2-1」「2-2」「2-3」...とか。
そのレスのレスのIDは「2-2-1」「2-2-2」...
あとはSELECTのWHEREオプションでうだうだやって。。
0662nobodyさん2006/08/02(水) 22:21:20ID:???
>>661
そんなややこしい ID にすると SQL 一発で結果を得るのが難しくなるよ。
親記事の ID をそれぞれに持たせるだけで良いと思うよ。
親自体の親 ID は NULL で。
0663nobodyさん2006/08/02(水) 23:33:49ID:???
>>659>>661
できるできないで言ったら同じテーブルでできると思うけど、
形式が違うor異なった拡張を考えているなら違うテーブル設計はアリだと思うな。

掲示板の表示はそもそもどういう風に表示したいのかが分からんので何とも。
投稿者表示が固定件数で、それに対してレスを全部表示、って形なら
$result1 = mysql_query("select * from 投稿者用テーブル order by 日付 limit 件数", $conn);
while($投稿者データ = mysql_fetch_assoc($result1)) {
 投稿者データ表示($投稿者データ);
 $result2 = mysql_query("select * from レス用テーブル where レス元 = '$投稿者データ[ID]' order by 日付", $conn);
 while($レスデータ = mysql_fetch_assoc($result2)) {
  レスデータ表示($レスデータ)
 }
}
ってのを基本形にアレコレすればふつーにできると思う。
06646632006/08/02(水) 23:34:48ID:???
あ、>>658>>659を読み間違った。
>>659は俺と同じこと言ってるね…
0665nobodyさん2006/08/02(水) 23:42:01ID:???
>>654
Complete Source Code PHP 5.1.4 (tar.gz)
と
Windows Binaries PHP 5.1.4 zip package
の両方ともを今ダウンロードしてきて確認したが、
どっちもphp.ini-dist(デフォルトのphp.ini)は short_open_tag = On になってたよ。
何か勘違いしてると思う。
0666nobodyさん2006/08/03(木) 00:07:55ID:???
>>660
get_class_methods
06676572006/08/03(木) 00:45:35ID:???
皆さんレスありがとうございます。
テーブルは一つで出来るんですね。
分けないといけないと思い込んでました。。
それでソースを書いていただいた>>663さんには大変申し訳ないのですが、テーブル一つでやりたいと思うんですが、やはり表示の仕方がいまいち解りません。。
>>661さんや>>662さんが教えていただいたやり方で考えているんですが、PEAR::Pagerと絡ませた場合どうすればいいのか。。
何度も何度も質問すみません。。
0668nobodyさん2006/08/03(木) 00:55:55ID:???
別途親記事だけの記事数を取得する。
0669nobodyさん2006/08/03(木) 01:27:26ID:???
>>667
基本中の基本も理解してないうちからPEAR::Pagerを使うのはやめた方がいいと思う。
いつまでもアルゴリズムのなんたるかを理解できないまま進んでしまうぞ。
そういうのは、最低限当たり前のことができるようになってから挑戦しよう。
0670nobodyさん2006/08/03(木) 01:53:06ID:???
テーブルを分けておくと拡張性高くなるが
自分の能力を簡単に超えやすい
(手に負えなくなりやすい)
(メンテ大変)
0671nobodyさん2006/08/03(木) 01:59:50ID:???
>>667
複数階層のレスができるのか親子関係が1世代しかないスレッド式なのかで変わる。
たぶん後者の方が簡単。

ついでに。テーブル一つでやりたいってのはJOINが分からないとかのスキル不足から来るものだと思うけど、
(普通しないものを)無理矢理1テーブルにするってのは更に高いスキルを無駄に要求されると思うよ。
0672nobodyさん2006/08/03(木) 02:06:24ID:???
>>671
> ついでに。テーブル一つでやりたいってのはJOINが分からないとかのスキル不足から来るものだと思うけど、
そうか? 「記事」って単位で考えると、親も子も同じものだし、分ける方がおかしいと思うけど?
スレッド式だったらスレッドの階層毎に別テーブルにする? 親だけ分離?
06736712006/08/03(木) 02:31:31ID:???
>>672
663の2テーブルのサンプルを見た後で1テーブルでしたいってのはそういうことかなと勝手に推測してね。
1テーブルに纏めると面倒ってのはスレッド式を想定したよ。例えばスレタイ。 PHP関係なくてすまそ。
0674nobodyさん2006/08/03(木) 02:34:57ID:???
あ〜、俺ならテーブル分けるかな〜。

記事IDとかをプライマリにして、親記事テーブル→子記事テーブル
ただ、高々ツリーのスレッドを生成するだけだから一つのテーブルにしてもテーブル分けても速度は全然
気にならないだろうな。
もしテーブルを一つにするなら親レコードなのか子レコードなのかを判断するフラグみたいなの持たせなきゃ
ダメだよな?
なんかそれは気持ち悪い
0675nobodyさん2006/08/03(木) 02:35:24ID:CT8bx9Pd
ツリー構造つくるんだったら、ファイルシステムみたいに
0676nobodyさん2006/08/03(木) 02:49:12ID:???
>>674
親記事1
├子記事1
│├孫記事1
│└孫記事2
└子記事2
親記事2
…

みたいな記事のツリー構造はどうするつもり?
親と子と孫で 3 テーブルか?
なんか皆想定している掲示板のスタイルが違うから話が噛み合っていない感じ。
0677nobodyさん2006/08/03(木) 03:06:20ID:???
>>676の言う孫まで繰るような場合を想定すると、
「どの親記事に対する子なのか」を表すカラムが必要になるな
0678nobodyさん2006/08/03(木) 04:14:00ID:???
記事ID 親記事ID
1 null
2 null
3 1
4 null
5 2
6 2
7 null
8 5
9 5
0679nobodyさん2006/08/03(木) 04:16:39ID:???
掲示板と一口に言っても千差万別なんだから設計に色々あるのは当たり前だよ。
中にはblogみたいに親記事とレス記事じゃ全然情報量の違うものだってあるんだし。
そんなんここで語り合ってもしょーがないだろ、おまいら。
0680nobodyさん2006/08/03(木) 04:33:31ID:???
そうだな。PHPじゃなくてアルゴリズムの話題になってるな。
そろそろ仕切り直そうか。
0681nobodyさん2006/08/03(木) 06:44:24ID:???
つか最初からスレ違いだったけどな
0682nobodyさん2006/08/03(木) 07:49:46ID:???
>>665
php.ini-recommendedの方を使ってるんだと思う
0683nobodyさん2006/08/03(木) 08:01:51ID:???
>>682
recommended側が本来のデフォルトと違ってOff設定だってのは
すでに>>622>>630で説明済みなんだけどな。理解できてないんかね。
0684nobodyさん2006/08/03(木) 09:31:48ID:???
>>680-681
「スレ違い厨」ウザい。
0685nobodyさん2006/08/03(木) 09:51:32ID:???
「命名厨」ウザい。
0686nobodyさん2006/08/03(木) 10:01:38ID:???
>>684
「無法容認厨」ウザい
0687nobodyさん2006/08/03(木) 10:35:14ID:???
>>686
「オレ様が法律だ厨」ウザい
0688nobodyさん2006/08/03(木) 10:39:05ID:???
「ウザい厨」ウザい
0689nobodyさん2006/08/03(木) 11:15:44ID:Uv0OTJUq
コマンドライン版のスクリプトでSESSION使うことは出来ますでしょうか?
0690nobodyさん2006/08/03(木) 11:21:03ID:???
>>689
試してみればいいじゃないか
0691nobodyさん2006/08/03(木) 12:22:22ID:N4ArK+AW
質問です。宜しくお願いします。
以下のようなPHPがあるのですが、送信した後に「test.txt」の内容を「text111=○○」という形式にしたいのですが、
<input type="hidden" name="text111" value="text111=">
というのを<form〜>のすぐ下にいれるといいのだと思いますが、
phpのところでtext111とcontentsをつなげて送るにはどう書いたらいいのでしょうか??

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#006666">
内容を書き込み、送信 <br>

<form method="post" action="post.php">
<input type"text" name="contents" value="" size="50" maxlength="256">
<br><br>
<input type="submit" name="submit" value="送信">
</form><br>
<?php
ini_set("mbstring.internal_encoding","UTF-8");
$filename = "test.txt";
if(isset($_POST['submit'])){
print("内容: ".$_POST['contents']);
$file = fopen($filename, "w");
flock($file, 2);
fwrite($file, $_POST['contents']);
flock($file, 3);
fclose($file);
}
?>
</body>
</html>
0692nobodyさん2006/08/03(木) 12:32:19ID:P5/NaZ/f
http://m-pe.tv/u/page.php?uid=somari&id=1
0693nobodyさん2006/08/03(木) 12:53:29ID:???
perlで複数行あるファイルから1行をランダムで抜き出す書き方として、以下のような方法があります。
※http://www.din.or.jp/~ohzaki/perl.htm#File_Random より転載
ファイル全体をメモリに読み込まないので少ないメモリで実行出来る利点があります。

srand;
open(FILE, "< $file");
rand($.) < 1 and $line = $_ while <FILE>;
close(FILE);
print $line;

file()で読み込んでshuffle()すれば一番楽なのは分かってますが、
これをPHPで書いた場合、どのようになるでしょうか?

rand($.) < 1 and $line = $_ while <FILE>;
問題なのは↑の1行だけなのですが、perlの経験がない為悪戦苦闘してます。
0694nobodyさん2006/08/03(木) 12:54:11ID:???
8C160が糞元気に腐ってる
馬鹿だなw

今日の欧州、ポンド金利
明日の雇用統計
SQ前日のFOMC

変態相場で16500を超えるというのに
0695nobodyさん2006/08/03(木) 12:58:40ID:ze0QfgtL
すみません。PHPの文字化けについて、教えて下さい。PHPファイルは全てUTF-8
で保存し、どのPHPファイルも、最初に
header('Content-Type: text/html; charset=UTF8');
と宣言しています。

これで、殆どのところは文字化けせず、ブラウザ(IE6.0)の「表示」−「エ
ンコード」を見ると、「日本語 (UTF-8)」となっています。
 ところが、「exit("エラーです");」と書くと、「エラーです」の部分が文
字化けしてしまうのです。ブラウザ(IE6.0)の「表示」−「エンコード」を
見ると、「日本語 (シフト JIS)」となっています。もちろん、クライアン
トの私が、「表示」−「エンコード」を「日本語 (UTF-8)」に直せば、文字
化けはなくなります。
 けれども、このサイトは、一般の人達にも見せるものですので、一般の人達
にわざわざ「表示」−「エンコード」を「日本語 (UTF-8)」に直させること
は出来ないのです。
 どなたか、「exit("エラーです");」が最初から文字化けしないで済む方法
をご存知でしょうか?教えて下さい。宜しくお願い致します。
0696nobodyさん2006/08/03(木) 13:19:32ID:???
charset=UTF-8
0697nobodyさん2006/08/03(木) 13:19:58ID:???
exit("errorです");

にする
0698nobodyさん2006/08/03(木) 14:09:08ID:???
英語っていいよね
0699nobodyさん2006/08/03(木) 14:14:23ID:ze0QfgtL
>>696様

>>695です。ありがとうございます。「UTF8」を「UTF-8」に直したら、
文字化けが直りました・・・。

皆様、下らないことで質問してしまい、申し訳ございませんでした・
・・。 (^_^;)
0700nobodyさん2006/08/03(木) 14:25:42ID:???
>>693
そのページにアルゴリズムの解説と、もっと分かりやすい書き方のサンプルもあるじゃないか。
分かりやすいバージョンをそのままPHPに直せば済む話じゃないの?
0701nobodyさん2006/08/03(木) 14:26:09ID:???
下らねぇ質問をするスレなんだから気にするな
0702nobodyさん2006/08/03(木) 14:31:58ID:???
>>691
> fwrite($file, $_POST['contents']);
ここを
fwrite($file, "text111=" . $_POST['contents']);
にするだけ。


頼むから宿題は自分でやろうな?
0703質問2006/08/03(木) 14:53:22ID:QMvWQHpP
質問があります
phpでrssのフィードを自動生成するプログラムを作ろうと思い、
取りあえず手書きのフィード(http://up2.viploader.net/pic/src/viploader250918.jpg)を
phpで表示させてみようと(http://up2.viploader.net/pic/src/viploader250915.jpg)
のようにしてみたのですが
(http://up2.viploader.net/pic/src/viploader250916.jpg)のように表示されてしまい、
成功しません。なんだかかなり根本的なミスをしている気がするんですが
ご指導よろしくおねがいします
ちなみに(http://up2.viploader.net/pic/src/viploader250917.jpg)
のように表示させたかったんです。
■ このスレッドは過去ログ倉庫に格納されています