【PHP】下らねぇ質問はここに書き込みやがれpart17
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/24(金) 22:05:48ID:YHkZgU8bここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【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
0282nobodyさん
2006/03/03(金) 05:15:09ID:???$array = explode('<br />', $vl["body"]);
for ($i = 0; $i < 5; $i++) echo $array[$i].'<br />';
028307012320212468_mb
2006/03/03(金) 06:38:49ID:j89wU6/4> 偽だよな?と釣られてみる。
いえ、本人ですが。
どうやれば信じてもらえるかわからないので、フシアナサンをします。
0284nobodyさん
2006/03/03(金) 07:48:02ID:???0285nobodyさん
2006/03/03(金) 10:07:21ID:???だから初回ID+次回から名前に番号、なんじゃないのか?
0286nobodyさん
2006/03/03(金) 11:07:53ID:???ちなみにそれってどういう利点があるの?
PCがインターネットに繋がってないか極端に回線速度が遅い場合以外の利点が思い付かないんだけど。
> PCがインターネットに繋がってないか極端に回線速度が遅い場合以外の利点が思い付かないんだけど。
後者です。ダイヤルアップ回線で伝送損失60デシベルです。
0289nobodyさん
2006/03/03(金) 11:48:47ID:???Windowsなら、 copy /b a+b+c d
みたいに標準ツールでできるもんな
Win以外でも同じだが
0290nobodyさん
2006/03/03(金) 11:53:36ID:???それを言っちゃおしまいでw
自分でしか使わないようなら、何もPHPを使わなくても、フリーの分割・結合ツールを使った方が早い。
>>91のころはサーバ側で分割する必要があると思っていたが…
それにしたって、最初から分割してアップしておけばいい話だな。
0291280
2006/03/03(金) 12:06:33ID:???すみません。条件が抜けていました。
私が書いたのにあるように、
・6行以上ある場合は、"省略して表示されています"というメッセージを5行目の末尾に追加し、そこまでを表示
が、必要です。
282さんの例のは一番最初に試した方法なのですが、
それだと配列の長さをによってif()で分岐させなければならないので、
結果として長くなってしまいました。
0292nobodyさん
2006/03/03(金) 12:15:54ID:mLdhBg36プログラム内で現在実行されているPHPがDSOなのかCLIなのか
を判別したいのですが何か方法はありますでしょうか?
よろしくお願いします。
0293nobodyさん
2006/03/03(金) 12:21:18ID:???最後に
if(count($array) > 5){echo '省略して表示されています';}
で良いんじゃね?
0294280
2006/03/03(金) 12:23:34ID:???自分の例と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"];
}
0295280
2006/03/03(金) 12:31:34ID:???すみません。。書いてたら返信が。
$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:???それだと、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 ) {'.......省略して表示されています';}
かな。
0297280
2006/03/03(金) 12:37:38ID:???ちなみに>>295のやり方だと、本文の行数が4行以下の時(<br />が2個しかない等)に
存在しない配列の添え字を参照してしまうので、NOTICEエラーになります。
0298nobodyさん
2006/03/03(金) 12:38:23ID:???0299280
2006/03/03(金) 12:41:38ID:???explodeのやり方だと、結果としてはやっぱり微妙に長くなるようです。
030207012320212468_mb
2006/03/03(金) 13:07:19ID:j89wU6/4自分のPCのHDD内にあるファイルを分割するならそれで良いんですが、
その「フリーの分割結合ツール」を始め、インターネット上にあるソフトウェアやマルチメディアファイルは、
データ量が大きいため、ダイヤルアップで何十分もかけて課金されながらダウンロードするのがもったいなく感じ、このツールを考案しました。
0303280
2006/03/03(金) 13:13:14ID:???スクリプトの行数(というか工程)を極力減らして、viewが見づらくならないようにしようとしていました。
速度の問題もよくよく解っていることなので、色々天秤にかけた結果、
ロジック側を改良してview側では <?php echo $vl["body"] ?> だけで済むようにすることにしました。
ロジック側が各画面での書き込みデータ取得を共通化したモジュールなので、
ちょっと作業は増えますが、
1.一覧表示用データ形式で取得
2.詳細表示用データ形式で取得
3.管理画面表示用データ形式で取得
などのようにロジックを作成し、
呼び出し時のパラメータで切り替えられるようにしようと思います。
色々とありがとうございます。
0304nobodyさん
2006/03/03(金) 13:17:12ID:???つまりはなんだ、君のやろうとしているのはこういうこと貝?
1)取得対象のファイルのURLとを元にPHPにデータを取ってこさせ、サーバ上に保存
2)保存されたデータファイルを携帯電話でダウンロード(ここで分割の必要性)
3)携帯にダウンロードした細切れファイルを外部メモリなどを経由してPCへ転送
4)PC上で合体!
で、2)でつまずいているという事だな?
030607012320212468_mb
2006/03/03(金) 13:20:02ID:j89wU6/4まさにその通りです!
0307nobodyさん
2006/03/03(金) 13:27:37ID:???$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:???0309nobodyさん
2006/03/03(金) 13:34:57ID:???これじゃダメ?
$str = "str1<br>str2<br>str3<br>str4<br>str5<br>str6<br>str7";
$reg = preg_replace("/((.*?<br>){5})(.*)/","$1省略して表示されています",$str);
echo $reg;
0313nobodyさん
2006/03/03(金) 13:46:47ID:???昔、それのメール版を作った事あるよ。IPリーチャブルな環境じゃなかったので。
誰かが作った公開サイトもあった。今考えると何も対策もなかったので、
メールボムの温床になりかねんが、随分と大らかな時代だった。
0315nobodyさん
2006/03/03(金) 15:55:16ID:j89wU6/4今から書き写してテストしてみます。
ファイル名を
$filename_w = dirname($path) + $n + "_" + $basename($path);
と記述しましたが、syntaxエラーが出ます。
どのようにすれば上手くいきますか?
0318nobodyさん
2006/03/03(金) 17:00:54ID:???こんな品質じゃ仕事で使えないじゃん。
0321nobodyさん
2006/03/03(金) 17:24:40ID:j89wU6/4できました!ありがとうございます!
あとは3g2ファイルのヘッダを付加して
DL用の<OBJECT>タグをつければ完成です!
0323nobodyさん
2006/03/03(金) 18:06:04ID:Mb/ANEcxhttp://life7.2ch.net/test/read.cgi/jinsei/1140716130/l50
ここで偽善者がオナニー暴れしてます
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
ちょ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を触ってる時点で結構なものと思うんだが。
兎にも角にも頑張れ。
0334fusianasao
2006/03/03(金) 20:49:28ID:???あなた、頭いいですね
0335nobodyさん
2006/03/03(金) 20:52:09ID:???0336nobodyさん
2006/03/03(金) 20:52:22ID:???普通に学校の授業であるのかな?
0337nobodyさん
2006/03/03(金) 21:01:53ID:???中学1年の2学期までパソコン室がPC-9801でした。
その頃に少し遊んだだけです。
その後は校舎新築で富士通のWindows2000搭載のコンピュータに変わりましたが。
0338nobodyさん
2006/03/03(金) 21:02:22ID:???それなら携帯を安いプランにしてブロードバンドに乗り換える方がいいんじゃまいか
0340nobodyさん
2006/03/03(金) 21:20:46ID:???N88-BASICも使った。
PC-8800もさわった。
COBOLもFORTLANも使ったことある。
でも25歳。
0341nobodyさん
2006/03/03(金) 21:27:04ID:???0344nobodyさん
2006/03/03(金) 21:52:12ID:???高校の「数学」の教科書にBASIC載ってるしな。
センター試験でBASIC選ぶと、他の問題に比べてめちゃくちゃ簡単なんだが。
CやJavaは変数の型とかあるから、数学の授業では無理があるだろうけど。
そういう意味ではPHPはうってつけか。
「情報」の授業ってプログラミングやるのかな?
0345nobodyさん
2006/03/03(金) 21:56:04ID:???中高ぐらいからもっと実践的な講師呼んだ授業やったら学校も楽しそうだなぁ
ってここなんてスレ?
0347nobodyさん
2006/03/03(金) 22:13:16ID:???技術者の取り込みを狙ったのか、高校「情報」の教免は一般試験があったぞ。
今はもうないが。
教育現場も規制緩和して、実技科目に関しては教免なくても
外部の講師を呼べるようにすればいいのに。
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:???if ($a == 1 or $a == 2) の"or"と仕組みは同じです。
$foober()が真を返せば、orの後ろは実行されません、
$foober()が偽を返せば、orの後ろのdie()が実行されますから、
die()によって処理がそこで止まります。
ファイルのオープンとか、DBの接続とかで使用することが多いでしょうか。
私はあまり使いませんが。
0352nobodyさん
2006/03/04(土) 00:35:17ID:???0353nobodyさん
2006/03/04(土) 01:00:17ID:???ループで得られる1000行程度のEUCコードの文字列を
最終的にSJISでファイル保存する場合、
一旦全てを変数に格納して、最後にSJIS変換して書き込むのが良いのか?
それともループ内で随時SJIS変換しながら書き込んでいくのが良いのか?
さぁ、DOTCH?
0355nobodyさん
2006/03/04(土) 01:30:53ID:???Cでこんな感じの話?…
Cだと|は後ろが先に評価されるコンパイラがある可能性があるので、あんましこういうのは推奨されてないはず…
うろ覚えでスマソ
0358nobodyさん
2006/03/04(土) 02:01:48ID:???こういう書き方もあるって感じで、予備知識としての話だったと思います
使わない方がいいとも言われました
0359nobodyさん
2006/03/04(土) 11:41:48ID:???<input type="hidden" name="PHPSESSID"
value="5fb6b70b37b53114518ce19ac215e8ea">
こういうやり方でユーザー認証などを行う場合、セキュリティ的に問題などありますか?
教えてください。よろしくお願いします。
0361nobodyさん
2006/03/04(土) 11:57:17ID:???タイムアウト実装のあるセッション ID を hidden で受け渡すだけなら
問題はないが、他のパラメータには使わないように。
参考: IPA/ISEC セキュアプログラミング講座
ttp://www.ipa.go.jp/security/awareness/vendor/programming/a01_05.html
0362nobodyさん
2006/03/04(土) 14:58:31ID:???最後まで文字列を操作するかじゃね?
EUCで生成すること自体勧められないけど。SJISで保存するなら最初からSJISで生成すべき。
文字化けが許容出来ないなら、文字コード変換したら負けだよ。
0363nobodyさん
2006/03/04(土) 15:38:43ID:???日本語でおk
0364nobodyさん
2006/03/05(日) 00:19:00ID:j6g607oY>もちろん、クライアント側のアプリでは階層の深さを直接
>提示するでしょうが。ウエブの開発者はツリーをループしながら、
><li></li> と <ul></ul> のタグを深さが増えたり、減ったりする
>毎に、追加します。
これのやり方がいくら考えても分からないのですがどうやったらいいのですか?
0365nobodyさん
2006/03/05(日) 00:28:33ID:???| name | depth |
+----------------------+-------+
| ELECTRONICS | 0 |
| TELEVISIONS | 1 |
| TUBE | 2 |
| LCD | 2 |
| PLASMA | 2 |
| PORTABLE ELECTRONICS | 1 |
| MP3 PLAYERS | 2 |
| FLASH | 3 |
| CD PLAYERS | 2 |
| 2 WAY RADIOS | 2 |
+----------------------+-------+
↑を<ul><li>を使って↓みたいにしたいんです。
・ELECTRONICS
・TELEVISIONS
・TUBE
・LCD
・PLASMA
・PORTABLE ELECTRONICS
・MP3 PLAYERS
・FLASH
・CD PLAYERS
・2 WAY RADIOS
0366nobodyさん
2006/03/05(日) 00:44:55ID:???お詫びの文章を出してスクリプトをストップ!
ってのはどうやってやるんだ?
0367364
2006/03/05(日) 00:53:08ID:???http://aazukan.s201.xrea.com/test.txt
動作
http://aazukan.s201.xrea.com/test.php
ここまでやってみました。
0368nobodyさん
2006/03/05(日) 01:17:45ID:???0370nobodyさん
2006/03/05(日) 01:46:26ID:yRA2j2VbDBの設計が激しく間違っている気がするが?
→そうなの?
板違いなのでDB板で勉強して来い
→わかってます
正しくソートされていると仮定
$depth = -1;
foreach($categories AS $category) {
while ($depth<$category['depth']) {
echo "<ul>\n";
$depth++;
}
while ($depth>$category['depth']) {
echo "</ul>\n";
$depth--;
}
 : echo '<li>', $category['name'], '</li>', "\n";
}
while($depth>=0) {
echo "</ul>\n";
}
こんなかんじかな。 デバッグもしてないし適当だから保障しない。参考程度に。
0371370
2006/03/05(日) 02:19:56ID:???んで
while($depth>=0) {
echo "</ul>\n";
$depth--;
}
ね。
0372364
2006/03/05(日) 02:41:57ID:???色々書いて頂いて申し訳ないのですが、
↓で100点になるようなものがよかったので使いませんでした
http://openlab.ring.gr.jp/k16/htmllint/htmllint.html
そーす
http://aazukan.s201.xrea.com/test.txt
動作
http://aazukan.s201.xrea.com/test.php
これでとりあえず動くのですがもうちょっとスマートにできませんか?
0373nobodyさん
2006/03/05(日) 02:59:51ID:???$list .= "<ul><li>";
} else {
if($depth > $category['depth']) {
$list .= str_repeat("</li></ul>", $depth - $category['depth']);
}
$list .= "</li><li>";
}
0374364
2006/03/05(日) 03:03:47ID:???0375nobodyさん
2006/03/05(日) 03:15:29ID:???0376nobodyさん
2006/03/05(日) 04:04:12ID:???0377nobodyさん
2006/03/05(日) 05:24:59ID:8JhBJBZ6$m_header = $_SERVER['DOCUMENT_ROOT'] . '/header.php';
この $_SERVER['DOCUMENT_ROOT'] を自分のサイトのmain root pathに変更しろとあるんですが、
これはこのままじゃダメなんでしょうか?
ググっても解らず、困っています。
解る方がいらっしゃいましたら教えて下さい。
0378nobodyさん
2006/03/05(日) 06:19:26ID:???$_SERVER['DOCUMENT_ROOT'] の値がちゃんと取れてるなら、そんままで良いんでね。
取得できない事(環境によっては無いわけでもない)を、作者が考慮して
確実に動くように手動で明示しとけと言ってるのかな。
そのアプリは何?
0380nobodyさん
2006/03/05(日) 06:33:28ID:8JhBJBZ6ありがとうございます。そのままでも大丈夫なんですか・・・。
じゃあスクリプトが動かない原因は他にありそうです。
実はアメリカのなので私も良く解ってないんですが、
登録したサイトを閲覧できる(?)というものなんです。
>>379
すいません、書き方が悪かったです。
変えようにも、何を変えていいのか解らなかったので。
もしかして/usr/bin/phpなのか?と思って適当に変えてみたりはしたんですが。
的外れだったみたいです。
0381nobodyさん
2006/03/05(日) 07:56:49ID:???それは自分のWebサーバのドキュメントルートを取得するスーパーグローバル変数だよ
オレの環境では
<?
echo $_SERVERT['DOCUMENT_ROOT'];
?>
で、ブラウザからアクセスしたら「C:/Program Files/Apache Group/Apache2/htdocs」って表示されたよ
■ このスレッドは過去ログ倉庫に格納されています