【PHP】下らねぇ質問はここに書き込みやがれpart17
レス数が1000を超えています。これ以上書き込みはできません。
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
0002nobodyさん
2006/02/24(金) 22:06:36ID:YHkZgU8b【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
0003nobodyさん
2006/02/24(金) 22:30:08ID:???例えば、
hoge.php?_SESSION[user_pw]=hogehoge
って形で送られてきたとします。これを
extract($_GET)
しちゃうと、$_SESSION['user_pw']の値が、
"hogehoge"に変更されてしまいます。
もし事前にユーザのパスワードを、$_SESSION['user_pw']に
保持してたとしたら、勝手に書き換えられてしまうことになります。
それを避けるために
extract($_GET, EXTR_SKIP)
ってやって上書きを避けたとしても、
このままでは変数の初期化を忘れる危険性があります。
extract($_GET, EXTR_PREFIX_ALL, "get")
と、接頭辞をつけるのが一番安全な気はしますが、
それなら最初から
$hoge = $_GET['hoge'];
ってやるのと手間が変わらないと思いますし、可読性も増します。
確かにextractするのは楽だと思いますけど。
一応追加・・・?
0004nobodyさん
2006/02/24(金) 22:53:42ID:???0005nobodyさん
2006/02/24(金) 23:44:51ID:???クロウカード編
(第1期)第1話〜第35話(1998.4.7〜1998.12.29)
(第2期)第36話〜第46話(1999.4.6〜1999.6.22)
さくらカード編
(第3期)第47話〜第70話(1999.9.7〜2000.3.21)
◆関連サイト
NHK公式
http://www3.nhk.or.jp/anime/sakura/
『カードキャプターさくら』TOPICS
http://www.clamp-net.com/works/headline/main.html#sakura
アニメ版CCさくら データ
http://page.freett.com/sakura2ch/
0006nobodyさん
2006/02/25(土) 01:31:08ID:???一つのレコードに対して、ユーザーが定義したキーワードのタグを複数割り当てることが出来るものです。
さらに、そのタグが削除されれば、全部のレコードからそのタグのみ削除されたり、
タグごとにいくつのレコードにそのタグが割り当てられているか集計出来たり、
タグによる絞り込みや、新規レコード登録の際にすでに定義されたタグ
(そのタグをもったレコードが存在するという事)を動的に読み出して、
入力の選択肢として再利用するような感じです。
どんなテーブル構成にしたらよいのか、このタグをいったいどういう風にDBに格納するべきか
・タグひとつにつき1フィールドで1か0のフラグ?
・1フィールドにタグを配列で?
なんだか漠然として全然考えがまとまりません。
なにかアドバイスがあったらおながいします。
環境はPHP4.3.1、MySQL 3.23.58です。(本番用のレンタル鯖)
0007nobodyさん
2006/02/25(土) 01:34:44ID:RijzHz3L趣味でやってるなら背伸びのしすぎ
仕事でやってるなら金払え
0008nobodyさん
2006/02/25(土) 01:55:40ID:???一応仕事でやっております。
ユーザー(データを登録する人)がタグを自由に追加出来るってのがくせ者でして、シンプルに考えれば好き放題カラムを増やすのもありなんですが、テーブルをいじくるクエリ発行しまくりで禿げしく面倒な悪寒。
やっぱり配列でごにょごにょですかね?
なお、この案件は要望としてこういう機能が出てる訳でなく、納期もあるし、お金も出してくれそうなので、勉強をかねていっちょがんばってくれや、といわれたので張り切ってるのですが、もう構想だけで半月もたってしまいますた。
0009nobodyさん
2006/02/25(土) 01:58:22ID:???PHPからzlibを利用できる環境で
zipとgzipの出力ができる。詳しくはzip.lib.php参照
(PEARのArchive_Zipクラスみたいなもん)
ということですが、どの関数をつかってZIPファイルを生成すれば良いか教えてください。
0010nobodyさん
2006/02/25(土) 02:20:03ID:???328 :nobodyさん :2006/02/13(月) 15:31:00 ID:???
test.php?%5B%5B
とすると、一つ目が%5Fになってしまうのですがこれはバグでしょうか?
OSはWinXP ProSP1、鯖はAnHTTPD、PHP5を使ってます。
こちらのサイトではきちんと認識しているようです。
ttp://openoffice.s16.xrea.com:8080/pukiwiki/pukiwiki.php?%5B%5BOOo2.0%A5%D0%A5%B0%BE%F0%CA%F3%5D%5D
0013nobodyさん
2006/02/25(土) 08:08:57ID:???クラスなので関数は使わない、使うのはメソッド。話の流れを読めば判ると思うんだが
zip.lib.phpは、phpMyAdminのパッケージ中に含まれるクラスライブラリのファイル
(phpMyAdmin専用ということはないので、他のアプリケーションでも含まれることあり)
そんなに大きなファイルでもないし、懇切丁寧な説明があるわけでもないので
まずは入手してどんなメソッドがあるのか、パラメータは何か、その辺はソースを参照。
(でもライセンスが何なのか、俺も良く知らないんだけど)
0015nobodyさん
2006/02/25(土) 09:42:53ID:???クダ質の範囲じゃないだろ。
スレたてるか、ふさわしいスレさがせ。てか、仕事でやるならくんなよ。
せめて、自分で考えた範囲とかを公開して意見求めるならわかるが
2chに丸投げすんな
0017nobodyさん
2006/02/25(土) 10:50:23ID:???タグとレコードのIDの組み合わせを持つテーブルを作ればいいんでないの?
PHPっつーよりDBのスキーマ設計じゃん。スレ違いな感じ。
0018nobodyさん
2006/02/25(土) 16:56:40ID:???>スレたてるか、ふさわしいスレさがせ。てか、仕事でやるならくんなよ。
こんなんでいちいちスレ立てるんですか?
>せめて、自分で考えた範囲とかを公開して意見求めるならわかるが
>2chに丸投げすんな
だから、自分で考えた範囲は、>>6に。
丸投げじゃなくて、DBをどう構成するか、って部分を聞きたかったんですよ。
>>17
たしかにスレ違いというより板違いかも。
DB板に逝って来ます
0019nobodyさん
2006/02/25(土) 17:18:24ID:???0021nobodyさん
2006/02/25(土) 19:22:00ID:???0022nobodyさん
2006/02/25(土) 19:38:30ID:???例えば書評サイトを作るとしよう
・書籍名 :(さるでもわかるPHP)
・ジャンル:(ぱそこん)
・作家名 :(曾英知)
・出版社 :(PHP出版)
・書評 :(わからん)
・満足度 :(38%)
とソフトかなんかにカッコ内だけ記入してアップロードしたら
かってに
・ジャンルごとに固めて五十音順にならべるてページ作ってくれる
・ジャンルごとに固めて満足度順に並べてページつくってくれる
とかしてくれるようにしたいんだけど
HTMLやCSS以外に何を勉強したらできるようになるのか教えてください、
正直本屋いってもプログラム言語が多すぎてさっぱりわからない
blog使えばいいじゃねーかとか言われてもブログのデザインって
使いにくいしダサいし
002322
2006/02/25(土) 19:40:45ID:???これは難しいのか、簡単なのか、全く知識が無い者が
簡単にできるものなのか?てのも教えてください。
0024nobodyさん
2006/02/25(土) 19:44:40ID:???ここはPHP言語スレだからPHPを使え
0025nobodyさん
2006/02/25(土) 19:52:55ID:???0026nobodyさん
2006/02/25(土) 19:55:42ID:???俺は>>22がここを「PHP板・総合くだ質スレ」だと思ってることのほうが気になる。
0027nobodyさん
2006/02/25(土) 20:03:49ID:???PHPスレに来てこの発言とは、PHPを使えと言って欲しいだけのMと見た。
002922
2006/02/25(土) 21:25:21ID:???俺のプログラム言語の認識
WEBプログラミング
JavaScriput→なんかサイトの見栄えをうざくするやつ
CGI→カウンターとかつくるやつ
PHP→なんでもできるうえにかんたん
mysql→なんかデータベースつくるソフト、phpで記述する?
他のぷろぐらむ言語
basic→中学んころやったけどよくわからん
c→大学でやったけどカレンダーのプログラム難しくてつくれなかった
だからここで質問したw
やっぱりあきらめろってことかい
003022
2006/02/25(土) 21:31:09ID:???スレ違いでした
0031nobodyさん
2006/02/25(土) 21:38:44ID:???0032nobodyさん
2006/02/25(土) 21:44:29ID:???0034nobodyさん
2006/02/25(土) 22:25:47ID:???0035nobodyさん
2006/02/25(土) 22:49:32ID:???他に書いてあることも駄目ダメだが…
> c→大学でやったけどカレンダーのプログラム難しくてつくれなかった
これがやたらリアルで吹いた。
理解できるまで自分でプログラム書かない方がいいよ。
0036nobodyさん
2006/02/25(土) 22:55:19ID:???正直、お前さんの場合、自分でプログラムを書いてやりたいことをやるよりも、
誰かに書かせられるだけの資金力を身につけた方がてっとり早いかもよ。
0037nobodyさん
2006/02/25(土) 23:36:25ID:???やりたいことをプログラマに伝えられるとは思えん。
>>29のような認識しかしようとしない人には誰もついていかないと思う。
0038nobodyさん
2006/02/25(土) 23:45:42ID:???0039nobodyさん
2006/02/25(土) 23:45:54ID:???中途半端に知識があるヤツは「ここはコレでああしてくれ!」って頼んでくるからマジで面倒くさい。
>>29なら「こういうのが作りたいんだ。やってくれるか?」って行ってくれれば喜んでやるよ。
まぁ、>>29に人間性によるがな。知識はなくても人間性の良いやつには俺は出来るだけ力になりたいよ。
0040nobodyさん
2006/02/26(日) 00:23:56ID:???そういう人は何やっても無駄。
他人に金払って作ってもらったほうがいいよ。
0041nobodyさん
2006/02/26(日) 00:49:05ID:???0043nobodyさん
2006/02/26(日) 04:31:10ID:29iVLzi6$bookdata="
1,本の名前a,発売日,問い合わせ先,\n
2,本の名前b,発売日,問い合わせ先,\n
3,本の名前c,発売日,問い合わせ先,\n
4,本の名前d,発売日,問い合わせ先,\n
5,本の名前e,発売日,問い合わせ先,\n
6,本の名前f,発売日,問い合わせ先,\n
7,本の名前g,発売日,問い合わせ先,\n
";
を
1は本の名前a<br>
2は本の名前b<br>
3は本の名前c<br>
4は本の名前d<br>
・
・
・
という形で表示させたいのですが
どなたか教えてください
explodeを使うのかなぁと思うんですがいまいちやり方わからず・・・
0046nobodyさん
2006/02/26(日) 07:15:27ID:???for ($i = 0 ; $i < count($a) ; $i++) {
$b[$i] = explode("\n", $a[$i]);
echo $b[$i][0] . "は" . $b[$i][1] . "<br>";
}
0047nobodyさん
2006/02/26(日) 10:00:13ID:???0049nobodyさん
2006/02/26(日) 11:02:51ID:???・・・でも、PHPにしろJavaにしろオブジェクト指向開発で難しいのはプログラミングじゃなくって
クラス図とか作るほうだよな('A`)
0050nobodyさん
2006/02/26(日) 11:11:23ID:WBgYvtX2failure notice のエラーが返ってきて送れない人達がいます。
メールアドレスが間違っている or 受信設定でドメイン許可をしないと駄目
だと思っていたのですが、それ以外に @ の前が . (ドット)だと駄目とかありますか?
例 : test.@docomo.ne.jp
0051nobodyさん
2006/02/26(日) 11:33:39ID:???RFC2821の記述を読むと、
. から始まったり
. が連続したり
. で終わったり
するのはマズイんでないかねぇ。自分でも読んでみてちょ。
てか、実際 .@ の場合は多くのMTAが叩き落してた希ガス
0052nobodyさん
2006/02/26(日) 11:48:28ID:???>例 : test.@docomo.ne.jp
RFCに準拠して無いアドレスは、インターネットのメールアドレスとは言えない。
ドキュモの勝手な仕様。
0053nobodyさん
2006/02/26(日) 13:18:31ID:???0054nobodyさん
2006/02/26(日) 13:30:13ID:???一番苦労してるのはネットワーク系の人だろうね。
0055nobodyさん
2006/02/26(日) 13:57:13ID:???0056nobodyさん
2006/02/26(日) 14:05:50ID:???標準で組み込まれてる関数ってPHPで書かれてるんですか?
0057nobodyさん
2006/02/26(日) 14:07:53ID:???0058nobodyさん
2006/02/26(日) 14:18:14ID:???例えばメール関係の関数はこんな感じで書かれている。
ttp://cvs.php.net/viewcvs.cgi/php-src/ext/standard/mail.c?view=markup&rev=1.89
全部のソースを見たいなら、ttp://www.php.net/downloads.php から
Complete Source Code ってのをダウンロードすればいいよ。
0059nobodyさん
2006/02/26(日) 17:32:27ID:izomZemY0062nobodyさん
2006/02/27(月) 09:31:48ID:???0063nobodyさん
2006/02/27(月) 11:33:33ID:???echoやprintでhtmlを出力する時に、
どういった形で出力してますか?
たとえば
echo "<div id=\"a\">\n"
. "<div id=\"b\">\n";
とか、
echo "<div id=\"a\">
<div id=\"b\">
";
とか
echo '<div id="a">
<div id="b">
';
とか
echo <<<EOF
<div id="a">
<div id="b">
EOF;
とかいろいろありますよね。
この書きかたはセキュリティ的に良くないよー
みたいなことは特にありませんか?
0064nobodyさん
2006/02/27(月) 12:01:08ID:???mysq_query()コマンドで行うのでしょうか・・
0065nobodyさん
2006/02/27(月) 12:32:40ID:???長い場合は3つ目。ダブルクォートを気にしなくてすむし。
見やすくするためにEO+識別子を使う。EO_EntryFormとかね。
EOFだとファイルが終わっちゃう感じがするし。
短い場合は1行で収めちゃうね。基準はその時の気分w
0066nobodyさん
2006/02/27(月) 12:51:45ID:???俺はechoやprintではHTMLを出力しないようにしてる。
原則、?>HTML<?php 形式。
必要なケースでは(変数に格納しておきたい場合など)
1.変数が必要で内容が短い→"〜"
2.変数が不要か「.」で繋いだ方がシンプルにまとまって内容が短い→'〜'
3.内容が長い→<<<HTML でヒアドキュメント
って感じ。
0067nobodyさん
2006/02/27(月) 13:22:14ID:nvSEUa/x常識は持っています。
で、趣味で、webサイトを構築するときにcgiかphpを使おうと思っているところです。
簡単に言うとフォームから入力した情報を、index.htmlに反映させて
上書きしていく、というものです。
cgiとPHPどちらがいいものでしょうか?
0069nobodyさん
2006/02/27(月) 13:40:35ID:???CGIでPHPを使うのが両方出来てお得だと思います。
Pascalライクなのがいいなら、Pythonなんかがそんな感じがするが
Webと組み合わせるならPHPは本当に楽だよ。
007067
2006/02/27(月) 14:14:22ID:???PHPを勉強してみます。
0071nobodyさん
2006/02/27(月) 16:04:42ID:???お助けください。。。
// ------------------------------------------------------------
// データ格納
function getData() {
$post = $_POST; // 項目は「氏名(name)」と「目的(mokuteki)」
}
// ------------------------------------------------------------
// エラーチェック
function checkErr() {
if (!$post['name']) {$errmsg .= '<li>氏名が入力されていません。</li>';}
if (!$post['mokuteki']) {$errmsg .= '<li>目的が入力されていません。</li>';}
if ($errmsg) {$errflag = 1;dispErr();} else {return;}
}
// ------------------------------------------------------------
function dispErr() {
// エラーメッセージ表示
echo ('<ul>');
echo ($errmsg);
echo ('</ul>');
die;
}
HTMLのフォームからPOSTされた内容をエラーチェックしたいのですが、
フォームに何も入力しないでSUBMITしても、
エラーチェックにひっかかってくれません。
エラーチェックルーチンではこの他に
if ($post === "") / if ($post == "") / if ($post === NULL)
なども試してみました・・・
007271
2006/02/27(月) 16:12:47ID:sj9CYitM誤)if ($post === "") / if ($post == "") / if ($post === NULL)
正)if ($post['name'] === "") / if ($post['name'] == "") / if ($post['name'] === NULL)
0073nobodyさん
2006/02/27(月) 16:12:57ID:???関数の中でグローバル宣言してやる、もしくは引数として渡してやるかしないとダメだろ。
いずれにしてもgetData()、checkErr()は変だよ。返値ないじゃん。
関数の書き方マニュアルでチェックしてみ。
007471
2006/02/27(月) 16:20:23ID:???レスありがとうございます。
ソースにはカキコした関数以外の部分でglobal宣言しておりました。
とりあえずcheckErr()に$postを渡してみました。
checkErr → checkErr($post);
すると、いままでうんともすんとも言わなかったテスト用のvar_dumpが
反応してくれました(嬉泣)!
ひとまず、ご報告まで。半年ROMって精進します。
007571
2006/02/27(月) 16:31:45ID:???・ getData()内で$postと$errmsgをglobal宣言した
・ getData($post)からはreturn $post;で戻るようにした
・ checkErr()に$errmsgを渡すためにcheckErr($errmsg)と呼び出した
上記の変更で、なんとなく動くようになりました。
さらに改良していきます。
ありがとうございました。
0078nobodyさん
2006/02/27(月) 17:26:50ID:???checkErr($_POST);
0079nobodyさん
2006/02/27(月) 20:00:13ID:j8jIGqNe0080nobodyさん
2006/02/27(月) 20:02:35ID:???0082nobodyさん
2006/02/27(月) 20:04:59ID:j8jIGqNeすいません、詳しく教えてくれませんか?
検索しようにも記号は検索語にならんもんで。。
0083nobodyさん
2006/02/27(月) 20:08:18ID:???ttp://php.s3.to/man/language.operators.comparison.html
0085nobodyさん
2006/02/27(月) 22:02:21ID:APEEDXbIやったこと
→googleで「ファイル分割関数」で検索
→PHPエディタ[スタンドアロン版]に付属のマニュアルchmで検索
関数名さえ教えてもらえば、あとは自分で調べます。
0086nobodyさん
2006/02/27(月) 22:12:02ID:???0087nobodyさん
2006/02/27(月) 22:14:09ID:APEEDXbIすいません書き忘れてました
1.44メガバイトずつに分割したいと考えています。
0088nobodyさん
2006/02/27(月) 22:19:06ID:???0091nobodyさん
2006/02/27(月) 22:49:27ID:???いえ、フロッピーではなく、
今「PCドキュメントダウンローダー」という、auの定額携帯用のツールを作っていて、
DL可能なファイルサイズが、KDDIの仕様で1.5MBまでなんです。
0092nobodyさん
2006/02/27(月) 23:21:55ID:???夜遅くにすみません。
0093nobodyさん
2006/02/27(月) 23:24:21ID:???移動乙
OSとphpのバージョン書いたほうがいいよ
Winっぽいよね・・、winでphpのインストールした事がないなぁ
0094nobodyさん
2006/02/27(月) 23:26:01ID:???googleで
「php windows インストール マルチバイト関数」
で検索したら一発だな
0095nobodyさん
2006/02/27(月) 23:28:34ID:d/u1H5JHあの、ホントいい人ですね。
winです。でも>>94さんが言うように、さっきググったら自己解決できます。きっと。
俺のバカ。
夜遅くにホントすいません。
>>94
愛してます。
俺のバカ。
<引用>
mbstring は拡張モジュールです。
つまり、デフォルトでは 有効にならないということです。
configure スクリプトでモジュールを有効にする必要が あります。
詳細は、インストールの 節を参照してください。
はい、これならできます。ホントありがとうございました。
0097nobodyさん
2006/02/27(月) 23:59:20ID:???そ、そう言われたら。。
php.iniから↓をコメント外したしたところ、無事動作しました。
//ここから
extension=php_mbstring.dll
output_handler = mb_output_handler //これだけは追加しますた。
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none;
//ここまで
おやすみなさい。。
0100正規表現?
2006/02/28(火) 00:01:40ID:DEUM5hM0$str = mb_ereg_replace('\\\\',"\\\\",$str);
$str = mb_ereg_replace('\'',"\\'",$str);
という、データベースに入れるデータを通すための関数が2つあるんですが、
'\\\\',"\\\\"
'\'',"\\'"
この2箇所がどのような文字列についての対策なのかが分かりません...
もし分かる方がいらっしゃいましたら、
おしえてくださいっm(__)m
0101nobodyさん
2006/02/28(火) 00:41:40ID:???漏れは余計な改行が入るのを嫌って全てecho
>>100
単なるクエリのエスケープだと思うが
>$str = mb_ereg_replace('\\\\',"\\\\",$str);
前の\\\\は「\」にマッチしたいが「\\」→「\」の変換が2度行われる為
後の\\\\は「\\」に置換したいが「\\」→「\」の変換が1回行われる為
>$str = mb_ereg_replace('\'',"\\'",$str);
'\''は「'」にマッチさせる為
"\\'"は「\'」に置換させる為
''と""を使い分けている理由に付いては(゚听)シラネ
参照(引用)元がたまたまこの形式で、それをコピペしただけかも知れん。
0102nobodyさん
2006/02/28(火) 00:41:45ID:???0105nobodyさん
2006/02/28(火) 00:46:28ID:C5SJRerwちなみにperlからも出来ない・・・orz
これってモジュール版で動いてるから仕方ないんでしょうか?
解決策は鯖管に頼むしかないんでしょうか・・
0106正規表現?
2006/02/28(火) 01:09:33ID:1e1aKd+D100です
ありがとうございます!!!
よく分かりました!
0107nobodyさん
2006/02/28(火) 06:42:02ID:???特定のディレクトリのバックアップを自動で行ってくれるような
スクリプトはかけますでしょうか?
PHPでどういったことが(どこまで)できるのか知りたいです。
PHPは最近はじめたばかりで、他の言語に関しては知識は皆無です・・・
0109nobodyさん
2006/02/28(火) 07:28:57ID:???まぁできなくは無いんじゃないかな。WebProgというよりLinuxの方の話になると思うけど。
1週間おき -> cron (linuxの仕組み)
日付 -> date (PHP)
tar -> PHPにはtarを直接扱える関数が無さそうなので ` ` や execとか (PHP+Linuxコマンド)
tarはそう難しいファイルフォーマットじゃないので、自作でもできるんじゃないかな。
実際pearにもtarを扱うやつあるものね(pearだから当然PHPで書かれている)。
0110nobodyさん
2006/02/28(火) 09:10:39ID:1h7tXCMd文字コードと思われる点でつまづいています。
秀丸で書いておりまして、
保存時に「EUC」と改行コードは「LF」を設定しています。
IEで開くとき、問題なく表示できるようになりましたが、
<FORM ACTION="<?php echo( $_SERVER[ "PHP_SELF" ] ) ?>" METHOD="POST">
キーワード:<INPUT NAME="KEYWORD" TYPE="TEXT" SIZE="30">
<INPUT TYPE="SUBMIT" VALUE="検索">
とする時、日本語入力を受け付けていないようなのです。
echo( $_POST[ "KEYWORD" ] );
を各所に配置して確認したところ、日本語入力をすると文字化けしています。
0113110
2006/02/28(火) 09:33:07ID:???mbstring.http_output = EUC
としました。
汚してどうも。
0114107
2006/02/28(火) 09:44:35ID:???cronですか。ちょっとサービスが起動してるか確認してみます。
0115nobodyさん
2006/02/28(火) 12:33:53ID:???実行するにはどーすればいいんでしょーか?
http://jp.php.net/downloads.php ここで落とせばいいの?
0116nobodyさん
2006/02/28(火) 12:54:20ID:???あとWEBサーバもないと駄目。まぁ単体でも使えるけど・・
0117nobodyさん
2006/02/28(火) 13:08:31ID:???変数宣言とか無いから
ソース見た時に、この変数の型ってなんだ?とか思っちゃいます。
例えば、
$BBSData = LoadCsvFile( BBS_DATA );
こんなのある時に、LoadCsvFileはarray型の値を返すんですが、
$BBSDataの型は、LoadCsvFileの定義か、
$BBSDataを実際に使ってるところから割り出すしか無いですか?
変数宣言を強制するとかできません?
0118nobodyさん
2006/02/28(火) 13:11:09ID:???ありがとさん。解説サイトにも書いてあったけど、やっぱりサーバー持ってる人用なのかな?
普通にレンタルサーバーでもPHPは使えるわけでしょ、
更に下らない質問なんだけど
つまり鯖無しユーザーはHTMLにPHP記述してブラウザで確認ってカタチで宜しいんでしょうかね?
0120nobodyさん
2006/02/28(火) 13:17:29ID:???ムリ
大抵は関数の定義から判断する。
Perlみたいにスカラーとリストを両方返せる関数があるわけじゃないんだし、
型宣言できたところでリファレンスか実体かでまた苦しむだけだから一緒かと。
ソースを部分的に見ただけで型判別できるようにしたかったら、変数名に型の識別名を
入れるのがPHPに限らずCでもC++でもJavaでもセオリーかと思うがどうか。
0121117
2006/02/28(火) 13:24:14ID:???>リファレンスか実体かでまた苦しむだけだから
あら、やっぱり参照型と値型あるんですね。
まだ始めたばっかりなんで、オブジェクト関係はまだ遠いです。
>CでもC++でもJavaでもセオリーかと思うがどうか。
最近C#とIDEの開発では接頭語入れない事が多いんで、
それに慣れちゃってました。
PHPの慣習に倣います。
すごい分かりやすい解説でした。
また縁があったらよろしくお願いします。
ありがとうございました。
0122117
2006/02/28(火) 13:47:48ID:???PHPって関数の戻り値を、
絶対受けなきゃいけないって訳じゃないんですか?
さっきの例で、
$BBSData = LoadCsvFile( BBS_DATA );//array型の値が返る関数
の後に、
if ( $BBSData == false ) {
}
とか、
LoadCsvFile( BBS_DATA ); //特にLoadCsvFileのオーバーロードが他にある訳ではないです。(というか規定のパラメータと言う?)
みたいなコードが書いてあったんで、
「ん?bool型も返す?」・「戻り値受けなくてもいい?」
と疑問が出たのですが、中々目当ての資料に行き着けなくて。
毎度すみません。よろしくお願いします。
0123nobodyさん
2006/02/28(火) 14:02:37ID:???サーバの意味がわかってない。Webサーバってハードじゃないぞ。
自分のパソコンでも大丈夫。
用はApacheとかIIS等のWebサーバがPHPの言語を解釈してブラウザに表示する
役割をもっている。
だからWebサーバ起動してなかったらブラウザで確認できんよ。
0124nobodyさん
2006/02/28(火) 14:18:25ID:???おk。やってみるわd。
>>123
自分のパソコンをWeb鯖にするってことだよね?
それが公開されてなくても大丈夫なのかな・・・?
本当に糞みたいな質問なんだけど
>>だからWebサーバ起動してなかったらブラウザで確認できんよ。
起動してないユーザーはそもそもPHPの言語を読めないってこと?
PHPってHTMLファイルの中に直接書き込んでいってブラウザで表示するものだと思ってた・・orz
JavaScriptとは違うのね。・・・もうこれ以上質問する前に勉強してくる。
0125nobodyさん
2006/02/28(火) 14:39:09ID:???>起動してないユーザーはそもそもPHPの言語を読めないってこと?
サーバを起動してない>>124は、PHPをHTMLに埋め込んでブラウザで表示してもPHP部分は動かないって事?
と意訳させてもらうと、答えは、
「そうだよばか」
勉強頑張れ〜。
0126nobodyさん
2006/02/28(火) 14:40:36ID:???0127nobodyさん
2006/02/28(火) 14:41:34ID:???公開されなくても確認するだけなら別にいいよ。みんなに見せたいなら公開しないと駄目だけど。
Web鯖起動してなかったらPHPはおろかHTMLもブラウザで表示されない。
Web鯖起動しててもPHP組み込んでなかったらただのテキストとして表示される。
入れるのややこしいならここらへんが便利そう
ttp://www.apachefriends.org/en/xampp.html
ttp://www.spacetag.jp/modules/download/
0128nobodyさん
2006/02/28(火) 14:46:10ID:???>Web鯖起動してなかったらPHPはおろかHTMLもブラウザで表示されない。
論旨は間違っていないが、初心者には余計な誤解を招くぞ。
0131nobodyさん
2006/02/28(火) 15:00:31ID:???> PHPの慣習に倣います。
慣習で言ったら接頭語なんて付けない、型なんて特に気にしない、が普通じゃないか。
0133nobodyさん
2006/02/28(火) 15:11:05ID:???> 自分のパソコンをWeb鯖にするってことだよね?
> それが公開されてなくても大丈夫なのかな・・・?
まー、IISじゃなきゃ80ポートをちょこっと受け付けるくらいで甚大な被害は多分出ないって。きっとw
0134nobodyさん
2006/02/28(火) 15:41:59ID:???>>117
PHPの変数の型はその場の文脈で勝手に変わるから
変数名で判断するとか無理なんよ
あと、Cだと基本的に全てのシンボルはアドレスと考えられるが
PHPはそうではないからリファレンスを理解する時注意するように
0135nobodyさん
2006/02/28(火) 17:02:02ID:???俺はスクリプトの最後にバックアップ用ファイルの最終更新時間と現在の時刻を照らして、条件を満たしていればバックアップを上書きするようにしてる。
普段使ってるファイルが壊れたり異常が見られたら、普段のファイル削除→バックアップを普段のファイル名にリネームしている。
0136nobodyさん
2006/02/28(火) 17:57:58ID:???スクリプト中に記述しても変更出来ません。
ini_set('upload_tmp_dir', "D:/test"));
試しにvar_dumpしてみるとbool(false)と帰ってきています。
どうすれば変更できるでしょうか?
0137136
2006/02/28(火) 17:58:54ID:???ini_set('upload_tmp_dir', "D:/test"));
↓
ini_set('upload_tmp_dir', "D:/test");
0138nobodyさん
2006/02/28(火) 18:01:19ID:???それとWinのセパレーターは/じゃなくて\ね
0139136
2006/02/28(火) 18:03:20ID:???;upload_tmp_dir =
どの様にすれば変更出来るでしょうか?
0140nobodyさん
2006/02/28(火) 18:06:46ID:???0141136
2006/02/28(火) 18:09:53ID:???0143136
2006/02/28(火) 18:15:43ID:???0145136
2006/02/28(火) 18:20:18ID:???0146nobodyさん
2006/02/28(火) 18:47:29ID:z6M7N5M1PHP_INI_SYSTEM 4 このエントリは、php.ini または httpd.conf (しかし、httpd.confのVHostブ ロック内では不可)で設定可能
0147nobodyさん
2006/02/28(火) 18:50:11ID:???XMLで記述したForm情報を読み込んで処理できるやつあったら教えてください。
↓こんな感じのXMLを元に処理してくれたらうれしいんですが
<form>
<element id="name">
<max_length>30</max_length>
<min_length>1</min_length>
</element>
</form>
0148nobodyさん
2006/02/28(火) 19:05:53ID:???もし可能であれば教えていただけないでしょうか。
0149nobodyさん
2006/02/28(火) 19:18:52ID:???0150nobodyさん
2006/02/28(火) 19:37:39ID:???そもそもスクリプトが実行開始された時点でファイルのアップロードは完了しており、
すでにどこか(指定の)ディレクトリに保存されているので、スクリプト内で改めて
保存先を指定する意味が無い。実際の動作を考えれば判りそうなもんだけど・・・。
>>138
一応'/'でも通るよ。つかエスケープが面倒なので'/'を常用してる。
>>146
ゆとり教育の弊害だと思う
0151nobodyさん
2006/02/28(火) 19:57:03ID:???ゆとり教育ってのは段階的にかなり長期的に続けられている
0153nobodyさん
2006/02/28(火) 20:18:17ID:???0154nobodyさん
2006/02/28(火) 20:49:51ID:???元々ゆとり教育したい教育者のムードがあった。
そんな突然ゆとり教育させたら、きちんとした教育者は反発する。
0155nobodyさん
2006/02/28(火) 21:28:23ID:???0156nobodyさん
2006/02/28(火) 21:48:47ID:???楽をしたがった教職員やPTAのせいだけどね。
0157nobodyさん
2006/02/28(火) 22:04:52ID:???0158nobodyさん
2006/02/28(火) 22:05:44ID:???0159nobodyさん
2006/02/28(火) 23:11:14ID:???和田 秀樹 (著)
http://www.amazon.co.jp/exec/obidos/ASIN/4569579108/ref=pd_sim_dp_4/249-5087703-6782729
0160nobodyさん
2006/02/28(火) 23:50:56ID:???0161nobodyさん
2006/02/28(火) 23:58:27ID:???0163nobodyさん
2006/03/01(水) 00:27:02ID:HmVG72O50164nobodyさん
2006/03/01(水) 00:30:16ID:???0165nobodyさん
2006/03/01(水) 00:51:43ID:???セッションなら上手くいくんですが、クッキーだと上手くいかんとです。
ブラウザ側で禁止してるわけでもないし。
$_COOKIE["hoge"] = "hogetest";
で使ってるんだけど、なぜか上手く保持できない・・・orz
表示するときも echo $_COOKIE["hoge"];
で間違いないですよね?
0166165
2006/03/01(水) 00:58:57ID:???手元のPHPリファレンスには
$_COOKIE["hoge"] = "hogetest";
と
setcookie("hoge", "hogetest");
は同じって書いてあるのですが、これはもしかして嘘でしょうか?
0167nobodyさん
2006/03/01(水) 00:59:09ID:???0169nobodyさん
2006/03/01(水) 01:07:06ID:ektJPim10170nobodyさん
2006/03/01(水) 07:32:54ID:???エラーのときfalseを返す関数はPHPでは一般的だったりする
str_word_countとか引数の違いで戻り値がstringだったり配列だったりするし
PHPやるなら型のことは忘れないと駄目だよ
0171nobodyさん
2006/03/01(水) 08:18:27ID:???$a[1] の内容 で 昇順にソートする場合には下記のような方法で出来ますが、
この場合、(A, F, G, Z, a, f, g, z) と並んでしまいます。
(A, a, F, f, G, g, Z, z) のようにアルファベットの大文字と小文字を区別しないような
ソート関数を作りたいのですが、どうすれば良いでしょうか?
function cmp($a, $b) {
if ($a[1] < $b[$1) { return -1; }
if ($a[1] == $b[1) { return 0; }
if ($a[1] > $b[1]) { return 1; }
}
0172nobodyさん
2006/03/01(水) 09:11:40ID:???0173nobodyさん
2006/03/01(水) 12:22:53ID:C+OfQRhvもし、それが数字である場合に真を返す関数はありますか?
0174nobodyさん
2006/03/01(水) 12:36:56ID:???is_numeric とか gettype などいかがでしょう。
実際に試してないので自信ないですが。
はい、次ぼくの質問
↓
perlで言うところの
print <<HOGE;
なんたらかんたら
HOGE
みたいな書式はありますでしょうか?
この書き方の呼び方が分からんので検索できなかったす……
0176174
2006/03/01(水) 12:41:13ID:???0178nobodyさん
2006/03/01(水) 12:44:38ID:???0179nobodyさん
2006/03/01(水) 13:07:10ID:YIO/KfnWprint ($flag)? <<TEXT1 : <<TEXT2;
なんたら1
TEXT1
なんたら2
TEXT2
みたいに書けるんだけど、PHPの場合はこれって
print ($flag)? <<<TEXT1
なんたら1
TEXT1
: <<<TEXT2
なんたら2
TEXT2;
って書くしかない?
0180nobodyさん
2006/03/01(水) 13:28:25ID:???ctype_digit($hoge);
という関数もある。
Cのネイティブ関数なのでこれでよければctype関数の方が早い
ただし$hogeは文字列
$hoge = 10;
ctype_digit($hoge)はfalseになる
$hoge = 48; //'0'のASCIIコード0x30
ctype_digit($hoge)はtrueになる
ctype_digit("$hoge");と文字列にすると両方trueになる
0181nobodyさん
2006/03/01(水) 14:02:36ID:???後者しかないね。
PHPだと識別子直後の改行が必要なうえに、
次の行に何が書いてあっても取り込む文字列として見なされる。
0182nobodyさん
2006/03/01(水) 14:48:01ID:???なんたら1
TEXT1)
: (<<<TEXT2
なんたら2
TEXT2);
カッコで閉じても無理?
0184nobodyさん
2006/03/01(水) 16:09:03ID:???幾つかのデータを表にだしある行のデータを変更したら一番端に作っているチェックを
Javaでonにして、更新時はそのチェックをついている行のデータを更新させているのですが
↓こんな感じ 各チェックボックスの値は主キー
foreach($_POST['check'] as $val){
mysql_query("update hoge set a='".$_POST{'a'.$val}."',b='".$_POST{'b'.$val}."' ");
}
$_POSTも項目ごとに必要だし各項目の後ろの主キー(一意の番号)をつけないといけないので
もっとスマートor簡単な処理方法なにかないでしょうか?
0186nobodyさん
2006/03/01(水) 18:04:05ID:MpRVy8N5何がしたいのか、解読するのが面倒なので、もっと質問を整理してください。
0190nobodyさん
2006/03/01(水) 19:17:28ID:???ということは、新規にスレをたてた時には新しいディレクトリを作成し、さらにその中にindex.php(ログからスレ内容を加工、表示するスクリプト)とログファイルを生成してるんでしょうか?
普通のレン鯖でこういう仕様はやめた方がいいんでしょうか?
0191nobodyさん
2006/03/01(水) 19:34:34ID:???> 新規にスレをたてた時には新しいディレクトリを作成し
そんなことはやってません。
ttp://*.2ch.net/test/read.cgi/*/1140786348/l50
read.cgiで、/以降を解析して表示しているだけです。
> 普通のレン鯖でこういう仕様はやめた方がいいんでしょうか?
フォルダ作る分には全然構わないと思います
ここまで書いて自信なくなってきましたが、
おそらくこうだったと思います。
0192nobodyさん
2006/03/01(水) 19:36:39ID:???0193nobodyさん
2006/03/01(水) 19:41:00ID:???参考までに
【スレッド】2ch型掲示板 14 【フロート型】@WebProg
http://pc8.2ch.net/test/read.cgi/php/1127896640/l50
0194nobodyさん
2006/03/01(水) 20:02:46ID:???そういえばread.cgiが間に入ってますね。ありがとうございます。
>>192
誘導ありがとうございます。参考にさせてもらいます。
0195nobodyさん
2006/03/01(水) 21:09:07ID:MpRVy8N5パスインフォ
0196nobodyさん
2006/03/01(水) 23:10:25ID:9If1oYZF<EMBED
SRC=".mid"
WIDTH="150"
HEIGHT="40"
AUTOSTART="FALSE"
REPEAT="TRUE"
SAVE="TRUE"
>
これの類で複製を出来なくする方法ってどうやるのですか?
0198196
2006/03/01(水) 23:13:19ID:9If1oYZFどこ逝きゃいい?
0200nobodyさん
2006/03/02(木) 04:18:35ID:???1.入力
2.入力チェック
3.確認
4.処理
5.完了
ってな感じが一般的だと思うんですが、これってひとつファイル中で if 使ってやるほうがいいか
form.php、check.phpとかファイルを分けてやるほうがいいかどう思いますか?
0201nobodyさん
2006/03/02(木) 05:02:30ID:???index.php と check.inc や end.inc というように、
1つのphpファイルと多数のincファイル(インクルードするファイル)で構成するのがいいと思う。
0202nobodyさん
2006/03/02(木) 08:24:23ID:???0203nobodyさん
2006/03/02(木) 09:20:52ID:c/Xyk/Yy$fp = @fopen($editfile, 'w');
$fp = fopen($editfile, 'w');
fopen関数の横に「@」があると無い場合とでは動作の違いはあるのでしょうか?
0204nobodyさん
2006/03/02(木) 09:28:08ID:QF2KFk3iエラーメッセージを抑制するだよ
そこでおいらの質問というか確認をお願いしますだ
Fatal error: Cannot redeclare user_function() (previously declared in /home/www/hoge.php:4) in /home/www/hoge.php on line 3
みたいなエラーが出たんだけど
ループの中で何回も
require 'user_function()';
をやっていたのがいけないんですよね?
0209203
2006/03/02(木) 10:53:31ID:???教えてくれたお礼に教えてあげよう。
includeはループの中で何度でもできるが、requireは1回しかできないから
ループの中で何度も使いたい場合は include使えばいいだよ
0210nobodyさん
2006/03/02(木) 10:59:59ID:???0211nobodyさん
2006/03/02(木) 11:03:29ID:???> requireは1回しかできないから
できる。
includeとrequireはエラー時にWarningになるだけかFatal Errorになってしまうかの差しかない。
0212nobodyさん
2006/03/02(木) 11:06:34ID:???勘違いしてない?
http://www.komonet.ne.jp/~php/chap7.htm
0213nobodyさん
2006/03/02(木) 11:09:55ID:???ttp://jp.php.net/manual/ja/function.require.php
ttp://jp.php.net/manual/ja/function.include-once.php
ttp://jp.php.net/manual/ja/function.include.php
0214nobodyさん
2006/03/02(木) 11:12:39ID:???require()とinclude()は エラーの扱い方を除けば全く同様に振舞います。
0215nobodyさん
2006/03/02(木) 11:14:35ID:???0216nobodyさん
2006/03/02(木) 11:14:45ID:???printfとかprintとかechoが同じといってるようなもんだな。
0217nobodyさん
2006/03/02(木) 11:18:31ID:???英語だと
require() and include() are identical in every way except how they handle failure.
0218nobodyさん
2006/03/02(木) 11:27:06ID:???ソースは解説サイトよりマニュアルを参照した方がいい。
そこで自分の過ちに気付き、自分が間違っていたんだと認める事ができれば人間としてもレベルが高い。
更に変な解説したサイトに嫌がらせのメールを送ったり勝手にMLに登録したら次の日は大吉。
0219nobodyさん
2006/03/02(木) 11:28:06ID:???[a.php]
<?php
require("b.php");
require("b.php");
?>
[b.php]
<?php
print "a\n";
?>
実行結果
a
a
0220203
2006/03/02(木) 11:29:03ID:???それをずっと信じてました
すみません
0221nobodyさん
2006/03/02(木) 11:33:10ID:???「(2)クッキーは、設定されたものと同じパラメータで削除する必要があります。クッキーを削除する場合には、ブラウザの削除機構を起動する為に、必ず有効期限を過去に設定する必要があります。」
もうむちゃくちゃだな。
「Cookieの削除をするには過去に設定するしかない」ってデマ情報がやまほどあるんだけど
真面目にいってるんだろうか。
setcookie( "Cookie", ""); だけで削除できるだろうが。
0222nobodyさん
2006/03/02(木) 11:39:54ID:???0223nobodyさん
2006/03/02(木) 11:50:43ID:???http://www.php.net/manual/ja/function.setcookie.php
0224204
2006/03/02(木) 11:53:31ID:???思いのほか盛り上がる内容だったみたいでなんだか嬉しいです。
>>210さんの方法が一番楽そうだったので、安直な私としては即採用です。
どう見ても便利です。ありがとうございました。
0227nobodyさん
2006/03/02(木) 12:03:31ID:???コレの意味がわからんのは俺だけか?
0229204
2006/03/02(木) 12:20:20ID:???うーん、間違った行為なんでしょうか
ループが無駄に長いもので、ループの外にrequire書いてもいいんですが。
requireとその中にユーザ関数があるんですが、記述が離れると一覧性が下がるかなぁと。
>>227
oops,
require 'user_function.inc';
とでも皆さん脳内変換してくれてたんですね・・。
0230221
2006/03/02(木) 12:22:04ID:???「クッキーを削除する場合には、ブラウザの削除機構を起動するために必 ず有効期限を過去に設定する必要があります。 前の例でクッキーを削除する方法のサンプルです。」と
公式マニュアルにもあるのか。
値が無いCookieをSetすることでFirefoxやIEでは正常にCookieが削除されるけど、これは仕様外の動作なのかな。
0231nobodyさん
2006/03/02(木) 13:04:31ID:???「クッキーは設定されたものと同じパラメータで削除する必要があります。 値が空文字列("")で、その他の全ての引数が前にsetcookieをコールした時と 同じである場合に、指定された名前のクッキーはリモートクライアント上から 削除されます。」
とも書いてあるんだから両方とも正しいんじゃない?
0232nobodyさん
2006/03/02(木) 13:42:54ID:???詳細を知る方法はないでしょうか?
sql文をよく間違うのですが、
原因を見つけるまでかなり時間がかかります。
$error = mysql_query($sql);
echo $error;
これでは無理でした・・・
0233nobodyさん
2006/03/02(木) 13:49:35ID:???を使いましょう。
ユーザ関数で
0234nobodyさん
2006/03/02(木) 14:22:21ID:???0236nobodyさん
2006/03/02(木) 15:11:17ID:???>$error = mysql_query($sql);
これで$errorにクエリが成功/不成功したかという情報が入ってるから、
その情報を元に、別の関数(直前のクエリのエラーを得る)で詳細を取得。
つかマニュアル読める環境で作業してないのけ?
0237nobodyさん
2006/03/02(木) 15:54:52ID:wuWQEqGXhatena というテーブルに word というカラムがあります。このカラムには hatena goog good のように単語が半角スペースにて区切られ格納さています。
例えば hatena という単語と完全一致する単語があるレコードすべてを表示するにはどうしたらいいのでしょうか?
この場合、wordというカラムに hatena だけが入っているレコードはもとより hatena www yahoo のように他の単語もはいっているレコードも表示しなければなりません。
どうぞよろしくお願いします。
0238nobodyさん
2006/03/02(木) 15:58:13ID:???0239nobodyさん
2006/03/02(木) 15:59:11ID:???0240nobodyさん
2006/03/02(木) 16:00:45ID:wuWQEqGX0242nobodyさん
2006/03/02(木) 16:11:25ID:wuWQEqGXわれながら考えたのですが、preg_match()でなんとかとはいきませんでした。
0244nobodyさん
2006/03/02(木) 16:14:27ID:wuWQEqGX0245nobodyさん
2006/03/02(木) 16:16:35ID:???>>236が言うように、マニュアルですぐに分かりそうなもんだが。
mysql_error -- 直近に実行されたMySQLコールのエラーメッセージを返す
mysql_errno -- 直近のMySQL処理からエラーメッセージのエラー番号を返す
0248nobodyさん
2006/03/02(木) 16:20:26ID:wuWQEqGXそれだと haten sql でもヒットしてしまいませんか?
0249246
2006/03/02(木) 16:21:15ID:???SELECT 〜 WHERE word LIKE '%hatena%
0250nobodyさん
2006/03/02(木) 16:22:36ID:wuWQEqGXところで爆発って?
0251nobodyさん
2006/03/02(木) 16:26:16ID:???あ、単語のみか。不恰好だが、
SELECT 〜 WHERE word = 'hatena'
OR word LIKE 'hatena %' OR word LIKE '% hatena %' OR word LIKE '% hatena'
>>250 いや、書き込みボタン押してないのに、何故か書き込まれたので。
025285
2006/03/02(木) 16:27:29ID:tZ9efk0Aファイルを連番で1.4メガバイトずつに分割したいのですが、
やり方がわかりません。
fopen、fread、fwriteを使うという事を以前教えてもらい、googleで検索しましたが、よく分かりません。
どのように記述すればよいか教えてください。
例えば、hoge.swf(3MB)を、hoge1.swf(1.4MB),hoge2.swf(1.4MB),hoge3.swf(200KB)に分割するような感じです。
0253nobodyさん
2006/03/02(木) 16:28:55ID:???スプレッドシートではなく、DBMSを使ってるらしいことは判ったが、
>hatena という単語と完全一致する単語があるレコードすべてを表示する
条件にマッチするものを取得→表示で問題があるのか?
それとも表示の条件と取得の条件が異なるのかい
取得に関して話が出てきてないように思えるが、
そうなら何のために取得が必要なのか説明もしてくれ。
0254nobodyさん
2006/03/02(木) 16:38:38ID:???hoge.swfをfopen(rb)、hoge1.swfをfopen(wb)
freadでhoge.swfから固定バイト読み込みhoge1.swfに書き込み
(読み込みは小分けにするのが普通だから何度か繰り返す。1MBぐらないなら一気にやってもいいも)
最後にhoge1.swfをfclose。
hoge.swfのEOFに達してなければ新しくhoge2.swfをfopen、hoge1.swfと同様に処理。
全ての最後にhoge.swfをfclose。
0256nobodyさん
2006/03/02(木) 16:57:22ID:???requireはいちいちディスクアクセス&ソースのコンパイルが入るので
そんな真似すると遅い&サーバー負荷になるよ。
せっかくのPHPのキャッシュ機能も宝の持ち腐れ。
そもそも一瞥できないほど長いループブロック書いてる時点でダメダメって気がするけど。
0257nobodyさん
2006/03/02(木) 17:03:02ID:???分割はそのうち出来るだろうから他の識者に任せるとして、
それよりも、分割してダウンロードさせたファイルを端末サイドで
結合させるロジックに非常に興味があるな。
しかもauだそうで…
まさか、公式BREWアプリでやろうってか?
BREWの通信制限3Mの壁とか…
なぞは深まる・・・
0258nobodyさん
2006/03/02(木) 17:03:24ID:???select 〜 where word like '% $w %' or word like '$w %' or word like '% $w'
って空白込みでlikeを使う手じゃないの?
wordカラムのデータを '単語 単語 単語' にしないで ' 単語 単語 単語 ' って先頭と末尾にも空白入れとけば
select where word like '% $w %'
で一発だけど、そんな先のことを見据えた設計はしてないんでしょう。
いずれにせよPHPは「全く」関係ない。
0259nobodyさん
2006/03/02(木) 17:06:38ID:???$handle_r = fopen("hoge.swf", "rb");
$capacity = (int)(1.4*1024*1024);
for($n = 0; $data = fread($handle_r, $capacity); $n++) {
$filename_w = "hoge" .$n. ".swf";
$handle_w = fopen($filename_w , "wb");
fwrite($handle_w, $data);
fclose($handle_w);
}
fclose($handle_r);
0260nobodyさん
2006/03/02(木) 17:08:17ID:???1.元のファイルを”r”で開く。
2.1.4MB分読み込む
3.分割ファイルNo.1を"w"で開く
4.3のファイルに2の内容を書き込む
5.3のファイルを閉じる
6.2にもどって次の分割ファイル名をNo.2にする
7.元のファイルを全部出力し終わったら1のファイルを閉じる
幼稚園児に物を教えてるみたいだ
0262nobodyさん
2006/03/02(木) 17:19:32ID:???という質問が来そうな気がする
0263nobodyさん
2006/03/02(木) 17:20:00ID:???マニュアル見ればすぐ判るじゃん(w
っていうか、そもそも「1.4メガバイト」とか言ってる時点で、
バイナリを扱う知識に欠けているのは予想できるんだが。
たぶん引数に14000000とか指定するんだろうな。
0267204
2006/03/02(木) 19:03:53ID:???include_onceのほうがいいのかしら・・
外に出せって事ですよね早い解決は
>>そもそも一瞥できないほど長いループブロック書いてる時点でダメダメって気がするけど。
ごもっとともです・・、勉強がてらなのに一人では大き目のプログラムを行き当たりばったりで書き始めたバージンソースなので
今見ると自分でも寒いソースだ・・と痛感致します
><
0268nobodyさん
2006/03/02(木) 19:29:53ID:???> たぶん引数に14000000とか指定するんだろうな。
いえ、そこは1433600を指定してました。皆様のレスを見ているとそれも間違いのような気がしますが。
バイナリの知識に乏しいというのは正解です。
0269nobodyさん
2006/03/02(木) 19:31:40ID:???そこはちゃんと考えてあります。
自分専用の非公開ツールとして作ってるので、Windows上で結合しますよ。
0271nobodyさん
2006/03/02(木) 20:36:14ID:???PHPからoracleへ接続したいのですが
oracleクライアントを使わずに接続する方法を知っている方はおられませんか?
JAVAではthinを使って接続しました。
似たような方法があれば教えてください。
環境は 窓2000にoracle10 REDHAT9にPHP4.4.0です。
よろしくお願いします。
0276nobodyさん
2006/03/02(木) 23:37:27ID:???select 〜 where concat(" ", word, " ") like '% hatena %'
でどうかな(MySQLの場合だが)
0278nobodyさん
2006/03/03(金) 02:17:49ID:???各板から出される削除依頼の件数と、
その比率を全部調べて表にしてほしいんだけど。
0279nobodyさん
2006/03/03(金) 02:20:02ID:???質問でも雑談でも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"];
}
?>
よろしくおながいします。
0281280
2006/03/03(金) 04:47:43ID:???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」って表示されたよ
0382378
2006/03/05(日) 07:59:18ID:???あと、ちゃんとheader.phpっていうのはあるのかい?
0383nobodyさん
2006/03/05(日) 08:37:22ID:???したいんだけど、メールが1日に数万通〜数十万通ともなると、すごい負荷かな??
別のメール配信専用サーバみたいなのを用意したほうがいいんでしょうか。
仮に用意できたとして、どうやってメール作成スクリプトからその配信専用サーバに
メール配信の指示を出せばいいの? メール作成スクリプトで「mb_send_mail」を
実行しちゃったらその鯖から送信されちゃうだろうし・・・。
0387nobodyさん
2006/03/05(日) 13:55:53ID:???>別のメール配信専用サーバみたいなのを用意したほうがいいんでしょうか。
ですな。サーバだけじゃなくて回線もね。
あと同じドメイン宛に短時間に大量のメールを出すと、
相手の接続拒否リストに載せられることもある。
その辺も絡めて勉強して、業者に依頼することをお薦め。
(最低限の勉強をしてないと業者の良否判断や注文も出来ないからね)
実際のメールの出し方については、その業者とすりあわせ。
0388nobodyさん
2006/03/05(日) 14:27:55ID:???PHPには関係ない。
0389nobodyさん
2006/03/05(日) 18:25:30ID:???無知なバカども、分からないなら「分かりません」と言えばいいのに。知ったかぶるな。
お前らが知ってる程度の知識なら俺も持ってる。端折って書いてるだけ。
>>387 ありがとう。でも、なるべく自前でやりたいんだけど・・・。
>>388 SMTP実装かぁ。プロトコルの話だよね? それを勉強したとして、PHPで実現できる??
0393nobodyさん
2006/03/05(日) 18:44:13ID:???> >>388 SMTP実装かぁ。プロトコルの話だよね? それを勉強したとして、PHPで実現できる??
お前できないの?バカじゃね?
0394nobodyさん
2006/03/05(日) 18:52:04ID:iaaLXl/Xこんな感じで、$_POST['name']が空の場合、文字例を出力させるには
どうすれば良いでしょうか?
それから、POSTデータを取得出来ない場合、
$err.= "POSTデータが不正ですよん。。";
みたいにさせるにはどうやれば良いでしょうか?
応用力がなくてすみません。
0395384
2006/03/05(日) 18:55:51ID:???if($_POST['name'] == "") $err.= "名前が入力されてないぞ";
0396nobodyさん
2006/03/05(日) 19:05:58ID:???・・・本当にわからないのか?if文が解らないのか、文字列を表示する方法が解らないのか
あと、余談だけど、POSTデータが取得できない場合は取得できてないんだから$_POST['name']
の中身はもちろん空だよね?
だからこれも表示するエラーメッセージは「名前が入力されていません」にしたほうが良いんジャマイカ?
0397nobodyさん
2006/03/05(日) 19:10:50ID:???俺も初心者なんだが trim()を使うのは駄目かなぁ?
if(trim($_POST['name'] == "")) $err.= "名前が入力されてないぞ";
0399nobodyさん
2006/03/05(日) 19:28:49ID:???0400nobodyさん
2006/03/05(日) 19:28:56ID:???trim()は改行コードとかを除けてくれる便利な関数だけど今回のでは必要無いっぽいぞ?
でも、どう考えてそういう答えに至ったかは解らないけど、自分で考えて何か仮定を立てる
ことの出来るお前は偉い。
あとはその仮定をどうやってテストして実証していくかの方法を身につけるんだ!
0401nobodyさん
2006/03/05(日) 19:50:00ID:???ん〜、何も入力しないでPOSTで上げたフォームのテキストの値($_POST['name']の事ね)をtrimでスペースとか除けても
issetにかけると値がある、って判断されるっぽいね。何が入ってるんだろ?
出来るならemptyか$_POST['name'] == "" とかで判断したほうが良いと思う。
0403nobodyさん
2006/03/05(日) 19:58:27ID:???その例ならif(!$_POST['name'])
0404nobodyさん
2006/03/05(日) 20:11:32ID:???知ったかぶりのバカども乙wwwwwwwwwwwwwwwwwwwww
何も具体的なことを言えないヤツの説得力はゼロ。
ウンコなクズは氏ね。
0405nobodyさん
2006/03/05(日) 20:24:18ID:???OS、メール配信のタイミング、アクションの方法、PHPのバージョン、その他もろもろ記述もし
ないでよく具体的な事が云々言えるなお前。
まぁ、どうせLinux系だろうから、実行のタイミングが決まってるのなら普通にサーバ別にたて
て今のサーバでシェルでsshとPHPファイルの実行をキックさせるようなヤツ書いてcronに突っ込む
だけじゃないのか?
もう出て行ってくれ
0407nobodyさん
2006/03/05(日) 21:02:37ID:???なんかphp.iniの設定でそういうっぽいのいがあったんだけど
readでブロックとかしてるような待ち状態は消費時間として
カウントされないみたいなんだよね
やっぱ別のプログラムで監視しててサーチアンドデストロイ?
0408nobodyさん
2006/03/05(日) 21:08:15ID:???もうちょっと勉強しろ。
issetは値があるかどうかじゃなく変数の有無を確認するのに使うもので、
NULL以外の空っぽ文字列などが格納された時点で常にtrueを返す。
フォームのテキスト入力で何も入力しないってのは "" という空文字列を
格納してるのに等しいからこれはissetで必ずtrueになる。
if(isset($_POST['hoge'])) みたいのはsubmitのボタンなど、押した場所によって
送信自体がされなくなるinputの送信有無を判別するのに使われる常套手段。
しかし、それも if(isset(trim($_POST['hoge']))) なんて真似をしてしまうと
NULL→""変換されてしまうので何があってもtrueが返ることになり全く意味がない。
テキストデータが空っぽのときに文字列をセットしたいだけなら最初の >>394-395の
if($_POST['name'] == "") $err.= "名前が入力されてないぞ";
で全く問題がないと思うが、これで何が問題あるのかまず説明しろ。
0409nobodyさん
2006/03/05(日) 21:10:40ID:???通称:合法スパム
0410nobodyさん
2006/03/05(日) 21:13:20ID:???ブロック状態で戻ってこないのはPHP自身では検知できないらしいからなぁ…
そういうプログラムが多数できるなら1個のサーチプログラムを作ってkillさせるか、
数が少ないならプログラム毎に自分のプロセスIDと起動時間を渡して
子プロセス作って一定時間後にsignal送信させるとか…
0411nobodyさん
2006/03/05(日) 21:51:38ID:???401じゃないけど、その方法で問題がある点を説明するね。
ユーザー入力の受付は、
$username = ( isset($_POST["username"])?$_POST["username"]:"" );
で、if( $username == "" )とかで入力チェック。
$_POST["username"]を直接評価するのはNG。
入力されていない場合に、その値を参照しようとすると
未定義(undefined)扱いになるから立派なエラー。
問題があるとしたらそのへん。
0414nobodyさん
2006/03/05(日) 22:56:21ID:???セキュリティ上Noticeは気にするべきだよ。
この場合は@で回避して比較するのもアリかも知れないが。
どちらにしろ放置はよろしくないよ。
とりあえず一覧
|未定義 |NULL |"" |0 |"0" |
isset |false |false |true |true |true |
empty |true |true |true |true |true |
=="" |エラー |true |true |true |false |
>>411
if (!isset($_POST["username"]) || $_POST["username"]!="") {
$err .= 'カラですわ';
}
でもいいな。
0415age
2006/03/06(月) 01:21:53ID:???試みております、
PHP マニュアル、google探しましたがなかなか情報見つからず、
質問させていただきました。
root@linux[php-5.1.2]$rpm -qa |egrep php| xargs rpm -e
にて、一度削除し、
$./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbstring
を実行し、
$make
で、「make: *** ターゲットが指定されておらず、makefile が見つかりません. 中止」
とのメッセージでmakeができません。。。
config.log にはエラーらしきものは見当たらず、と言いますか
自分が気が付いていないだけかもしれませんが。
よろしければ、アドバイス頂けませんでしょうか。
マシン構成は
Redhat linux9
php-5.1.2
Apache version:2.2.0
CPU:P3 800Mhz
Memory:256MB
HDD:20GB
です。(スレ違いでしたらすみませんです。。。)
0416nobodyさん
2006/03/06(月) 03:22:12ID:???0417nobodyさん
2006/03/06(月) 03:27:59ID:???0418nobodyさん
2006/03/06(月) 03:46:43ID:???http://jp2.php.net/manual/ja/types.comparisons.php
http://www.blueshoes.org/en/developer/php_cheat_sheet/
http://www.deformedweb.co.uk/php_variable_tests.php
==や!=は案外鬼門だよな。
0419nobodyさん
2006/03/06(月) 03:56:43ID:???ドキュメントルートに無くても問題ないのでしょうか?
一応動作しましたが。
0421nobodyさん
2006/03/06(月) 04:36:26ID:???むしろ置けるんであればドキュメントルートに置かない方がいいくらいかと。
requireされるだけでなく単独でページとして動作するファイルなら別だけど。
0422nobodyさん
2006/03/06(月) 13:37:25ID:???マルチバイト文字を扱う関数が未定義となってしまい使えません。
例)
<?php
//1
$str = "サーバサイド技術";
print(mb_substr($str,3,5));
//2
$sstr = "PHPはPHP:HepertextPreprocessorの略です";
print(mb_strpos($sstr,"PHP"));
print(mb_strrpos($sstr,"PHP"));
?>
実行結果:Fatal error: Call to undefined function mb_substr() in C:\Program Files\Apache Group\Apache2\htdocs\4.1.php on line 4
mb_strrpos(),mb_convert_kana(),mb_convert_encording()関数でも同様のエラーがでます。
設定をどう弄ればよいか教えてください。
0425nobodyさん
2006/03/06(月) 14:13:55ID:???他に設定が必要なのですか?
当方windowsXPです。
0428nobodyさん
2006/03/06(月) 14:37:38ID:???phpinfoで、mbstringの項目があるかどうか確認せよ。
無ければphp.iniが適切なパスに置かれていないか、Webサーバを再起動していない可能性あり。
0429nobodyさん
2006/03/06(月) 14:41:11ID:QzUnKc0K423だけが本当の事を言っている。
ひとまずphpinfo()してみたら?
Apacheの再起動を忘れている可能性大。
0430nobodyさん
2006/03/06(月) 14:43:20ID:QzUnKc0K0432nobodyさん
2006/03/06(月) 15:36:57ID:???0433425
2006/03/06(月) 15:54:48ID:???0435nobodyさん
2006/03/06(月) 16:54:06ID:???0436425
2006/03/06(月) 16:55:21ID:???0437nobodyさん
2006/03/06(月) 17:19:18ID:???0438nobodyさん
2006/03/06(月) 19:06:06ID:???phpinfo() だ。
0439nobodyさん
2006/03/06(月) 19:28:03ID:???0440nobodyさん
2006/03/06(月) 19:39:23ID:???0442nobodyさん
2006/03/06(月) 20:47:05ID:???0443nobodyさん
2006/03/07(火) 02:35:01ID:???そういえばそうだな・・・まぁ、HelloWorldじゃないにしろ
何か文字を表示するよな普通の言語って・・・
言われて気づいたよ。
スレ違いだけど、毎朝Suicaのペンギンを見て癒されています。
0444nobodyさん
2006/03/07(火) 08:17:30ID:???echo "HelloWorld";
}
ってうってみて文字が表示されたら初期設定はおk
0447nobodyさん
2006/03/07(火) 10:18:13ID:???0448nobodyさん
2006/03/07(火) 11:51:24ID:???現セットarray[]のaとかの値を変えたいのですがどうすればいいのでしょうか?
current(array)['a']とかでいけるかなと思ったのですが駄目でした・・
0449nobodyさん
2006/03/07(火) 12:02:05ID:???0451nobodyさん
2006/03/07(火) 12:38:31ID:???0453nobodyさん
2006/03/07(火) 14:00:10ID:???ここでエラーが起こるとは誰も突っ込まないのか
0457nobodyさん
2006/03/07(火) 16:30:03ID:???0458nobodyさん
2006/03/07(火) 16:36:54ID:???実験することもある。
自分の答えが正しいか確認するために、検索することもある。
0459nobodyさん
2006/03/07(火) 16:42:10ID:UW6rJJ+I要素を連結して[_name]という変数に代入したいという目的で、
下記のプラグインPatchを当てました。
さらに、プラグインPatchのページのコメント欄に記載されている変更も適応しました。
ほぼ目的通りに動いたのですが、末尾に必ず連番が入るのが解決できません。(入れたくない)
Patch作者は[_name]に[_date]が代入されない場合意図的に連番を入れてるっぽいのですが、
ソース見てもどこで入れてるのか分かりません。
$num変数当たりが怪しいと思うんですが・・・。
どなたかご教授お願いします。
・設置場所
http://samurai-tribe.com/hda-wiki/index.php?%3Aconfig%2Fplugin%2Ftracker%2Fcomplist
・PukiWiki
http://pukiwiki.sourceforge.jp/?FrontPage
・Trackerオフィシャル
http://home.arino.jp/?tracker.inc.php
・TrackerプラグインPatch
http://teanan.homeip.net/pukiwiki/?%BC%AB%BA%EE%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%2Ftracker.inc.php
0460459
2006/03/07(火) 16:49:13ID:???http://aploda.org/dat6/upload413092.txt
0461nobodyさん
2006/03/07(火) 17:29:20ID:MKvD8QW3因みにwindowsでmd5で暗号化したものをLinuxで読むと
暗号化した文字列との比較が出来ません。
md5ってマシンに依存しするのですか?
0462nobodyさん
2006/03/07(火) 18:04:28ID:???0464nobodyさん
2006/03/07(火) 18:20:07ID:???0466nobodyさん
2006/03/07(火) 18:47:24ID:tn5MgDAQ出力する際にした方がいいのでしょうか。
なんだったか忘れたんですが、本屋でチラ見した本に書かれていたので。。
0467nobodyさん
2006/03/07(火) 18:57:38ID:???出力する際
???
0468nobodyさん
2006/03/07(火) 19:03:25ID:???これを
フォーム→受け取り→書き込み→htmlspecialchars→表示
にするって事?
0469nobodyさん
2006/03/07(火) 19:09:26ID:???フォーム→受け取り→書き込み→別の機会なりに読み込み→htmlspecialchars→表示
0470nobodyさん
2006/03/07(火) 19:12:07ID:???暗号化や複号化関数も、きちんと用意されてる。
URLEncodeよりも強度も高く申し分ない。
0471nobodyさん
2006/03/07(火) 19:26:31ID:/XL003yOたとえばhttp://c-others.2ch.net/test/-/mnewsplus/1141726843/wを入力したとき、
ソースの<input type=hidden name=key value=1141726843><input type=hidden name=time value=1141726906>から
1141726843と1141726906を取得するようなシステムを作るにはなにをどうすればいいでしょうか?ご指導よろしくお願いします。
0472nobodyさん
2006/03/07(火) 19:41:55ID:???0473nobodyさん
2006/03/07(火) 19:43:38ID:???・HTMLのformで入力されたURLを受け取るPHPスクリプト(PHPのマニュアル「チュートリアル」の項)
・あるURLのコンテンツを取得するPHPスクリプト(fopen/fsockopen/cURL/PEARのNet関連)
・ある文字列中から特定の条件を満たす文字列の取得(正規表現/文字列処理関数(strstr/strpos/substr))
0477nobodyさん
2006/03/07(火) 20:05:23ID:???どうせ次々と出来ないことがおきて、また来るんだから最初からスルー。
0478473
2006/03/07(火) 20:12:48ID:???でもポインタの提示ぐらいまでは、数行で即答のくだ質の範疇だと俺は思うよ。
# って考えが皮先とかを養成しちまうのか
0479nobodyさん
2006/03/07(火) 20:16:50ID:???いいんじゃね?くだ質だし。
最近、>>475みたいな荒らし目的の馬鹿がわいてるので
そういうのだけスルーすれば
てか、ここの板なんでID強制にならんのか、誰かしってたら
教えてくれ
0480nobodyさん
2006/03/07(火) 20:17:40ID:???・わからない事があれば、まずは自分で調べましょう。
(最低限マニュアルに目を通し、Googleで検索しましょう)
・質問する前に、もう一度読み返しましょう。質問は具体的になっていますか?
・エラーが出るのであれば、エラーとともに、エラーを再現できるサンプルコード、
環境(OS、PHPのバージョン、Apacheのバージョンなど)を明記しましょう
・残念ながら、煽ることしか出来ない人もいます。スルーしましょう。
・(゚д゚)<シメジ
0481nobodyさん
2006/03/07(火) 20:22:27ID:???>>474みたいな答える気のない回答者こそ邪魔。
実際余計な煽りがなければ>>475みたいなレスは生まれないしな。
こんなこと書いてると>>474が必死に「本人乙」とか言って来るのかな?ww
0483474
2006/03/07(火) 20:26:25ID:???本人乙。アホすぎて話にならんな。死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
0484nobodyさん
2006/03/07(火) 20:28:31ID:???0485nobodyさん
2006/03/07(火) 20:31:55ID:???最近、他人の番号騙ってるアホが湧いてるので
そうともいいきれんと思う。
とりあえず、去るまで変なのはスルーってことで
0487nobodyさん
2006/03/07(火) 20:49:32ID:???0488nobodyさん
2006/03/07(火) 20:51:41ID:???0489nobodyさん
2006/03/07(火) 20:56:16ID:???0490nobodyさん
2006/03/07(火) 20:57:32ID:???0491nobodyさん
2006/03/07(火) 21:16:18ID:???必要があれば別にエンコードした結果をファイルに保存してもいいし、
その方がいい場合もある。
その辺はTPO。
0494nobodyさん
2006/03/07(火) 21:24:29ID:???と言った時の快感が忘れられない。
0495nobodyさん
2006/03/07(火) 21:37:36ID:???0496nobodyさん
2006/03/07(火) 21:46:54ID:???0497nobodyさん
2006/03/07(火) 21:49:14ID:???0498nobodyさん
2006/03/07(火) 21:57:44ID:???0499nobodyさん
2006/03/07(火) 21:59:47ID:???まぁIDなんざ、動的に割り振られてるIPの前にはいくらでも変えられる。
0500nobodyさん
2006/03/07(火) 23:15:26ID:???なんとなく言いたいことをくみとると、
$lines = file_get_contents('http://c-others.2ch.net/test/-/mnewsplus/1141726843/w');
preg_match_all('/<input type=hidden name=(?:(?:key)|(?:time)) value=(.*?)>/', $lines, $matches);
print_r($matches);
でいいんじゃない?
0501nobodyさん
2006/03/07(火) 23:19:04ID:psJP3on1http://pc8.2ch.net/test/read.cgi/php/1064684350/l50
自治スレで要望だそうぜ!
0502nobodyさん
2006/03/07(火) 23:34:57ID:???以下のようにしてwebサイトを取得しているのですが、
コンストラクタに渡すURLが妥当なものでんないと
エラーチェックする前にエラーを吐いてしまいます。
何とかなりませんかね。
require_once "HTTP/Request.php";
$req =& new HTTP_Request("http://www.yahoo.com/");
if (!PEAR::isError($req->sendRequest())) {
echo $req->getResponseBody();
}
0505nobodyさん
2006/03/08(水) 00:26:14ID:???preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $url))
0506nobodyさん
2006/03/08(水) 00:28:37ID:???0507nobodyさん
2006/03/08(水) 00:54:22ID:???立場わきまえれ
0509502
2006/03/08(水) 01:30:52ID:???妥当性をチェックするのは別にいいんですけど
if (!PEAR::isError($req->sendRequest())) {
のところでエラーチェックしてるのに意味無しなんですよね。
0510nobodyさん
2006/03/08(水) 01:34:24ID:???しない。HTMLの解析はそもそもHTTP_Requestのお仕事ではないので。
>>508
質問者を装って、すぐさま「自己解決しました」ってやるのもあったな。
0511510
2006/03/08(水) 01:39:29ID:???0513nobodyさん
2006/03/08(水) 01:58:40ID:???良く判らないんだけど、URLを渡さないでコンストラクトして
後でsetURLメソッドを使ってURLを指定したら駄目なの?
# 妥当性はHTTP_Requestの中では、Net_URL使ってんのかな。
0514513
2006/03/08(水) 03:38:53ID:???というより
>>502
>コンストラクタに渡すURLが妥当なものでないと
>エラーチェックする前にエラーを吐いてしまいます。
なんてならないんだが。妥当でないURLは具体的にどんなの?
0515nobodyさん
2006/03/08(水) 07:24:40ID:???0520nobodyさん
2006/03/08(水) 10:56:30ID:???のように、「&[^&]&」という値の組み合わせが羅列されている文字列から
preg_replaceを使って、「&1&&2&&3&&4&&5&」のように先頭から最大で5組の
値を取り出すにはどのようにすればいいでしょうか。
私の試したコード(これではダメでした)
$d = preg_replace('((?:(?:&[^&]&){1}?){,5}?)', '\1', $d);
0521nobodyさん
2006/03/08(水) 11:03:18ID:???print preg_replace('/^((?:\&[^&]*\&){0,5}).*/', '\1', $d);
こう?
0523nobodyさん
2006/03/08(水) 11:19:10ID:???GET POST という用語がわかってれば、そんな言葉は使わないだろ
0524520
2006/03/08(水) 11:19:23ID:???で、できました!!感激です!!
ご回答ありがとうございました。何時間考えてもわからなかったので
非常に助かりました。
0526nobodyさん
2006/03/08(水) 11:24:24ID:LmEgCiLJArray([0]=>ちんこ [1]=>まんこ)
の戻り値が返ったときにそれぞれ
ちんこを$tin
まんこを$man
と置くにはどうしたら良いでしょうか
0527nobodyさん
2006/03/08(水) 11:28:06ID:???list($tin, $man) = $asoko;
0528nobodyさん
2006/03/08(水) 11:30:55ID:???>>475のレスが厨なだけで>>471の質問自体は非はない。初心者向けのスレだし。
もちろん的確な回答をした奴も正解。乙
0529nobodyさん
2006/03/08(水) 11:31:28ID:???うーん、おれはあのURLにスラッシュ区切りでパラメータ並べたときの
パラメータの取得方法のことをいってるのかと思ったけどなー。
0530nobodyさん
2006/03/08(水) 11:32:34ID:???0531nobodyさん
2006/03/08(水) 11:32:51ID:???乙。まぁくだ質だし、質問者もアレな奴が多いから
あまり気にしない方がいいと思うよ。最近特に変なのがいるし。
0532nobodyさん
2006/03/08(水) 11:32:57ID:LmEgCiLJ出来ましたありがとうございます
0533525
2006/03/08(水) 11:40:36ID:???0535nobodyさん
2006/03/08(水) 11:47:02ID:???もっとわかりやすくするなら、
$asoko = array('ち○こ', 'ま○こ');
$tin = $asoko[0];
$man = $asoko[1];
でもおけぃ
0536481
2006/03/08(水) 11:57:41ID:???もちろん、471がPOSTやGETの勉強をした方がいいのは事実だし、471自身へのアドバイスとしては的確。
だけど、質問に答えないで別のことを咎めるのはスレの趣旨にそぐわないと思う。それだけ
0538nobodyさん
2006/03/08(水) 12:14:31ID:???PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
0539nobodyさん
2006/03/08(水) 12:19:15ID:???0540nobodyさん
2006/03/08(水) 13:25:55ID:???0541nobodyさん
2006/03/08(水) 13:32:20ID:???まあまたーりしろ。
0542nobodyさん
2006/03/08(水) 13:39:38ID:???全部含めて和気藹々
0543nobodyさん
2006/03/08(水) 13:58:48ID:???0544nobodyさん
2006/03/08(水) 14:34:19ID:???同じPCにPHP5を追加してPHP4と共存させることってできますか?
0546nobodyさん
2006/03/08(水) 14:50:16ID:???0548nobodyさん
2006/03/08(水) 15:19:43ID:???可能。VirtualHostで切り分ける手がある。
まあ良く判んなければ、Apache+PHPを別Portで複数動かして
クライアント側がアクセスするPortで切り分けるか、
>>546のように拡張子でPHP-cgiの起動を切り替える。
Win2000ってことはテストで動作比較したいんでしょ。
なら手軽に分離できる別Portで切り替えを薦める。
0549nobodyさん
2006/03/08(水) 15:26:25ID:???パスワードがバイナリ値というので表示されていました。
バイナリ値を普通の言葉にできるソフトや、そういった解説をしている
HPなどはありますか?
0552nobodyさん
2006/03/08(水) 15:55:00ID:???色々考えてみたのですが、非常に面倒な方法になってしまいました。
例2005-03-20 → 2005-03-31、2006-01-20 → 2006-01-31
0553nobodyさん
2006/03/08(水) 15:58:52ID:???0554nobodyさん
2006/03/08(水) 16:06:17ID:vjc8ygyCヒント:翌月1日の1日前の日付が当月の末日
0555nobodyさん
2006/03/08(水) 16:15:40ID:???http://php.benscom.com/manual/ja/function.date.php
0556nobodyさん
2006/03/08(水) 16:24:15ID:???ttp://php.benscom.com/manual/ja/function.mktime.php
> 例 2. 次月の最後の日
> 指定した月の最後の日は次の月の -1 番目の日ではなく、"0" 番目の日 として表すことが可能です。
> 以下の例はともに文字列"The last day in Feb 2000 is: 29" を出力します。
> $lastday = mktime(0, 0, 0, 3, 0, 2000);
> $lastday = mktime(0, 0, 0, 4, -31, 2000);
0557nobodyさん
2006/03/08(水) 16:31:53ID:???$t = explode('-', $foo);
$bar = date('Y-m-t', mktime(0, 0, 0, $t[1], $t[2], $t[3] ))
;
echo $bar;
0558nobodyさん
2006/03/08(水) 16:32:58ID:???$foo = '2005-03-20';
$t = explode('-', $foo);
$bar = date('Y-m-t', mktime(0, 0, 0, $t[1], $t[2], $t[0] ));
echo $bar;
0559nobodyさん
2006/03/08(水) 16:40:34ID:???PEARを使わずmysql〜関数を使用して自作クラス作りました。
INSERTやUPDATEは型判別して自動でクエリ文作る感じです。
mysql_fetch_array() で取得した値が全てstring型になっていたため、
一部のパラメータのみを書き換えてINSERTやUPDATEすると
エラーになり苦労させられたのですが、
この辺どのように回避していますか?
また、PEARを使用すれば上記は回避できるのでしょうか?
0560nobodyさん
2006/03/08(水) 16:49:00ID:???"指定した月の日数。"なんてオプションがあるんだな。
質問者ではないがありがとう。
print date(t,strtotime("10 April 2006"));
0562nobodyさん
2006/03/08(水) 16:58:53ID:???tが裸だから?
0563nobodyさん
2006/03/08(水) 16:59:17ID:???PEAR::DBではクエリ作成の機能を持ってない。
ADOdbではFetchField()でDBネイティブの各カラムのデータ型の取得と、
MetaType()でその型を汎用的な抽象表現への変換ができるようになってる。
PHPの変数は型を厳密に規定できないので、あらかじめDBからテーブルの型を
取得しておこう、って発想なんだと思う。
0564560
2006/03/08(水) 17:05:25ID:???今月でいいなら
print date(t);
でも可
print date(t,strtotime("April 2006"));
でも動くし
>>561
俺もなんで動かないと思ったか知りたい
責めてるんじゃなくて、もっといい記述方法があれば知りたいのだ
0567562
2006/03/08(水) 17:10:28ID:???0569559
2006/03/08(水) 17:29:49ID:???レスどうもです。
DB_common::autoPrepare() でINSERT/UPDATEのクエリを
作ってくれるようなんですが、
使うに当たり疑問になりまして。。。
結局型をあわせてやらにゃいかんのかな〜
今PEARのDB関係のメソッド漁ってますが、
型を取得するメソッドが見つからないんですが(;´д⊂
今のままでいっかなぁ・・・
0570nobodyさん
2006/03/08(水) 17:42:09ID:???ごめん。PEAR::DBでもクエリ作成できたのね。吊ってくる…
autoPrepare()は型を含んだクエリテンプレートの自動生成みたいよ。
実際のクエリ生成はそのテンプレートを元にexecute()で生成するぽい。
0571nobodyさん
2006/03/08(水) 17:59:00ID:???DB_common::getAll() なり何なりで取得した配列が
全部DBと一致する型・・・とは言わないまでも、
intがstringになってたりしなければ問題ないんですけどね〜
もうちょっと揉まれてきます(´д`)
0572nobodyさん
2006/03/08(水) 19:26:32ID:???0573559
2006/03/08(水) 19:34:59ID:???DB_common::getAll() の戻り値:軒並みstring
以下テーブルを作り、execute()内でどんなクエリが作成されるか検証。
テーブル名:t_test
key1:verchar(255)
key2:int(11)
key3:tinyint(4)
・ソース1
$data = array( "data1", 2, true );
$ret = $conn->autoPrepare( "t_test", array( "key1", "key2", "key3" ) );
$conn->execute( $ret, $data );
・クエリ1
>>"INSERT INTO t_test (key1,key2,key3) VALUES ('data1',2,1)"
・ソース2
$data = array( "data1", "2", "true" );
$ret = $conn->autoPrepare( "t_test", array( "key1", "key2", "key3" ) );
$conn->execute( $ret, $data );
・クエリ2
>>"INSERT INTO t_test (key1,key2,key3) VALUES ('data1','2','true')"
単にexecuteの第二引き数の型をそのまんま適用しているだけっぽい。
DB次第じゃエラーですなヽ(;´д`)ノ
0574質問
2006/03/08(水) 20:55:12ID:MC7d+fja具体的に言うと文字列を10進数とか16進数とかエンティティ化する方法はないですか?
0576nobodyさん
2006/03/08(水) 21:40:22ID:74wPkS3/このときaを$pen bを$con
という変数に置くにはどうしたらよいでしょうか?
0578nobodyさん
2006/03/08(水) 21:49:31ID:74wPkS3/0579nobodyさん
2006/03/08(水) 21:50:45ID:???0581nobodyさん
2006/03/08(水) 21:54:42ID:???ordかsprintf。
エンティティ化は
preg_replace_callback('/./', create_function('$m', 'return "&#".ord($m[0]);'), $str);
て感じか。
これやってくれる関数あるっけ?htmlentitiesやhtmlspecialcharsじゃ特定文字だけだしな。
>>576
$a = array(array('', ''), array('a', 'b'));という意味だと仮定するとlist($pen, $con) = $a[1];
0582581
2006/03/08(水) 22:08:04ID:???エンティティ化でセミコロンつけ忘れちゃった
0583nobodyさん
2006/03/08(水) 22:09:04ID:74wPkS3/できますたありがとう
0584nobodyさん
2006/03/08(水) 22:16:53ID:???データベースを使うメリットを教えてください。
それから、今後の普及予想もお願いします。
やはりデータベースを利用したプログラムが増えていくのですか?
0585nobodyさん
2006/03/08(水) 22:29:01ID:???メリット:安定して動作し、データ破損や消失が少なく、データ件数が多い場合に検索・表示が高速
普及:とっくに普及してると思うが…20年前の人ですか!?
DB利用:これは普及とかは関係なく、システム規模などの条件でどっちを使うか決めるもの
0586nobodyさん
2006/03/08(水) 22:29:10ID:???掲示板だろうと、アクセス解析だろうと、
データを何かしらの方法で保存して、それを参照すれば、すなわちデータベース
お!君も既に使ってんジャンSUGEEEEEEEEEEEEEeeeeeeeeeeee!。
と、煽ってみる
0587nobodyさん
2006/03/08(水) 22:48:29ID:???socket関数を使うというようなことを聞いたことがありますがいまいちやり方がわかりません。
ちなみにhtmlでformタグのactionで指定するのでは目的は達成できないので、phpでよろしくお願いします。
0589587
2006/03/08(水) 23:24:24ID:???xreaでは使えないかなぁ・・・
0590nobodyさん
2006/03/08(水) 23:34:28ID:???>pear使わないと無理ですか?
pearを使わずに自作することは可能。
ただし、それにはHTTPを理解する必要がある。
>xreaでは使えないかなぁ・・・
どこであろうとpearは使える。
例え"pearコマンドでインストール"できないサーバでも、
必要なパッケージを適当な場所に置けばよい。
なぜならpearはPHPで書かれたライブラリ群に過ぎないから。
xreaで使えるかどうかについては板違い。
0591590
2006/03/08(水) 23:35:26ID:???0592nobodyさん
2006/03/08(水) 23:39:07ID:???0593nobodyさん
2006/03/08(水) 23:45:45ID:MQhgDV9rライブラリってありますか?
PEARで探したところそれらしきものはなさそうでした。
0594nobodyさん
2006/03/08(水) 23:46:16ID:???0597nobodyさん
2006/03/08(水) 23:53:19ID:???0600nobodyさん
2006/03/09(木) 00:02:23ID:???出来る
たとえばSAKURA Internet(http://www.sakura.ne.jp/)
はtelnet/ssh接続で接続できるサービスを提供している
レン鯖といっても専用サバなら当然出来ると思うが。
板違いすまない。
0601nobodyさん
2006/03/09(木) 00:06:22ID:???0602nobodyさん
2006/03/09(木) 00:26:43ID:???それは知らなかった。早速やってみよう。
0603nobodyさん
2006/03/09(木) 01:07:10ID:???HTTP_Requestでできました!!パッケージのインストールすら初心者には大変なもので・・・結構時間かかりました。
本当にありがとうございました!!
0604nobodyさん
2006/03/09(木) 01:10:24ID:???0605nobodyさん
2006/03/09(木) 01:10:53ID:???ファイルをfile関数で取り込むと
error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 15920437 bytes)
と表示されます。
調べてみるとmemory_limitを増やせば解決できるそうなのですが、
増やすとリスクが増えたりする可能性があるきがしましてできれば他の方法で解決を図りたいのですが、
何か良い方法はございますでしょうか。
0606nobodyさん
2006/03/09(木) 01:13:54ID:???どういう整形をするかまったく書かれてないので、相談に乗りにくいのだが、
fopenで開いて、1行単位、もしくは、指定容量単位で処理すべき。
0608nobodyさん
2006/03/09(木) 01:19:59ID:dcUpKQFS0613nobodyさん
2006/03/09(木) 01:32:41ID:SHZr9acFオンラインものじゃなくて、本があったほうがうれしいんで・・・
0614nobodyさん
2006/03/09(木) 01:35:37ID:???PHP関連の書籍(但しPHP出版系お断り)第2版
http://pc8.2ch.net/test/read.cgi/php/1117066073/
参考書籍推薦スレッド
http://pc8.2ch.net/test/read.cgi/php/1014836425/
0615nobodyさん
2006/03/09(木) 01:46:10ID:???うふひひふ
0616nobodyさん
2006/03/09(木) 02:02:35ID:???これをparse_urlで分解するとpath には/test/read.cgi/php/1140786348/が戻されますが、
真ん中の「php」の部分だけを戻したいときはどうしたらいいでしょう。
0618nobodyさん
2006/03/09(木) 02:11:01ID:???>>616
○投げスレではない。
あとIDだして質問しろ
0619nobodyさん
2006/03/09(木) 02:12:32ID:???0622nobodyさん
2006/03/09(木) 02:50:21ID:dcUpKQFSどうやれば良いでしょうか?
0623nobodyさん
2006/03/09(木) 03:07:54ID:???0627nobodyさん
2006/03/09(木) 08:10:27ID:???消す意味あるの?
たまに配布されているphpスクリプトでもNoticeエラーでまくることあるけど、
エラーは全て表示でコーディングした方がいいよ
0628nobodyさん
2006/03/09(木) 09:49:04ID:???出ても動くんだからさ
0630nobodyさん
2006/03/09(木) 10:02:23ID:???0631nobodyさん
2006/03/09(木) 10:18:29ID:???「最近の」デフォルトな。以前はデフォルトじゃなかった。
昨今のPHPブームでNotice出しとかなきゃミスコーディングするやつが続出したんだろ。
PHPなんて本来お手軽に作れるからこそ価値あるものだし、元々の言語構造的に
厳密にコーディングしたところでかなり無駄なんだからわざわざ出すもんじゃないんだがな>Notice
0632627
2006/03/09(木) 12:23:00ID:???そうか?
一般の他の言語なら動けばいいだけだ。
しかし、phpはWebプログラミング用の言語であり、他言語との連携も重視されている。
言語構造的に正しくコーディングすることはセキュリティホールの発生確率を下げることになる。
以前はデフォルトじゃなかった、というが、以前はGETで送信されてきた「hoge」が、$hoge にそのまま入っていたよね。
そして、Noticeエラーも出ないから変数の初期化忘れても気が付かないわけだ。
その2つが組み合わされたら即大変危険なセキュリティホールの完成だったじゃないか。
0633nobodyさん
2006/03/09(木) 12:29:30ID:???せいぜい「通知」
気になる人は治しとけってだけ
0634nobodyさん
2006/03/09(木) 12:36:57ID:???へぇー
変数の初期化をしないことは普通の言語では重大なエラーに相当するんだけどね
おまいさんは、Apacheのログの Notice 全部記録されなくて困らないの?
プログラミング言語を考える時に、もとの単語の意味なんて気にしちゃ駄目。
0635nobodyさん
2006/03/09(木) 12:44:57ID:???どっちが穴を防げるかっつったら議論の余地も無いだろ。
0636nobodyさん
2006/03/09(木) 12:56:51ID:???register_globalsがOFFになったのは随分前の話。これは本当にセキュリティホール。
NoticeがデフォルトONになったのはつい先日の話。これはへたくそプログラマが増えたせい。
0637nobodyさん
2006/03/09(木) 13:47:54ID:???堅牢なプログラムが必要なら堅牢な組み方しろよ。言語関係なく。
0638nobodyさん
2006/03/09(木) 14:06:11ID:???0639nobodyさん
2006/03/09(木) 14:19:09ID:31uVLi9Sそれを使用者のIPでPOSTするにはどうすればいいんでしょうか?
0640nobodyさん
2006/03/09(木) 14:31:41ID:???<FORM>タグでフォームを用意して、ユーザーにSUBMITボタンおしてもらう。
PHP使わbネくてもできるb諱B
0641nobodybウん
2006/03/09(木) 14:35:46ID:31uVLi9Sそれじゃあやりたいことができないんですよ・・・
0642nobodyさん
2006/03/09(木) 14:36:00ID:X3uNYaoU現在file_get_contents("hoge.php?id=35")でやっています。
しかし、いちいちファイルを読み込む為時間がかかります。
引数だけ送ってファイルを読み込みたくない場合はどうすればよい
でしょうか。
0644nobodyさん
2006/03/09(木) 14:37:26ID:???わかりやすく解説しているサイトなどはないでしょうか。
0649nobodyさん
2006/03/09(木) 14:43:24ID:???0650nobodyさん
2006/03/09(木) 14:43:55ID:???0651nobodyさん
2006/03/09(木) 14:45:11ID:???当然出る警告がウザイ。
0652nobodyさん
2006/03/09(木) 14:46:48ID:???0653nobodyさん
2006/03/09(木) 14:50:03ID:???とか?
0655nobodyさん
2006/03/09(木) 14:58:11ID:???0656nobodyさん
2006/03/09(木) 15:00:46ID:???天才だな
0657nobodyさん
2006/03/09(木) 15:03:28ID:???0658nobodyさん
2006/03/09(木) 15:16:55ID:???0659nobodyさん
2006/03/09(木) 15:22:24ID:???なんの仕事?
0663nobodyさん
2006/03/09(木) 20:55:15ID:???0664nobodyさん
2006/03/09(木) 21:03:05ID:???header('Server: unknown');
のようにして、サーバ環境を隠蔽しようとしたのですが、うまくいきません。
エラーが出るわけではないのですが、Server: Apache/1.3.34 PHP/5.1.2の
ようにレスポンスが帰ってきます。
header()関数でサーバ環境を隠蔽するにはどのようにすればいいでしょうか。
0667nobodyさん
2006/03/09(木) 21:20:48ID:???消えろ
0668nobodyさん
2006/03/09(木) 21:23:37ID:???それと同じくして無能な人間がふえているのも現状だと言える。
0671664
2006/03/09(木) 21:39:40ID:???はい。firefoxなどのブラウザで見るぶんには意識することはありませんが、
ほとんどのサーバはヘッダ情報として「Server: Apache/1.3.34 PHP/5.1.2」
のような情報を送信します。
0672nobodyさん
2006/03/09(木) 21:41:29ID:???Header Set
0674nobodyさん
2006/03/09(木) 21:56:26ID:???環境変数のSERVER_SOFTWAREのことジャマイカ?
最近の鯖管理者のトレンドとしてはSERVER_SOFTWAREで
全ての情報を出さず、Apacheとだけしている、、ラシイ
0675nobodyさん
2006/03/10(金) 00:18:54ID:???<?php
/*?>*/
?>
↑これだと問題ない。当たり前だ
=========================
だけど
=========================
<?php
//?>
?>
↑コメント以降は評価しないはずなんじゃないの?
=========================
?>
=========================
って出力されちゃう。
おかしくね?php4.3.11
0676nobodyさん
2006/03/10(金) 00:43:28ID:???正常。
「//」でそれ以降は評価しない、というのはPHPの命令部の話であって
PHPタグはコメントの評価よりも先に解釈されている。
だから // ?> でのコメント部分は //「 」?> この「〜」部分だけ。
それから
/* ?> */
?>
ってやつのコメント範囲は
/*「 ?> */
?>」
ここまで。(後ろの */ はPHPタグ外なのでHTMLに*/と書かれている状態)
つまり、それはコメントが閉じてない状態になっているため、以降が全部見えてない。
0677nobodyさん
2006/03/10(金) 00:49:21ID:???print "?>";
print '?>';
は出来るんだね
0678675
2006/03/10(金) 00:53:31ID:???なるほど。
先日ちょっとした手違いでソースが上記のようになりこんな現象を体験したもので不思議に思った次第です。
わざわざこんな風に書く事なんてあり得ないんですが、ひとつ勉強になりました。
もう一つ、最近思い悩んでることがあります。
$a = "moto_a";
$b = "moto_b";
$c = "moto_c";
これらの変数に、文字列"_tuketashi"を加えて(これは何の問題もない)
元の変数名に"_plus"を加えた変数名の新たな変数を、phpの処理で作りたい。
ここのロジックがわかれば元の変数を配列にぶち込んで関数で一気に処理出来たらいいんだけど。
$a = "moto_a_tuketashi";
$b = "moto_b_tuketashi";
$c = "moto_c_tuketashi";
変数名($がついてない)だけを引数で与えて、自作関数でなんとかするとか、evalでどうにかするっていうのは出来たけどいまいちスマートじゃない。
変数「名」を取得して、特定の文字列を付け足した新たな変数を作るという部分で悩んでるんだけど、なんかいい方法はないでしょうか?
0680nobodyさん
2006/03/10(金) 01:02:09ID:???変数名のセットはともかく「取得」ってのは「どっから??」って思うのでこれはパス。
とりあえずこんな感じでどうか。
foreach(array("a", "b", "c") as $env) {
${"{$env}_plus"} = "${$env}_tuketashi";
}
0681nobodyさん
2006/03/10(金) 01:12:37ID:???俺はHTMLソースを表に出さないようにコメント化して非表示にしたり、
HTMLソースとしては見せたくない内部的なコメントを書くのに<!-- -->を使わず
<html>
<?php /* ここからコメントアウト?>
<div>
</div>
<?php ここまでコメントアウト */?>
とか
<div>
<?php //項目名 ?><span></span>
<table>
みたいなHTMLもたまに使うよ。
0682nobodyさん
2006/03/10(金) 01:20:16ID:???すぐ検索できたぞ・・
おれもphp関係ないけど興味あったので調べてみた
http://www.heeha.ws/index.php?Apache%B4%D8%B7%B8
はまとまってるんじゃないかな
0685678
2006/03/10(金) 01:54:26ID:???たしかに取得という言い方はちょっと変ですね。
$aという変数があったら、「$a」から「$」をとった部分を文字列として「a」として取り出せないかな。と。
こういうことを言いたかった。
で、ソースの方ですが、なるほど。
こういう感じで$(ドル)重ねちゃうんですね。こんなやり方もあったんだ。
ただ、やっぱり引数に与える文字列は手動で、ってことになっちゃうんですね・・・
それでも最初に配列を作っておけばいいから、かなりすっきりしますね。
受け取った値を表示用に整形して元の値はそのまま残しておきたいってケースが結構あるんです。
それで、元の変数に手を加えて名前をちょっとだけ変えた変数を生成ってやりたいんですよ。
>>681
いただきます
0686nobodyさん
2006/03/10(金) 01:57:13ID:JMSIppfw「?????」
のようなUnicode10進で書かれた文章を、
「あいうえお」
という形に変換、またはその逆を行いたいのですが、どのように行えば良いのでしょうか。
0687686
2006/03/10(金) 01:59:35ID:JMSIppfw「?????」
↓
「&#12354;&#12356;&#12358;&#12360;&#12362;」
です。
0688nobodyさん
2006/03/10(金) 03:10:33ID:???まずはUCS-2とUTF-8の関係を調べると良い。
ttp://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm
ttp://homepage1.nifty.com/nomenclator/unicode/data/hiragana.htm
http://www.unicode.org/charts/PDF/U3040.pdf
0689nobodyさん
2006/03/10(金) 03:48:26ID:???アクセスログでこういうリモートホストがあった場合に、
これが属性JPなのか汎用JPなのか判別するいい方法ありませんか。
リモートホストをドメインでグルーピングしたいんですが。
0690nobodyさん
2006/03/10(金) 03:58:00ID:???co.jp
or.jp
gr.jp
ac.jp
ed.jp
ne.jp
かどうかで判断すればいいんじゃないのかな・・
これで全部かは知らんけど
0691nobodyさん
2006/03/10(金) 04:17:37ID:???リモホをドットで区切って後ろから二つ目が2文字なら属性っていうのはどうよ
gTLDじゃないっていう前提が必要だが
0692690
2006/03/10(金) 04:27:21ID:???http://www.nic.ad.jp/ja/dom/basics.html
がまとまってそうだから読んでみれば?
法則自体は難しくないから.jpだけなら比較的簡単に作れるんじゃない
0693nobodyさん
2006/03/10(金) 04:40:42ID:???ありがとうございます
691さんのやり方使おうと思ったんですが、地域型ドメインなんていう厄介なものもあるんですね
検討してみます
0694nobodyさん
2006/03/10(金) 05:35:55ID:???691の提示しているやり方でなんら問題ない。
http://jprs.jp/info/jp-dom/character.html
0695694
2006/03/10(金) 05:45:18ID:???これの区別は難しいと思うよ。
0696694
2006/03/10(金) 05:48:20ID:???○地域型JPドメイン
ごめん頭回ってない。もう居ぬわ。
0697nobodyさん
2006/03/10(金) 06:43:32ID:+ksaxYfxこのプログラムを調べています。
$wを何もしなくても0と1の配列に別れていますが、これはどういうことですか?
この定義していないのに配列で扱うというのは、なぜですか?これを配列で定義すると、どうに分けられた答えが返ってきますか?
0698nobodyさん
2006/03/10(金) 07:00:47ID:???$w = mb_substr($str, $i, 1, "SJIS");
って行で $w が最初に出て来てるじゃん
mb_substr でググルなりしてみなされ
0699nobodyさん
2006/03/10(金) 07:04:54ID:+ksaxYfx戻り値は普通そのsubstrされた文字なのはわかるのですが、なぜ配列になっているのかがわからないです。。
0701nobodyさん
2006/03/10(金) 08:44:51ID:???$wがマルチバイト文字(2バイト)だから
$w[0]$w[1]にわけられる
俺はこういう場合は$w{0}を使うけどね
0702nobodyさん
2006/03/10(金) 08:48:48ID:???の文字列に
echo $w[3]; // dが表示
のように配列でアクセスできることの応用かな
ただし文字列に配列でアクセスするときは{ }が推奨されている
0703nobodyさん
2006/03/10(金) 10:50:40ID:???ttp://jp2.php.net/manual/ja/language.types.string.php#language.types.string.substr
散々出ているが、レッツ!のスクリプトは古く、
かつメンテナンスされていない物が多いので
(特に初心者は)あまり参考にすべきではないと思う
0704nobodyさん
2006/03/10(金) 11:40:13ID:???にちゃんの解除以来板でも見て候補拾えばよろし。
ソース出したくないなら、そもそもphpは向いてないよ。
mixiみたいに設定ミスで流出の危険は常に有る。
アプリケーション鯖みたいにリクエストだけ別に投げて処理するようにしないと。
0705nobodyさん
2006/03/10(金) 11:52:24ID:???0706nobodyさん
2006/03/10(金) 14:56:54ID:???レッツPHPのbasic認証のパス失敗したらlog残すみたいな
スクリプト配布しているところ知りません?
0707nobodyさん
2006/03/10(金) 15:36:33ID:OI9+vMb4<?
header('Content-type: text/xml; charset=utf-8');
echo('<?xml version="1.0"?>');
echo('<xmldoc><data>1</data></xmldoc>');
?>
以下のようなエラーが出てしまいます。どうしたら回避できますか?
これより前にヘッダなんか送ってなんかないよ〜。
Warning: Cannot modify header information -
headers already sent by (output started at /usr/local/apache2/htdocs/a.php:1) in
/usr/local/apache2/htdocs/yj.php on line 2
1
環境は
Apache/2.0.50 (Unix) PHP/4.4.0
です。
0709707
2006/03/10(金) 15:49:35ID:OI9+vMb4ありがとうございます、入ってませんでした。
>>707にコピペした以外1バイトたりとも余計なものはありません。。
もちろん
<?
が1行目です。
0710707
2006/03/10(金) 15:50:56ID:???ソースを shift_jis で保存しなおしたらでけた。
なんでだ。
0713nobodyさん
2006/03/10(金) 16:42:27ID:???0714nobodyさん
2006/03/10(金) 16:47:57ID:???0716706
2006/03/10(金) 17:10:07ID:???0717nobodyさん
2006/03/10(金) 17:47:46ID:???0718nobodyさん
2006/03/10(金) 17:53:34ID:???0721nobodyさん
2006/03/10(金) 19:06:20ID:???「PHPで〜できますか?」とか言う質問は
・PHPの組み込み関数で〜
・PHPの関連ライブラリ(pear,peclなど)で〜
・PHPの(サードパーティー)ライブラリで〜
・PHPの能力のうちで〜
のどれなのかをはっきりさせて質問するべきだと思うんだが。
>>716
Web制作orダウソ
0724nobodyさん
2006/03/10(金) 19:38:55ID:Zv8Tap21push('a');
push('b');
$b = pop();
$a = pop();
echo $a.$b;
"ab"
みたいな事がしたいのですが、どの関数を使えば良いのか分かりません。
0725nobodyさん
2006/03/10(金) 19:43:10ID:???array_pop
どうぞ。
ってか、別にいらない気もするけど。
0726nobodyさん
2006/03/10(金) 19:43:21ID:???array_pop()
0730nobodyさん
2006/03/10(金) 20:11:45ID:???0731nobodyさん
2006/03/11(土) 02:09:03ID:???何本かプログラムを作ったけどいわゆる入力まわりの、
「記入」「確認」「修正(記入と同じ画面を使いたい)」「完了」
これの条件分岐に関して、getでなんとかしたり、セッションに変な変数入れたり、hiddenで変な変数投げたりといつも、ごちゃごちゃになって、未だ自分の納得出来る方法を確立してません。
特に、確認画面から修正にもどるとこ。
これに関して、定番のロジックのフローチャートみたいなものってどこかにないでしょうか?
$_POSTが無くて、何らかの入力エラーがあったら「記入」
上記をスルーしたら「確認」
修正したい時は「記入」にもどるけど、このときはgetで。
「記入」画面で「確認画面をスキップ」にチェックを入れておいたら「確認」をスルーしてメイン処理(書き込み、DB登録やメール飛ばし)、成功したら「完了」失敗したら「エラー(このエラーはほかのエラーの場合も使う)」
こんな感じでやりたいのですが、皆さんはこの辺はどんな設計にしてますか?
0732nobodyさん
2006/03/11(土) 02:22:13ID:???すでに定義されている変数や定数を一覧表示する関数というか方法は無いでしょうか?
0733nobodyさん
2006/03/11(土) 02:29:37ID:???0735nobodyさん
2006/03/11(土) 02:35:55ID:???実行中なら
get_defined_vars
get_defined_constants
ソースからなら
http://oss.moongift.jp/intro/item_624.html
0738735
2006/03/11(土) 05:36:03ID:???735の公式サイトのリンクはクリックをカウントしてるのか自サイトですね。
たまにエラーが出るみたい
こっちが直
http://phpxref.sourceforge.net/
0739nobodyさん
2006/03/11(土) 09:40:18ID:???どのように使い分けていますか?
私はインスタンスを生成するのがめんどくさいというだけの理由でほ
とんどのメソッドでstatic宣言を使用しているのですが、これだと、
向上心がないような気がするので、みなさんの意見を聞きたいです。
0741739
2006/03/11(土) 09:58:14ID:???いことに気がつきました。
嫌というよりは、例えば$example->example()でできることはstaticを
宣言すればexample::example()でもできるわけで…
つまり、みなさんがどんな使い分けをしているのかを聞きたかっただけ
なんですけが。
0742nobodyさん
2006/03/11(土) 10:20:33ID:???0745743
2006/03/11(土) 10:46:56ID:???あぁ、なるほど!!
インスタンスを複数生成したことがなかったから、意識していません
でしたが、たしかに、staticではインスタンスごとの変数は扱えませ
んね。
すっきりしました。ありがとうございました。
0746nobodyさん
2006/03/11(土) 13:20:18ID:???0747nobodyさん
2006/03/11(土) 15:19:01ID:???文字コードが大きな壁になってます。
メールの件名を判断してフィルタリングしようと思ったら
例えば日本語ならiso-2022-jpにエンコードして設定しなきゃいけない
わけですよね?
日本語だけならまだしも他の言語で色々エンコードあると
1言語ずつ対応しなきゃいけないわけで
非常にだるそうなんですが、なにか良い方法ないでしょうか?
0749nobodyさん
2006/03/11(土) 15:33:48ID:???そのユーザの権限でchmodしたいので
ftp_chmod使うつもりだったんだが。
php5入れる以外で代替法ないですかね・・・orz
0750nobodyさん
2006/03/11(土) 16:01:31ID:???0751nobodyさん
2006/03/11(土) 16:02:19ID:???http://jp.php.net/manual/ja/function.ftp-chmod.php
下の投稿に代替案みたいなのが載ってる
0752nobodyさん
2006/03/11(土) 17:44:19ID:???対応が必要なんだったら、そのだるい方法しかないよ。
前以てフィルタワードを各エンコーディング毎に用意しとくてもあるけど。
0755nobodyさん
2006/03/12(日) 00:18:43ID:???セキュリティ的にはローカルのFTPにアクセスするだけなら安全なのかな
ネットワークを介すとFTPってのはちょっと怖いよね・・
0756nobodyさん
2006/03/12(日) 09:25:46ID:???Assigning the return value of new by reference is
deprecated in PEAR.php on line 557
line 557: $a = &new $ec($code, $mode, $options, $userinfo);
line 558: return $a;
PEAR/Auth.phpを読み込んだら、上記のようなエラーが複数出力されました。
これは、どのような意味のエラーなのでしょうか。
また、E_STRICT設定でもエラーが出ないようにするための対処方法も教えて
いただけると助かります。ご回答よろしくお願いします。
0757756
2006/03/12(日) 10:05:41ID:???失礼いたしました。
0758nobodyさん
2006/03/12(日) 10:30:23ID:???大垣本で調べたけど、Postgreの関数しか見つかりませんでした。
MySQLでは配列を配列のまま格納することは出来ないんでしょうか・・・。
もしそうなら、みなさんは配列のデータをどう分解してMySQLに収めるのがベストだと思いますか?
僕が考えているのは、たとえば$hairetu[1]〜$hairetu[50]まで50個の値が入ってるとして、
順にfor文で添え字1から取り出していって、DB格納用の変数$DBに入れて「:」などの記号を挟んで
「.」で連結していき、その$DBをMySQLテーブルの「text」フィールドに入れます。
もっとスマートなやり方などはありますでしょうか?
0759nobodyさん
2006/03/12(日) 10:32:15ID:???連想配列やキーが連続した数字ではない配列では
使えない手法ですよね。
0760nobodyさん
2006/03/12(日) 10:36:46ID:???0761nobodyさん
2006/03/12(日) 10:50:11ID:???説明
bool isset ( mixed var [, mixed var [, ...]] )
のような表記があります。
この場合は単純なのですが、こういった表記の 「mixed var」や括弧の意味などの凡例は
どのページに明記されているのでしょうか?
0764nobodyさん
2006/03/12(日) 11:49:30ID:???どっかのversionからnewがデフォルトで参照を返すようになったらしい
つまり & new の & が余分
0765nobodyさん
2006/03/12(日) 12:20:38ID:LBgD1ivZクッキーが有効ならクッキー、
有効でないなら、URLに自動的に付加されますが、
スクリプト側で、セッションにクッキーが使用されているか否かを知るには
どうすればいいですか?
0767765
2006/03/12(日) 12:28:39ID:???$_COOKIE[session_name()]の有無を調べればいいんですね。
今までセッションの挙動がいまいち分からなかったのですが
PHP側で裏でいったんリダイレクトしてたんですね。
0768nobodyさん
2006/03/12(日) 13:02:06ID:???> URLに自動的に付加
ってことだから、use_trans_sidを使ってると思うけど、
初回のレスポンスはcookieとURL付加の両方をやって
次のアクセス時のリクエストにcookieが含まれていればcookieだけ使うって感じじゃなかったっけ?
0770768
2006/03/12(日) 14:11:57ID:???なるほど、最初は両方するんですね。
クッキー判定をするために裏でやっているのだと思ったのですが
そういうことでしたか。
ありがとうございました。
0771nobodyさん
2006/03/12(日) 14:38:24ID:???その次「us001000」を取り出したいのですが、
スマートな方法はないでしょうか?
現在は、力ずくで、文字を分解して、+1して、桁数を数えて…。
見たいな事をしています。
よろしくお願い致します。
0772nobodyさん
2006/03/12(日) 14:59:59ID:???<?php
$str = 'us000999';
echo $str, PHP_EOL;
$str++;
echo $str, PHP_EOL;
?>
結果
us000999
us001000
0773nobodyさん
2006/03/12(日) 15:03:46ID:???なんか、苦労してたのがバカみたいです…。
PHP万歳
0775nobodyさん
2006/03/12(日) 15:20:19ID:???逆に怖い気もする
0776nobodyさん
2006/03/12(日) 15:44:43ID:???そんなに怖がることもない。
0777nobodyさん
2006/03/12(日) 15:45:33ID:whEzuZdEこのように</a>のスラッシュはエスケープした方がいいですか?
0779nobodyさん
2006/03/12(日) 15:52:00ID:???似た様な事をやろうとして頭を悩ませてる。
serialize()でやった場合、そのデータをphpmyadminなんかでちょっといじりたいって時にそのserializeしたデータはどんな風に見えるんだろう?
「はてなブックマーク」のタグ的な仕組みを作ろうとしてるけど、こんな場合はやっぱり、区切り文字入れてフィールドに格納。
読み出したときにばらして配列に入れてごにょごにょ、っていうほうが楽そうな希ガス
0782nobodyさん
2006/03/12(日) 15:54:49ID:???実際にserializeしたのを出力してみればいいじゃない。
区切り文字でくっつけたのと似たような感じで文字列化されてるよ。
0786nobodyさん
2006/03/12(日) 16:34:26ID:???それ、$strが'us999999'までいくと次が'us000000’になるのか。
挙動をちゃんと覚えりゃ、なかなか使えそう。
0787786
2006/03/12(日) 16:36:24ID:???'us000000’→'ut000000’。戻ってどないすんねん
0788nobodyさん
2006/03/12(日) 16:53:19ID:???0790nobodyさん
2006/03/12(日) 17:19:10ID:???前に質問スレでその話題でベンチ計ったけど、エスケープや変数展開がない場合は全員ダブルの方が僅かに速かったよ。
0791nobodyさん
2006/03/12(日) 17:22:50ID:???処理量はシングルの方が少ないから
テストの方法が悪いか、その他の要因が働いたとしか思えないのだが。
0792nobodyさん
2006/03/12(日) 17:45:55ID:???とりあえず、100桁の文字(エスケープも変数も含まない)を
10000回printする、ってやつを30回くらい交互に実行させてみた。
結果としては
「不定期に一方が誤差程度に勝つだけで毎回勝敗が違う。故に両者に速度差はほぼ無いと言える」
となったよ。
>>791
なんかPHPってそこの処理はちゃんと最適化してないのかダブルがよっぽど最適化されてるのか
変数の有無で同じ関数使うようにしてるのか知らないけど、シングルだから処理少ないってことはなさげ。
0793792
2006/03/12(日) 17:53:12ID:???ってベンチマークもやってみた。(printの方が処理コスト大きいんで誤差が把握しにくかったので)
でもいずれも結論としては同じ。どっちが速いみたいな差は全然ない。ほんとに誤差しか違わない。
0794nobodyさん
2006/03/12(日) 18:39:00ID:???0795nobodyさん
2006/03/12(日) 19:02:50ID:???値に何らかの問題や未入力部分があったときにブラウザの「戻る」ボタンで戻らせたいです。
このとき、あるサーバでは、「戻る」でフォーム画面に戻ると、さきほど入力した値が残っています。
しかし別のサーバで同じスクリプトを置いてみたら、「戻る」でフォームの値がクリアされてしまっています。
これは恐らくphp.iniの設定の違いだと思うのですが、どの設定を直せばいいのでしょうか・・・??
0796nobodyさん
2006/03/12(日) 19:20:07ID:???残ってる場合 -> ブラウザのキャッシュが使われている(つまり、鯖へのアクセスも無し)
クリアされている場合 -> 鯖から新規取得されている(鯖へのアクセス有り)
てなわけで、キャッシュ周りの設定をチェック(やポリシーの決定を)すれば良いよ。
0797nobodyさん
2006/03/12(日) 19:27:48ID:???キャッシュ周りというと「session.cache_limiter」でしょうか??
戻るボタンでも入力した値が残るサーバをA、クリアされちゃうサーバをBとしますと、
AとBのphp.iniを比べてみましたが、「session.cache_limiter」など
怪しいところはみんな同じ値(nocache)なんです・・・。
いったいどの設定を直すのでしょう。
0798nobodyさん
2006/03/12(日) 19:29:11ID:???0800nobodyさん
2006/03/12(日) 19:55:39ID:???たとえばこんな感じだと、クリア(新規取得)されることになる。
Pragma: no-cache
Cache-Control: no-cache
Expires: 過去の時間
これをキャッシュさせるためには、session.cache_limiterを変更したり、直接header()で書き出したり。
HTMLのmetaにも同じのを仕込めるので、そのあたりもチェック。
見た目は同じフォームでも、PHPで出力した場合と静的なHTMLファイルの場合はその辺の値が違ったりするよ。
0801nobodyさん
2006/03/12(日) 20:10:11ID:???たとえばこんな感じだと、クリア(新規取得)されることになる。
Pragma: no-cache
Cache-Control: no-cache
Expires: 過去の時間
これをキャッシュさせるためには、session.cache_limiterを変更したり、直接header()で書き出したり。
HTMLのmetaにも同じのを仕込めるので、そのあたりもチェック。
見た目は同じフォームでも、PHPで出力した場合と静的なHTMLファイルの場合はその辺の値が違ったりするよ。
0802質問
2006/03/12(日) 20:17:10ID:OTf6vXB0その上のディレクトリの中身もリストに出すやり方がわかりません。
説明が分かりにくくてすみません。
簡単に言うと「りすてぃんぐ」というフリーソフトと同じ機能を持つphpが作りたいんです。
(http://www.oohara.jp/ppp/listing.html)
作りかけソース貼ったほうがいいですか?
0804質問
2006/03/12(日) 20:44:05ID:OTf6vXB0<html>
<head>
<title>PSPデータベース音楽</title>
</head>
<body bgcolor=black>
<table border=1 bgcolor=white>
<tr>
<td bgcolor=lightblue>タイトル</td>
</tr>
<?php
if ($dir = opendir("Music/")) {
while (($file = readdir($dir)) !== false) {
if ($file != "." && $file != "..") {
echo "<tr><td><a href=/Music/$file>";
echo "$file\n";
echo "</a></td></tr>";
}
}
closedir($dir);
}
?>
</table>
0805質問
2006/03/12(日) 20:55:13ID:OTf6vXB0http://ccfa.info/cgi-bin/up/src/up25666.html
理想はこれです。
http://ccfa.info/cgi-bin/up/src/up25665.html
0806質問
2006/03/12(日) 21:01:03ID:OTf6vXB0理想のほうは
一番下にスクロールするとomaというフォルダの中身もリストに表示されます。
こういうふうにしたいんです。
何度もすまんです。
0807nobodyさん
2006/03/12(日) 21:06:12ID:???じゃだめなん?
0808nobodyさん
2006/03/12(日) 21:07:00ID:???まずその直接埋めこんでるものを$dirが引数になる関数にする。
次にechoする前のところにディレクトリの判別を入れてディレクトリだったら
それを引数にして再帰呼出しする。
ヒントは与えた。がんばれ。
0809nobodyさん
2006/03/12(日) 21:13:12ID:???0810質問
2006/03/12(日) 21:16:47ID:OTf6vXB00812nobodyさん
2006/03/12(日) 21:17:08ID:???色々悩むの面倒だから、漏れはこうしてる
ブラウザの戻るで戻ろうが、こっちの用意した戻るボタンを使おうが値が読み戻されるようにしたいなら、
if($ぽすと){$せっしょん=$ぽすと}
で、$せっしょん['なまえ']でうめこんでおけばいいんじゃね?
いろいろな場面で汎用性もたせたいなら、
$はんよう=$せっしょん
にしといて$はんよう['なまえ']にしといたほうが楽。
0813nobodyさん
2006/03/12(日) 21:19:08ID:???下のディレクトリを辿っていく必要があるわけじゃなくて
1つ上のディレクトリだけやればいいだけのようだから
(そういう仕様が便利なのか知らないけど)
再帰はいらんと思う。
0814nobodyさん
2006/03/12(日) 21:22:43ID:???関連してるのかわからないけど,POST使ったページに対してブラウザで「戻る」を選択すると
「データを再送信しますか?」って出るんだけど,これを防ぐ方法あるいはデフォルトで再送信にする設定とかないですか?
0815質問
2006/03/12(日) 21:30:53ID:???その通りです。というか引数はちょっと苦手だから
一つ上のディレクトリまでだけの引数なしプログラム
を組もうと企んでいます。
しかしながら、それすらよく分からないていたらく。
本音を言うと、答えを教えてもらいたいです。
0816nobodyさん
2006/03/12(日) 21:36:10ID:???どのRFCだったか忘れたが、POSTを使ったページをreloadした時には
confirm dialogを出さなければいけないという決まりがあった希ガス。
0817nobodyさん
2006/03/12(日) 22:17:54ID:???ttp://www.phpweb.jp/accelyzer/ をダウンロードして設置手順通りに設置
解析したいウェブページの、カウンターを表示したい場所に、次の文字列を記述します。コピペ推奨。
<?include("./accelyzer/store.php");?> ←index.phpに挿入
HTMLファイルの拡張子を「.php」に直します。
movableのテンプレート index.htmを index.phpに変更
さくらの鯖と独自ドメインを取得
http://homoaniki.com/ にアクセスすると
http://homoaniki.sakura.ne.jp/blog/index.phpに転送するように設定
ブログを見るとアクセス解析が反映されていません、何が問題だったのでしょうか教えてください
0818nobodyさん
2006/03/12(日) 22:33:33ID:???提示されたソースを読んでないから何とも言えんが、
カレントディレクトリの処理が出来てるなら
>>807に示されてるのが、回答のひとつ
0819nobodyさん
2006/03/12(日) 22:38:41ID:???<?include("./accelyzer/store.php");?>
パスは本当にこれで合ってるんだろうな
0820nobodyさん
2006/03/13(月) 00:20:10ID:???IEとfirefoxでも動作が違うよね
IEだとformのselectedの状態に戻る。
firefoxでキャッシュが効く状態だとユーザが選択した状態を保持する
だったような気がする
0823nobodyさん
2006/03/13(月) 02:03:55ID:???0824nobodyさん
2006/03/13(月) 02:18:42ID:???0825nobodyさん
2006/03/13(月) 02:33:33ID:???$hage = "値";//普通の変数
function kansu(){
ここ
}
引数は使わずに、globals宣言も使わずに、function内の「ここ」って書いてある位置からグローバルスコープの中にいる「$hoge['name']」を参照したい時はどうしたらいいのでしょうか?
グローバルの普通の変数「$hage」を参照したい場合は「$GLOBALS['hage']」というのは解るんですが、添字付きの配列の場合はどうしたらよいのでしょうか?
0827826
2006/03/13(月) 03:02:06ID:???0828nobodyさん
2006/03/13(月) 05:16:01ID:???>>822
俺もセッションを使うことを考えたけど、これがたとえば選択肢5個のラジオボタンが
計100個もあるようなフォームだったら、気が遠くなるコーディング作業になるわけで・・・。
もちろんループ文でHTMLを生成するように組むんだけど、複雑でややこしくなる・・・。
単にブラウザがキャッシュしてくれてりゃそれで簡単に済む話なのに、
どうしてあるサーバではそれが可能で、別のあるサーバではそれが不可能なんだぁ〜!!
両者のphp.iniの設定を見比べてもほとんど違いが無いように思えるし。。。
0829nobodyさん
2006/03/13(月) 06:11:45ID:???php.iniの内容じゃなくて、HTTP上で実際にどういうデータ(特にヘッダ)が
やり取りされてるか調べる。
0831nobodyさん
2006/03/13(月) 08:37:24ID:???そういう環境変数(?)ってありましたっけ?
で、仮にそのデータを調べたとしても、それを修正するのはphp.iniの設定なのでは??
見当違いのこと言ってたらごめんなさい。
>>830 「リンクしたら」??? すみません、ちょっと意味が分からない…
0832nobodyさん
2006/03/13(月) 08:51:54ID:???文字化けします。 直りますでしょうか。
0834nobodyさん
2006/03/13(月) 09:00:26ID:q2braTai処理が止まってしまうようなのでmail関数を実行する前にmail関数でメール送信できるか調べ
できない場合はエラーメッセージを出すようにしたいのですが、うまくいきません。
function_exists関数では設定ミスまでは調べてくれないようでした。
どうすればうまくいくでしょうか?
0836nobodyさん
2006/03/13(月) 10:51:13ID:???記述をしているのですが、かなり面倒です。
もっと簡単な方法があったらぜひ教えてください。
$_COOKIE['example'] = isset($_COOKIE['example']) ? $_COOKIE['example'] : NULL;
0837nobodyさん
2006/03/13(月) 11:05:51ID:nCSNQGQcチームで開発してて、本番環境がすでに稼働している状態で、
新機能を開発し、テストに上げ、システム管理者やユーザにメンテナンスを連絡し本番に適用する、
という流れを詳しく知りたいです。
0841nobodyさん
2006/03/13(月) 13:59:50ID:???0842nobodyさん
2006/03/13(月) 14:03:43ID:???if (isset($_COOKIE['example'])) $_COOKIE['example'] = $_COOKIE['example'];
if (isset($_COOKIE['hogehog'])) $_COOKIE['hogehog'] = $_COOKIE['hogehog'];
素直にこうするといいかも。
スペースで縦をそろえると結構ソース読みやすいし。
三項演算子は(〜?〜:〜);か(〜)?(〜):(〜);と括弧で括られてないと何故か不安な俺が居る。
0843nobodyさん
2006/03/13(月) 14:33:50ID:19XzlIjZURLが、クエリの連なった形になります
?module=hoge&action=fuga&id=piyo
getで投げたい場合、
formタグのaction属性にこのようなURLを書いても、
うまく投げられません。
みなさんはどうやっていますか?
0844nobodyさん
2006/03/13(月) 14:41:36ID:???method="get"
PHP5を使ってます。
正規表現で&(アンパサンド)をヒットさせたいのですが、
preg_match ("/\&/", $src, $match)や"/&&/"とやってもヒットしません。
どのようにすればヒットさせられますか?
0845nobodyさん
2006/03/13(月) 14:49:29ID:???というかここまではできたんですが、これとは別に、コメント中にURLがある場合に自動的にリンクになるようになっており、
省略のリンク部分が↑のリンクタグと重なるとおかしくなってしまいます。
これをウマーく回避したいのですが、どうしたらいいでしょう?
今はコメントの文字数が多い場合にstrip_tagsしてるんですがそれだとURLの自動リンクも無しになってしまうので困ってます。
0847nobodyさん
2006/03/13(月) 14:58:49ID:???&の部分が打ち間違えで$になってました…
>846に同じく、
strip_tagsを先にやって、その後自動リンクを張るのはどう?
もしくはstrip_tagsで<a>タグを有効にするとか。
0849nobodyさん
2006/03/13(月) 15:08:59ID:???いやいや、俺も打ち間違えで1時間半は時間つぶしてたから気にすんな。
かなりぐぐったけど全然情報出てこないで新手のバグ?なんて無駄な詮索してしまったよ。
0850nobodyさん
2006/03/13(月) 15:12:20ID:uoSdweNm0851nobodyさん
2006/03/13(月) 15:37:20ID:???0852nobodyさん
2006/03/13(月) 16:14:48ID:???それ意味ないよ
やりたいのは
if (!isset($_COOKIE['example'])) $_COOKIE['example'] = NULL;
と未定義変数を定義したいのだと思う
0853nobodyさん
2006/03/13(月) 17:19:30ID:???を使いたいんですが、PHPで同じ感じのやつありませんか?
0854nobodyさん
2006/03/13(月) 17:32:53ID:???ttp://www.heeha.ws/index.php?Firefox%B4%D8%B7%B8
この辺でいいんじゃね
他にも方法いっぱいあるだろうけど
0855nobodyさん
2006/03/13(月) 17:38:45ID:???マニュアルでheaderって検索してみれ
0858質問
2006/03/13(月) 18:02:01ID:???みなさんのヒントは、寸分の狂い無く私の脳を活性化させ
見事プログラミングの成功という偉業を達成させて下さいました。
初めてプログラムを組んだのですが、成功したときは涙がちょちょぎれました。
本当にありがとうございました。
みつを
0859nobodyさん
2006/03/13(月) 19:14:57ID:???0860nobodyさん
2006/03/13(月) 20:08:04ID:???0866nobodyさん
2006/03/13(月) 23:48:41ID:???0868nobodyさん
2006/03/14(火) 00:09:21ID:???0870nobodyさん
2006/03/14(火) 00:38:33ID:???$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
があるみたいだね。やっぱマニュアル天才。
0871nobodyさん
2006/03/14(火) 01:27:19ID:???0872nobodyさん
2006/03/14(火) 11:40:24ID:???値の保持についていろいろググってみたけど、
まだ誰も根本的な解決策や原因が見つかってないみたいだね。
フォームなんてごくごく一般的に誰もが使うのに、意外な結果だ。
0874nobodyさん
2006/03/14(火) 13:40:27ID:????????
0875nobodyさん
2006/03/14(火) 13:45:29ID:???0876nobodyさん
2006/03/14(火) 13:49:38ID:???PHP本家からダウンロードできる.chmのヘルプって壊れてる?
何回やってもページを表示できませんってでてしまう
0877836
2006/03/14(火) 13:52:31ID:???>>840
>>842
>>852
返事が遅くなってすみません。
いろいろなアイディアを教えていただいて、参考になりました。使ってみて
一番入力が楽なヤツを試してみます。
ご回答ありがとうございました。
0878nobodyさん
2006/03/14(火) 14:15:15ID:???return (isset ($$gname[$name]))?($$gname[$name]):(NULL);
}
$_COOKIE['example'] = getSGlobal ('_COOKIE', 'example');
という方法もある。
俺も凄い気になったんだよな、もう少し楽にスーパーグローバル取得できないか。
そんで前スレかどっかで、Cのマクロ関数みたいな事ってできませんか?みたいな事聞いたら、
関数でやれって返ってきた。
0880nobodyさん
2006/03/14(火) 14:30:02ID:???ttp://php.s3.to/man/language.variables.variable.html
0881nobodyさん
2006/03/14(火) 14:31:41ID:???こんな感じになった。
<?php
// デバッグ用
// エラーは全て表示する
error_reporting(E_ALL);
function getSGlobal (&$gname, $name) {
return (isset ($gname[$name]))?($gname[$name]):(NULL);
}
$hogehoge = getSGlobal($_GET, "hogehoge");
echo $hogehoge;
?>
0882nobodyさん
2006/03/14(火) 14:45:52ID:???ほんと便利だよね。
0883nobodyさん
2006/03/14(火) 15:06:54ID:???ログイン後しばらく放置しておいてからアクセス(更新など)すると、ログアウトされてしまいます。
これは放置時間が一定以上続いた場合にセッション情報が破棄されているのだろうと思いますが、
このセッション破棄までの時間は、php.iniのどこをいじればいいのでしょうか?
「session.cache_expire」が関係あるのかとも思いましたが、デフォルトの「180」のままなのに、
180分も経たないうちに(具体的には10分くらいで)ログアウトになってしまいます。
0886nobodyさん
2006/03/14(火) 15:14:58ID:???http://php.s3.to/man/ref.session.html
session.gc_maxlifetime integer
0887nobodyさん
2006/03/14(火) 15:17:49ID:???ってか三項演算子って言葉って知ってて当然なんかな?
(〜?〜:〜);と全部記号だから検索でヒットさせられるのが無くて困る。
Cだと#defineと併用して使うからマクロ関数とかばっかり出てくるし。
0888nobodyさん
2006/03/14(火) 15:24:55ID:???三点演算子だと思い込んでいて検索でかからなくて困ってたことが・・・。
http://www.sra.co.jp/people/t-ishii/php_new/php4_new.html
第一部 PHPをはじめよう(3360KB)
だけでもいいから読んどいた方がいいよ。
0890888
2006/03/14(火) 15:26:55ID:???ざっとでいいから、眺めれば「三項演算子」という言葉ぐらいは分かるって意味ね。
0892nobodyさん
2006/03/14(火) 15:48:49ID:???セッション値を参考にしてダウンロード場所を選択して
ファイルをダウンロードする仕組みを作ってるんですが、
どうもセッション用プログラムをrequireすると
上手くダウンロードログが表示されません。
セッション用プログラムをコメントアウトすると機能するので、
おそらくヘッダー関係あたりの問題かなと思うのですが、
何か良い解決方法は無いでしょうか。
0893nobodyさん
2006/03/14(火) 16:36:12ID:???0894877
2006/03/14(火) 17:02:51ID:???>>881
更なるアイディアありがとうございます。
教えていただいた方法を試してみた結果、881に紹介していただいた
方法を自分好みにして、以下のようなコードで記述することにしま
した。
function getSGlobal (&$gname, $name) {
$gname[$name] = isset($gname[$name]) ? $gname[$name] : NULL;
}
getSGlobal($_GET, "hogehoge");
echo $_GET["hogehoge"];
これなら、入力が楽です。本当にありがとうございました。
0895nobodyさん
2006/03/14(火) 17:06:30ID:???0897nobodyさん
2006/03/14(火) 18:49:44ID:???順番って設定した順番になりますが
これは保証されてるのでしょうか?
0901nobodyさん
2006/03/14(火) 19:57:29ID:???不安になってきた
0903nobodyさん
2006/03/14(火) 20:50:40ID:???foreachで取り出される順番はリンクリストに従ってるので
「設定した順番」つうのが通常のpushしていくやりかたなら
保証されてると考えていい。明確に保証するとは書いてなかったと思うけど。
0904nobodyさん
2006/03/14(火) 21:33:46ID:???PHPでの連想配列は格納順番を内部に保持していてその通りに取り出せる。
0907nobodyさん
2006/03/15(水) 00:27:49ID:???っていうかこんなとこで聞いてるヒマがあったら、
自分で実験して確かめてみりゃあいいのに。。。
ループでecho使えば分かる話だろ。
0909nobodyさん
2006/03/15(水) 02:02:25ID:???>907じゃないが、俺なら数十回は試すな。
知的探究心ってのは止められないね。
その中で出てきた結果から憶測を何度も繰り返す。
再度何度も試し憶測どおりだったら頭の中に入れとく。
ところでPHPで、OSが違うと処理が変わる事ってあるん?
機会に便乗して質問してみる。
0911nobodyさん
2006/03/15(水) 02:27:00ID:???正しいって言ってるか?好奇心の話だろ?
>>909
そんな話は聞いたこと無いな。インストールはまったく違うけど
0912nobodyさん
2006/03/15(水) 02:33:21ID:???なんか話がずれてる人同士が言い合ってて不毛そうなのでやめたら?
0916nobodyさん
2006/03/15(水) 04:34:09ID:A2wD7hwKprint関数の出力先を変える関数、方法をおしえてください。
0921nobodyさん
2006/03/15(水) 05:16:13ID:???はい、次の質問どうぞ。
0922nobodyさん
2006/03/15(水) 05:20:12ID:???0923nobodyさん
2006/03/15(水) 05:35:22ID:???まずジュノン近くの湖へ行きましょう。
ボスが居ます。
戦闘終了後(まだ倒してない)ぶアルテマウェポンがどっか飛んでくのでぶつかって何度も倒しましょう。
今度は直線に飛び始めるので、止まったら再度戦闘を仕掛けて倒しましょう。
アルテマウェポンがコスモキャニオンか古の森で止まったら最後です。
おめでとうございます、アルテマウェポンをゲットします。
0924nobodyさん
2006/03/15(水) 05:36:19ID:???0925nobodyさん
2006/03/15(水) 07:18:48ID:???まずおもちゃの銃を手に入れろ
少年が倉庫へ行くためのカードキーの場所まで連れて行ってくれるところでカードキーを落とす敵の奥で手に入る
8章以降でおもちゃの銃をアルテマウェポンにチューンできる。20万ギルほど必要
0926nobodyさん
2006/03/15(水) 08:44:03ID:???0930nobodyさん
2006/03/15(水) 10:14:44ID:???配列みたいな基本部分では多分変わんないと思うけど、
システムコールを呼んでる部分では微妙に違うとこあるね。
そういう中身を想像できる人ならあまり気にならないんじゃない?
0932質問
2006/03/15(水) 10:38:37ID:48VnBYob"/data/hoge.bin"として結合する方法を教えてください。
それぞれのファイル内容をfread()で$headと$bodyに読み込んで、
$ToFile = fopen("/data/hoge.bin","wb");
fwrite($head.$body,$ToFile);
のようにしてみたのですが、
エラーが出て、"/data/hoge.bin"のファイルが、サイズが0の状態で出力されます。
この方法は正しくないのでしょうか?
御教示お願い致します。
エラーメッセージの内容は、今家にいないので、帰ってきてから書きます。
0933nobodyさん
2006/03/15(水) 10:50:35ID:???では。
そもそも連結しなくたって、
fwrite($ToFile,$head);
fwrite($ToFile,$body);
2回書けばいいだけでは。
0934932
2006/03/15(水) 11:11:38ID:F5a3ZDp1> fwrite($ToFile,$head.$body);
> では。
そうでした。携帯からだったので書き写し間違えてました。PCのほうは正しく書いてます。
2回書けばいいんですか。帰ったら試してみます。
0935nobodyさん
2006/03/15(水) 11:29:41ID:???その差を求めてベンチ取ってるんですが、
なぜかときどき結果がマイナスになってしまうことがあります。
なぜなんでしょう??? ありえないですよね・・・
0937nobodyさん
2006/03/15(水) 11:48:18ID:???0939nobodyさん
2006/03/15(水) 11:54:21ID:???0942nobodyさん
2006/03/15(水) 13:06:22ID:???function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
0943nobodyさん
2006/03/15(水) 13:16:44ID:???>>941
$start_time = microtime(); //スクリプトの先頭に置く
$end_time = microtime(); //ここから下はスクリプトの末尾に置く
$exe_time = $end_time - $start_time;
echo $exe_time;
0945nobodyさん
2006/03/15(水) 13:46:48ID:???0947nobodyさん
2006/03/15(水) 13:54:06ID:???10回や20回数値を取った程度じゃ、偏りのある結果を得られないかもしれない。
ましてや共有鯖みたいな環境だったら、他に影響される部分が多すぎて、
自分のスクリプトの真のベンチが取れないね。
はて、どうしたもんやら。
ローカルでベンチ・スクリプト以外は極力動かさないようにしてやるしかないか??
0948nobodyさん
2006/03/15(水) 13:55:06ID:???0952nobodyさん
2006/03/15(水) 14:07:56ID:???ベンチって言っても、いわゆる何万回も意味のないループを
繰り返したりするような類のベンチじゃないっつーの。
キモヲタと一緒にするなっての。
ふだん運用してる自作のスクリプトの実行時間を知りたいだけ。
0957nobodyさん
2006/03/15(水) 14:19:20ID:???ハァ?? 何が小出しなんだ??? バカかお前?
これ以上何を知りたいってんだ?
>>956
キモいよお前wwwwwwwwwwwwwwwwwwwwwwwwwww
0959nobodyさん
2006/03/15(水) 14:23:58ID:???>ましてや共有鯖みたいな環境だったら、他に影響される部分が多すぎて、
>自分のスクリプトの真のベンチが取れないね。
>はて、どうしたもんやら。
100万回とって平均値とれや
>ベンチって言っても、いわゆる何万回も意味のないループを
>繰り返したりするような類のベンチじゃないっつーの。
そんなの後出しされても知るか。
0961nobodyさん
2006/03/15(水) 14:37:04ID:???これがキモヲタらしくてよい。
0963nobodyさん
2006/03/15(水) 14:45:13ID:???それは小数点以下の部分だけで差分を出してる。
当然、タイミングによってはマイナスになるし、1秒以上の実行時間は算出できない。
0965nobodyさん
2006/03/15(水) 15:15:36ID:???うるさい御老人の事は気にせずなんでもどうぞ^^
0966nobodyさん
2006/03/15(水) 15:17:55ID:???そこがphpの怖いところなんだな
文字列を算術演算で使うと数値として評価できる部分までがその数値になる
この場合は' 'より前の部分だけ
>>965
カエレ
0967nobodyさん
2006/03/15(水) 15:21:11ID:???microtimeは
"小数部"スペース"整数部"
の文字列
そのまま引き算するとスペース以降の部分は無視され小数部のみの引き算になる
0968964
2006/03/15(水) 15:26:35ID:???なるほど。
試しに、print microtime(); をやってみたら、
「0.90277600 1142403902」みたいになってた。
phpの演算って面白いね。
普通の言語だと余計なものが入っている状態で減算したら
エラーになる気がする・・・。
0969967
2006/03/15(水) 15:27:05ID:???microtime(true); //floatを返します。
が使えるんだ
0971nobodyさん
2006/03/15(水) 15:30:10ID:???function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return $usec + $sec;
}
これで同じ結果になると思うけど。
0972971
2006/03/15(水) 15:34:21ID:???失礼しました。
http://jp.php.net/manual/ja/language.types.float.php
0973971
2006/03/15(水) 15:38:02ID:???宣言しない場合は、float型として加算されるのかな。
0976nobodyさん
2006/03/15(水) 16:02:04ID:???$secがかなりでかい数字なので、それに$usecを足した時点でかなりの精度が失われてる。
それはfloatだろうとdoubleだろうと避けられないかと。
先に$sec同士、$usec同士で減算を済ませてから最後に足せばかなり精度を維持できると思う。
0978nobodyさん
2006/03/15(水) 16:09:07ID:???> 精度を気にするなら$secと$usecは足してしまう前に減算した方がいいんじゃないのか?
> $secがかなりでかい数字なので、それに$usecを足した時点でかなりの精度が失われてる。
正しい。
君は賢いね。
> それはfloatだろうとdoubleだろうと避けられないかと。
phpにおいては、float と double は全く同じものじゃないだろうか。
http://jp.php.net/manual/ja/language.types.float.php
> 先に$sec同士、$usec同士で減算を済ませてから最後に足せばかなり精度を維持できると思う。
だね。
普通はそれで十分。
まぁ、更に精度を気にするなら、GMP関数を使うべきだと思う。
ただ、モジュールだからレンタル鯖な人は使えねーかもな。
http://jp.php.net/manual/ja/ref.gmp.php
0980nobodyさん
2006/03/15(水) 16:18:09ID:???0981nobodyさん
2006/03/15(水) 16:21:30ID:???丁寧にキャストしてるのはマニュアルの親切心かなと思った。
この場合は明示しなくてもfloatとして加算される。
> list($usec, $sec) = explode(" ", microtime());
ここで var_dump($usec, $sec) 取ってみたりとか
マニュアル読みながらいろいろ試したりすると、疑問が解消すると思うよ。
http://jp.php.net/manual/ja/language.types.type-juggling.php
で。
>>ALL
引っ張ってごめんなさい。
0982nobodyさん
2006/03/15(水) 17:20:10ID:???$startTime = microtime();
// ●実行時間の取得(スクリプトの最後に書く)
list($startUsec, $startSec) = explode(" ", $startTime);
list($stopUsec, $stopSec) = explode(" ", microtime());
$secure_execSec = ($stopSec + $stopUsec) - ($startSec + $startUsec);
print $secure_execSec;
0983nobodyさん
2006/03/15(水) 17:32:17ID:???0985nobodyさん
2006/03/15(水) 17:59:46ID:???// $secure_execSec = ($stopSec + $stopUsec) - ($startSec + $startUsec);
$secure_execSec = ($stopSec - $startSec) + ($stopUsec - $startUsec);
0986nobodyさん
2006/03/15(水) 18:16:24ID:???$secure_execSec = ($stopSec + $stopUsec) - ($startSec + $startUsec); だと、
Load Time: 0.13795495033264 sec.
$secure_execSec = ($stopSec - $startSec) + ($stopUsec - $startUsec); だと、
Load Time: 0.137955 sec.
になった。
予想の反対の結果だね。
精度が落ちる計算(前者)の方が、表示される桁数が多くなり、
精度が前者に比べ落ちない計算(後者)の方が、表示される桁数が少なくなる。
つまり、精度の低い数字がずらずらと表示されるわけだな。(前者の計算だと)
0987nobodyさん
2006/03/15(水) 18:29:38ID:???SecとUsecを足した時点で有効桁数が変換が入るので、
その時点で10進変換では割り切れない数字になってる可能性が高い。
0989nobodyさん
2006/03/15(水) 18:45:18ID:???俺のサーバは8桁表示されるが、7-8はいつもゼロ
0990nobodyさん
2006/03/15(水) 18:46:42ID:GW/RIGqH変数$aに全角ひらがな、もしくは全角カタカナが含まれるか否かを判別するにはどうすれば良いのでしょうか?
0991nobodyさん
2006/03/15(水) 18:48:44ID:???0992nobodyさん
2006/03/15(水) 19:01:13ID:???急にイキイキと書き込みが激しくなった点についてwwwwwwww
やっぱヲタは分かりやすくていいなぁ。
0993nobodyさん
2006/03/15(水) 19:07:05ID:???0994nobodyさん
2006/03/15(水) 19:09:43ID:???オススメの書籍はなんでしょうか?
0995nobodyさん
2006/03/15(水) 19:12:50ID:???大外れ乙wwwwwwwwwwwww
しかしあと数回の書き込みで1000ゲトなのに、
誰もそれに気づかない(?)ほど熱中してベンチの話に
なってんのが面白いww
0996nobodyさん
2006/03/15(水) 19:14:41ID:WV793DnE現在、テキストボックスに入力されたデータを別ページで表示させるものを作っています。(簡単に言えばメンバー表のようなもの)
今はまだ書き込み処理等、ログファイルへの書き込みは行っておらず、たんに入力されたものを出力するようにしています。
表示させるところまではうまくいったのですが、現在メールの入力欄に文字が入力されていたら自動で名前にリンク、入ってなかったら名前のみ表示。
と言うようにしようと思っているのですが、思うようにうまくいきません。
<? if ("{$_POST['mail']}" !== "") {
echo "{$_POST['name']}";
} else {
echo "<A href=\"mailto:{$_POST['mail']}\">{$_POST['name']}</a>"; } ?>
というようにしてみたのですが条件の部分のせいでエラーがでてしまいます。
条件の設定法がうまくわからないのですが教えてください。
条件としては「{$_POST['mail']}に文字がはいっていなかったら」です。
0998nobodyさん
2006/03/15(水) 19:22:10ID:???0999nobodyさん
2006/03/15(水) 19:23:39ID:yiOrS10N【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/
1000nobodyさん
2006/03/15(水) 19:24:58ID:???1行目を上記のように直す。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。