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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/02/24(金) 22:05:48ID:YHkZgU8b
PHPに関するくだらねぇ質問用スレです。 
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。 

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

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/l50

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

過去スレは>>2
0262nobodyさん2006/03/02(木) 17:19:32ID:???
分割したFlashはどうやったら見られますか


という質問が来そうな気がする
0263nobodyさん2006/03/02(木) 17:20:00ID:???
>>261
マニュアル見ればすぐ判るじゃん(w
っていうか、そもそも「1.4メガバイト」とか言ってる時点で、
バイナリを扱う知識に欠けているのは予想できるんだが。
たぶん引数に14000000とか指定するんだろうな。
0264nobodyさん2006/03/02(木) 17:26:55ID:???
>>257
激しく同意
0265nobodyさん2006/03/02(木) 18:00:41ID:???
>>261
fread使えとまで指示されてそれが分からんっつーのもどうかと思う
0266nobodyさん2006/03/02(木) 18:40:57ID:???
>>237
ポイント尽きた?
02672042006/03/02(木) 19:03:53ID:???
>>256
include_onceのほうがいいのかしら・・
外に出せって事ですよね早い解決は

>>そもそも一瞥できないほど長いループブロック書いてる時点でダメダメって気がするけど。
ごもっとともです・・、勉強がてらなのに一人では大き目のプログラムを行き当たりばったりで書き始めたバージンソースなので
今見ると自分でも寒いソースだ・・と痛感致します
><
0268nobodyさん2006/03/02(木) 19:29:53ID:???
>>263
> たぶん引数に14000000とか指定するんだろうな。
いえ、そこは1433600を指定してました。皆様のレスを見ているとそれも間違いのような気がしますが。
バイナリの知識に乏しいというのは正解です。
0269nobodyさん2006/03/02(木) 19:31:40ID:???
>>262
そこはちゃんと考えてあります。
自分専用の非公開ツールとして作ってるので、Windows上で結合しますよ。
0270nobodyさん2006/03/02(木) 19:40:26ID:???
>>261
「5」が判りませんでした
0271nobodyさん2006/03/02(木) 20:36:14ID:???
質問です。
PHPからoracleへ接続したいのですが
oracleクライアントを使わずに接続する方法を知っている方はおられませんか?
JAVAではthinを使って接続しました。
似たような方法があれば教えてください。
環境は 窓2000にoracle10 REDHAT9にPHP4.4.0です。
よろしくお願いします。
0272nobodyさん2006/03/02(木) 21:04:15ID:???
>>234-235
思わず吹いた
0273nobodyさん2006/03/02(木) 22:20:41ID:???
>>268-270
偽だよな?と釣られてみる。
0274nobodyさん2006/03/02(木) 22:44:53ID:???
>>269
>>91で言っている事となんか違うぢゃねぇかYO
何がしたいんだか・・・
0275nobodyさん2006/03/02(木) 23:04:16ID:???
>>271
ODBCで繋がんないか?
0276nobodyさん2006/03/02(木) 23:37:27ID:???
>>258
select 〜 where concat(" ", word, " ") like '% hatena %'
でどうかな(MySQLの場合だが)
0277nobodyさん2006/03/03(金) 00:16:47ID:???
>>266
漏れも突っ込もうと思ってた。
キャンセルかよ!
0278nobodyさん2006/03/03(金) 02:17:49ID:???
各板の書き込み数と、
各板から出される削除依頼の件数と、
その比率を全部調べて表にしてほしいんだけど。
0279nobodyさん2006/03/03(金) 02:20:02ID:???
>>278
質問でも雑談でもOKのスレッド 52
http://ex9.2ch.net/test/read.cgi/accuse/1129722955/
0280nobodyさん2006/03/03(金) 04:44:58ID:???
ご意見ください。

例えば掲示板へ書き込まれた本文の内容などの文字列を、

・改行が6回以上含まれているものは、5回目の改行位置までを表示
・改行が5回までのものはそのまま表示
※ここでの改行は"<br />"です。

のようにしたい場合、あれこれ考えて以下のようにしたのですが、もっとスマートな方法があるよ!とかあったら教えてください。

個人的にpreg_match()を2連続叩いているのがなんか気持ち悪いので。

<?php

$vl["body"] = 掲示板に書き込まれた本文の内容;

//改行が6回以上あったら5回目の改行までを表示
if ( preg_match("/(.*?<br \/>){6}/", $vl["body"]) ) { ?>
preg_match("/(.*?<br \/>){5}/", $vl["body"], $match);
echo $match[0] . ".......省略して表示されています。";

//改行が5回までならそのまま表示
} else {
echo $vl["body"];
}

?>

よろしくおながいします。
02812802006/03/03(金) 04:47:43ID:???
if文の行の末尾に ?> が残ってついてますが、そこには突っ込まないでください。。
0282nobodyさん2006/03/03(金) 05:15:09ID:???
>>280
$array = explode('<br />', $vl["body"]);
for ($i = 0; $i < 5; $i++) echo $array[$i].'<br />';
028307012320212468_mb2006/03/03(金) 06:38:49ID:j89wU6/4
>>273
> 偽だよな?と釣られてみる。
いえ、本人ですが。
どうやれば信じてもらえるかわからないので、フシアナサンをします。
0284nobodyさん2006/03/03(金) 07:48:02ID:???
質問する場合、IDを出さないと誰が誰かわからん
0285nobodyさん2006/03/03(金) 10:07:21ID:???
ID出したって翌日にはわかんなくなるけどな。
だから初回ID+次回から名前に番号、なんじゃないのか?
0286nobodyさん2006/03/03(金) 11:07:53ID:???
>>283
ちなみにそれってどういう利点があるの?
PCがインターネットに繋がってないか極端に回線速度が遅い場合以外の利点が思い付かないんだけど。
0287nobodyさん2006/03/03(金) 11:30:59ID:???
>>283
フシアナってもしょうがなかろうに・・・
自分を特定してもらいたいんだったら、コテハン+トリップ これ最強
028807012320212468_mb2006/03/03(金) 11:44:56ID:???
>>286
> PCがインターネットに繋がってないか極端に回線速度が遅い場合以外の利点が思い付かないんだけど。
後者です。ダイヤルアップ回線で伝送損失60デシベルです。
0289nobodyさん2006/03/03(金) 11:48:47ID:???
>>269
Windowsなら、 copy /b a+b+c d
みたいに標準ツールでできるもんな

Win以外でも同じだが
0290nobodyさん2006/03/03(金) 11:53:36ID:???
>>289
それを言っちゃおしまいでw
自分でしか使わないようなら、何もPHPを使わなくても、フリーの分割・結合ツールを使った方が早い。
>>91のころはサーバ側で分割する必要があると思っていたが…
それにしたって、最初から分割してアップしておけばいい話だな。
02912802006/03/03(金) 12:06:33ID:???
>>282

すみません。条件が抜けていました。

私が書いたのにあるように、

・6行以上ある場合は、"省略して表示されています"というメッセージを5行目の末尾に追加し、そこまでを表示

が、必要です。

282さんの例のは一番最初に試した方法なのですが、
それだと配列の長さをによってif()で分岐させなければならないので、
結果として長くなってしまいました。
0292nobodyさん2006/03/03(金) 12:15:54ID:mLdhBg36
すいません。ご質問させてください。
プログラム内で現在実行されているPHPがDSOなのかCLIなのか
を判別したいのですが何か方法はありますでしょうか?

よろしくお願いします。
0293nobodyさん2006/03/03(金) 12:21:18ID:???
>>291
最後に
if(count($array) > 5){echo '省略して表示されています';}
で良いんじゃね?
02942802006/03/03(金) 12:23:34ID:???
>>291で、長くなってしまったと書きましたが、
自分の例と282さんの書いた例を改良したものでは、長さ的にはあんまり変わりません。

「他にどんな書き方があるかな?」が知りたいだけの、
まさしく「くだらない質問」です。

282さんのに手を加えるとこんな感じですよね。

$vl["body"] = 掲示板に書き込まれた本文の内容;
$array = explode('<br />', $vl["body"]);
if ( count($array) > 5 ) {
for ($i = 0; $i < 5; $i++) {
echo $array[$i] . '<br />' . '.......省略して表示されています';
}
} else {
echo $vl["body"];
}
02952802006/03/03(金) 12:31:34ID:???
>>293

すみません。。書いてたら返信が。

$vl["body"] = 掲示板に書き込まれた本文の内容;
$array = explode('<br />', $vl["body"]);
for ($i = 0; $i < 5; $i++) {
echo $array[$i].'<br />';
}
if(count($array) > 5) {
echo '省略して表示されています';
}

ってことですね。
いまいちすっきりしませんが、ご意見をありがとうございます。
0296nobodyさん2006/03/03(金) 12:33:20ID:???
>>295
それだと、3行とかの場合にWarningが出るから

$vl["body"] = 掲示板に書き込まれた本文の内容;
$array = explode('<br />', $vl["body"]);
for ($i = 0; $i < 5; $i++) {
if(isset($array[$i])){
echo $array[$i] . '<br />';
}
}
if ( count($array) > 5 ) {'.......省略して表示されています';}

かな。
02972802006/03/03(金) 12:37:38ID:???
しつこくてすいません。

ちなみに>>295のやり方だと、本文の行数が4行以下の時(<br />が2個しかない等)に
存在しない配列の添え字を参照してしまうので、NOTICEエラーになります。
0298nobodyさん2006/03/03(金) 12:38:23ID:???
NOTICEじゃなかったか。。
02992802006/03/03(金) 12:41:38ID:???
と、時系列がおかしい書き込みになりまくってますが、
explodeのやり方だと、結果としてはやっぱり微妙に長くなるようです。
0300nobodyさん2006/03/03(金) 12:44:36ID:???
>>299
正規表現使わない分だけ速度は数倍早いけどね
0301nobodyさん2006/03/03(金) 12:49:19ID:???
>>299
スクリプトの行数を減らしたいのか?
実行速度を上げたいのか?
030207012320212468_mb2006/03/03(金) 13:07:19ID:j89wU6/4
>>290
自分のPCのHDD内にあるファイルを分割するならそれで良いんですが、
その「フリーの分割結合ツール」を始め、インターネット上にあるソフトウェアやマルチメディアファイルは、
データ量が大きいため、ダイヤルアップで何十分もかけて課金されながらダウンロードするのがもったいなく感じ、このツールを考案しました。
03032802006/03/03(金) 13:13:14ID:???
どうしてもview(htmlソース)側にロジックを混入しなければいけない状態だったので、
スクリプトの行数(というか工程)を極力減らして、viewが見づらくならないようにしようとしていました。

速度の問題もよくよく解っていることなので、色々天秤にかけた結果、
ロジック側を改良してview側では <?php echo $vl["body"] ?> だけで済むようにすることにしました。

ロジック側が各画面での書き込みデータ取得を共通化したモジュールなので、
ちょっと作業は増えますが、
1.一覧表示用データ形式で取得
2.詳細表示用データ形式で取得
3.管理画面表示用データ形式で取得
などのようにロジックを作成し、
呼び出し時のパラメータで切り替えられるようにしようと思います。

色々とありがとうございます。
0304nobodyさん2006/03/03(金) 13:17:12ID:???
>>302
つまりはなんだ、君のやろうとしているのはこういうこと貝?

1)取得対象のファイルのURLとを元にPHPにデータを取ってこさせ、サーバ上に保存
2)保存されたデータファイルを携帯電話でダウンロード(ここで分割の必要性)
3)携帯にダウンロードした細切れファイルを外部メモリなどを経由してPCへ転送
4)PC上で合体!

で、2)でつまずいているという事だな?

0305nobodyさん2006/03/03(金) 13:18:46ID:???
>>303
なんだか良く判らないけど、さようなら
030607012320212468_mb2006/03/03(金) 13:20:02ID:j89wU6/4
>>304
まさにその通りです!
0307nobodyさん2006/03/03(金) 13:27:37ID:???
>>303
$vl["body"] = 掲示板に書き込まれた本文の内容;
$i = 0;
foreach(explode('<br />', $vl["body"]) as $l) {
if(++ $i >= 5) { echo '省略して表示されています'; break; } else { echo $l; }
}
0308nobodyさん2006/03/03(金) 13:28:58ID:???
あ、$lのechoで<br/>つけるのわすれた
0309nobodyさん2006/03/03(金) 13:34:57ID:???
>>303
これじゃダメ?
$str = "str1<br>str2<br>str3<br>str4<br>str5<br>str6<br>str7";
$reg = preg_replace("/((.*?<br>){5})(.*)/","$1省略して表示されています",$str);
echo $reg;
0310nobodyさん2006/03/03(金) 13:37:08ID:???
>>306
で、どこまで出来ていて
何が判らないんだっけ?
0311nobodyさん2006/03/03(金) 13:42:59ID:???
>>309
それ、5行無かったらどうなるんだ?
03123092006/03/03(金) 13:45:01ID:???
>>311
$strがそのまま表示された。
それと俺、ど初心者だからあまり信用しないで。
0313nobodyさん2006/03/03(金) 13:46:47ID:???
>>304
昔、それのメール版を作った事あるよ。IPリーチャブルな環境じゃなかったので。
誰かが作った公開サイトもあった。今考えると何も対策もなかったので、
メールボムの温床になりかねんが、随分と大らかな時代だった。
0314nobodyさん2006/03/03(金) 14:36:04ID:???
>>306
で、>>259じゃいかんのか?
ちょっと作り変えれば、ファイル名などは任意にできるが。
0315nobodyさん2006/03/03(金) 15:55:16ID:j89wU6/4
>>314
今から書き写してテストしてみます。
0316nobodyさん2006/03/03(金) 16:29:27ID:???
>>315
今からって...ヲィ、大丈夫か?
031707012320212468_mb2006/03/03(金) 16:51:16ID:???
$path = $_POST["url"];
ファイル名を
$filename_w = dirname($path) + $n + "_" + $basename($path);
と記述しましたが、syntaxエラーが出ます。
どのようにすれば上手くいきますか?
0318nobodyさん2006/03/03(金) 17:00:54ID:???
phpって何で良くセキュリティホール見つかるの?
こんな品質じゃ仕事で使えないじゃん。
0319nobodyさん2006/03/03(金) 17:11:17ID:???
>>317
そんな質問で答えられる奴はエスパーだぞ。

「+」->「.」に汁 byエスパー2号
0320nobodyさん2006/03/03(金) 17:11:20ID:???
>>317
+

.
に変えろ
0321nobodyさん2006/03/03(金) 17:24:40ID:j89wU6/4
>>319-320
できました!ありがとうございます!
あとは3g2ファイルのヘッダを付加して
DL用の<OBJECT>タグをつければ完成です!
0322nobodyさん2006/03/03(金) 17:39:07ID:???
>>321は絶対にまた帰って来ると思う。
でもそのときには「スレ違い!」の一言で片付けられる
と予言してみるテスト
0323nobodyさん2006/03/03(金) 18:06:04ID:Mb/ANEcx
犯罪とかのニュースのたびに怒りでどうしようもない
http://life7.2ch.net/test/read.cgi/jinsei/1140716130/l50
ここで偽善者がオナニー暴れしてます
0324nobodyさん2006/03/03(金) 19:00:13ID:???
>>318
Windows って何でよくセキュリティホール見つかるの?
こんな品質(略
0325nobodyさん2006/03/03(金) 19:18:24ID:???
>>318
MS-DOSってほとんどセキュリティホール見つからないね。
仕事に使うものとしては最高じゃん!
0326nobodyさん2006/03/03(金) 19:26:10ID:???
俺のエニーちゃんのオナホールは最高だよ
0327nobodyさん2006/03/03(金) 19:32:11ID:???
ちょっと貸してくれないか
0328nobodyさん2006/03/03(金) 20:15:27ID:???
断る
0329nobodyさん2006/03/03(金) 20:21:25ID:???
分割の人はここのヤスタカだったんだな
中学生くらいかな。頑張れ。

http://c.m-space.jp/bbs.php?ID=nullpo&serial=22733&page=9&sort=0&action=next
033007012320212468_mb2006/03/03(金) 20:30:06ID:???
>>329
ちょwwwwwうぇwwwそうだけどさ、2chで晒さなくてもいいじゃないか。
かそれ本名なんですから。
あと、僕は高校生ですよ!リアル工房ですよ!
触ったことある言語N88BASICとJavaScriptぐらいでこれでも頑張ってるんですよ!
0331nobodyさん2006/03/03(金) 20:31:45ID:???
かそれ→それ
指摘される前に訂正。
0332nobodyさん2006/03/03(金) 20:44:08ID:???
本名でも仮名って言っときゃいいのに
0333nobodyさん2006/03/03(金) 20:49:27ID:???
そこまで予想して本名と言ってる(実際は仮名)…てことはないな。
しかし、N88BASICを触ってる時点で結構なものと思うんだが。
兎にも角にも頑張れ。
0334fusianasao2006/03/03(金) 20:49:28ID:???
>>332
あなた、頭いいですね
0335nobodyさん2006/03/03(金) 20:52:09ID:???
よく言われる
0336nobodyさん2006/03/03(金) 20:52:22ID:???
いまどきの高校生でN88BASICなんぞ触る機会があるのか?
普通に学校の授業であるのかな?
0337nobodyさん2006/03/03(金) 21:01:53ID:???
>>336
中学1年の2学期までパソコン室がPC-9801でした。
その頃に少し遊んだだけです。
その後は校舎新築で富士通のWindows2000搭載のコンピュータに変わりましたが。
0338nobodyさん2006/03/03(金) 21:02:22ID:???
思ったんだが、携帯でDLして転送するって事はパケットは定額制だよな?
それなら携帯を安いプランにしてブロードバンドに乗り換える方がいいんじゃまいか
0339nobodyさん2006/03/03(金) 21:10:32ID:???
>>338
痛いとこ突かれたorz
でもこのツールを完成させたいんです!
0340nobodyさん2006/03/03(金) 21:20:46ID:???
BASICはMSXで覚えた。
N88-BASICも使った。
PC-8800もさわった。
COBOLもFORTLANも使ったことある。
でも25歳。
0341nobodyさん2006/03/03(金) 21:27:04ID:???
ポケコンで数字インベーダーゲームを打ち込んでたヲヂさんが来ましたよ。
0342nobodyさん2006/03/03(金) 21:32:37ID:???
>>336
教える側が趣味でやってたBASICくらいしか教えられないというミスマッチが教育の現実です。
0343nobodyさん2006/03/03(金) 21:44:38ID:???
>>342
いや、科学部という名のパソコンクラブが放課後に遊んでただけですよ。
0344nobodyさん2006/03/03(金) 21:52:12ID:???
>>342
高校の「数学」の教科書にBASIC載ってるしな。
センター試験でBASIC選ぶと、他の問題に比べてめちゃくちゃ簡単なんだが。
CやJavaは変数の型とかあるから、数学の授業では無理があるだろうけど。
そういう意味ではPHPはうってつけか。
「情報」の授業ってプログラミングやるのかな?
0345nobodyさん2006/03/03(金) 21:56:04ID:???
現場経験も無い世間知らずしか授業出来ないんだからしょうがないよなぁ
中高ぐらいからもっと実践的な講師呼んだ授業やったら学校も楽しそうだなぁ

ってここなんてスレ?
0346nobodyさん2006/03/03(金) 21:59:01ID:???
>>344
word、excel程度の授業しかなくてがっかりした。
>>345
PHPくだ質スレですよ。
0347nobodyさん2006/03/03(金) 22:13:16ID:???
>>345
技術者の取り込みを狙ったのか、高校「情報」の教免は一般試験があったぞ。
今はもうないが。
教育現場も規制緩和して、実技科目に関しては教免なくても
外部の講師を呼べるようにすればいいのに。
0348nobodyさん2006/03/03(金) 23:01:58ID:???
くだ質スレが、ただのくだスレになってるな…
0349nobodyさん2006/03/03(金) 23:35:20ID:???
多少、趣旨を外れても本スレがあるという安心感があるからな。
0350nobodyさん2006/03/03(金) 23:48:32ID:???
じゃあくだらない質問を一つ。
マニュアルのサンプルで

$foo = $foober() or die();

という文をよく見かけるんですけど
これってどういう仕組みなんでしょうか?
0351nobodyさん2006/03/03(金) 23:57:26ID:???
>>350
if ($a == 1 or $a == 2) の"or"と仕組みは同じです。

$foober()が真を返せば、orの後ろは実行されません、
$foober()が偽を返せば、orの後ろのdie()が実行されますから、
die()によって処理がそこで止まります。

ファイルのオープンとか、DBの接続とかで使用することが多いでしょうか。
私はあまり使いませんが。
0352nobodyさん2006/03/04(土) 00:35:17ID:???
PHPの関数とかいろんなもののベンチマーク結果を載せてるサイトないかな。
0353nobodyさん2006/03/04(土) 01:00:17ID:???
私からも、下らない質問をひとつ

ループで得られる1000行程度のEUCコードの文字列を
最終的にSJISでファイル保存する場合、
一旦全てを変数に格納して、最後にSJIS変換して書き込むのが良いのか?
それともループ内で随時SJIS変換しながら書き込んでいくのが良いのか?

さぁ、DOTCH?
0354nobodyさん2006/03/04(土) 01:13:51ID:???
>>351
そういえばCを勉強した時に同じような話を聞いた覚えが・・・
ありがとうございます。
0355nobodyさん2006/03/04(土) 01:30:53ID:???
>>354
Cでこんな感じの話?…
Cだと|は後ろが先に評価されるコンパイラがある可能性があるので、あんましこういうのは推奨されてないはず…
うろ覚えでスマソ
0356nobodyさん2006/03/04(土) 01:45:48ID:???
>>353
やってみてくれ
0357nobodyさん2006/03/04(土) 01:58:04ID:???
>>354
Cでそんな書き方するやつにはまずお目にかからないが…
Perlではこれは常套句だな。
0358nobodyさん2006/03/04(土) 02:01:48ID:???
>>355>>357
こういう書き方もあるって感じで、予備知識としての話だったと思います
使わない方がいいとも言われました
0359nobodyさん2006/03/04(土) 11:41:48ID:???
HTMLフォームのhiddenコントロールとしてセッションIDを引き渡す。

<input type="hidden" name="PHPSESSID"
     value="5fb6b70b37b53114518ce19ac215e8ea">

こういうやり方でユーザー認証などを行う場合、セキュリティ的に問題などありますか?
教えてください。よろしくお願いします。
0360nobodyさん2006/03/04(土) 11:52:06ID:???
>>359
Cookie使えなきゃそれかGETでURLに含めるしかない
0361nobodyさん2006/03/04(土) 11:57:17ID:???
>>359
タイムアウト実装のあるセッション ID を hidden で受け渡すだけなら
問題はないが、他のパラメータには使わないように。

参考: IPA/ISEC セキュアプログラミング講座
ttp://www.ipa.go.jp/security/awareness/vendor/programming/a01_05.html
■ このスレッドは過去ログ倉庫に格納されています