くだすれPHP(超初心者用)5 at PHP
[2ch|▼Menu]
[前50を表示]
150:nobodyさん
08/12/09 02:42:47
xmlに正規表現てw

151:nobodyさん
08/12/09 02:50:19
なんでxmlって決め付けてるんだよ

152:nobodyさん
08/12/09 03:19:03
>>149
できました!

>>148
こんど勉強してみます。

153:nobodyさん
08/12/09 04:53:11
トップページに検索フォームを用意しておいて
トップページと検索結果ページのレイアウトを全くの別物にしたい場合
GETに中身がなかったらトップページへ
中身があったら検索結果ページへとか言う風にif文でhtmlを丸ごと括って分岐させる感じでいいの?
なんかスマートじゃない気がするんだけど

154:nobodyさん
08/12/09 05:12:49
検索アクションがあったら中身が空であっても検索結果を出すべきだろ
検索単語を入れるように検索結果のページで促したり
単純にヒットしなかったと検索結果を出すのが普通

155:nobodyさん
08/12/09 13:03:23
いいことを教えてやろう。

<form action="search.php">

156:nobodyさん
08/12/09 14:41:55
入力エラーだからlocationヘッダでトップページに返せばいいんじゃない?
できればエラーメッセージつけてかえすと親切だな。

157:nobodyさん
08/12/09 20:34:24
トップページと同一のファイルで検索結果を表示しようとしてるの?
普通に検索用のスクリプト作ればいいじゃない。


158:nobodyさん
08/12/09 22:03:51
symfonyで作ったスクリプトって、単体じゃー動かないの?
symfony本体無いと動かない?

上の質問が正解だとすると、レンタルサーバではほぼ使えないですよね?
symfony使えるサーバじゃないと。

159:nobodyさん
08/12/09 22:10:06
>>158
フレームワークなんだからそれ通さないと動かないに決まってるだろ
PHPのフレームワークなんだからPHPで書かれてるだろ
PHPさえ使えればどの鯖でもつかえるんじゃね?

160:nobodyさん
08/12/09 22:56:48
よろしければご質問いたします

データベースに内に用事のある日付と人のIDを入れておくテーブルが有ったとします
(DATE, ID)
(11/29, K)
(12/5, F)
(12/7, F …みたいな感じ)

そこからSQL文で月を指定してまとめてデータを抜き出しておいて
画面テーブルのトップに日付と曜日の一覧を表示させておいて
人別に用事のある日付に×を書き込みたいのですけど
(5日と7日に用事があればF, , , , ,×, ,×, …みたいな感じ)

SQL文で範囲選択して取得したデータを保持しておいて
その中に条件にあったデータが有るかをチェックする事って出来ますか?

for文で画面テーブルを作成しながら$iの値を日付に合わせて増やしていき
SQL文で一度取得したデータの中に$i(日付)と同じものが有れば
×を記入さていこうかなと考えています

お分かりになるかた、もっといい方法を思いつく方
ご教授を願えたら有り難く思います

161:nobodyさん
08/12/09 23:00:33
> ご教授を願えたら有り難く思います

「ご教授願えますか」なら兎も角、不思議な日本語。

162:160
08/12/09 23:09:26
>>161
早速ご指摘を頂き有り難う御座います

追加ですが配列を使用せずに記述をしたいと考えております

お分かりになる方、もっといい方法を思いつく方
ご教授願えますか

163:nobodyさん
08/12/09 23:15:35
このスレを教授が見てる確率は限りなく低いので
無理でないかと思います
大学で聞くのが一番早いと思うのでそちらをお勧めします

164:160
08/12/09 23:21:52
>>163
度々のご指摘ありがとう御座います

正しくは教示の様ですね

>>160>>162に関しまして
お分かりになる方、もっといい方法を思いつく方
ご教示願えますか

165:nobodyさん
08/12/10 00:15:00
>>164
SQLのクイズ出してるつもりならスレチだよ。
MySQLならgroup_concat(DATE) と group by IDを使って行を取得というのが楽
標準SQLで組もうとすると、ちょっとパズルチックになるからね。
他人が書いた答えは知ってるけど、オリジナルじゃないからググってみることをお勧めする。

個人的にはfor文で処理するより、rangeと配列、array_mapでサクッとテーブル書く方が好きだな。
ループはダサい。

でもあえて配列を使わないんなら、ORDER BY ID, DATEでクエリの結果セットを
ループしながらifとswitchでテーブル組めば普通にできる。

166:160
08/12/10 07:53:28
>>165
ご返答有り難う御座います

現在インターン中なのですが
そこで課題として従業員のシフト表を作成しています

従業員テーブルから情報を引き出して
それを元に休日テーブルから情報を引き出して表を作成しようと考えています

当初は一度配列に入れてから配列一つひとつをfor文とif文で参照しようと考えていましたが
担当の方にそのアイデアを話してみた所
配列に入れなくても出来ると一蹴されて困っていました。

一度>>165様に頂いたワードを調べて参考にしたいと思います

また別の方法が有りましたら教えていただけると
有り難く思います

167:nobodyさん
08/12/10 07:54:29
2chでアルゴリズム聞いて実装するとか嫌なインターンだなw

168:nobodyさん
08/12/10 08:13:18
いや、話を聞いてみるとよくある話。
ちゃんと説明しない嫌な担当だな。

ところで、面白い方法(拡張しないなら冗長だけど)あるよ。
配列もforループも使わない。たぶんifも最小限になる。
RecursiveIteratorIteratorっていうのがあるから、
個人イテレーターを親に日付イテレーターを子に持つようなイテレーターを
定義して、PDOをマップする。日付イテレーターのnext()は次にSQLデータの
有無にかかわらず日付をインクリメントする。
フィルターイテレーターも同時に実装して月別フィルターとか年別フィルター
とか週別フィルターとかも実装する。
テーブルソースの作成部分はデコレーターでデータをラップして文字列化
するようなものにする。
すると、
$obj = new shiftTable(array('scope'=>'month', 'target' => 12));
echo $obj;
で表が自動出力されるようなものが作れる。

169:160
08/12/10 08:34:45
>>167
グループ課題の担当している部分なのでグループ全体に
影響が出ないよう早く見当を付けたいと思い質問させていただきました

>>168
私の知識では拡張という言葉がどれ程の物をあらわしているのか分かりませんが
>>160は若干端折って記入しており、実際には×では無く
休日テーブルを書き換える為のチェックボタンが付いており
従業員が現在休みになっている日は初期画面で黒くチェックが入って表示され
画面テーブルの外部にsubmitボタンが付いています

担当の人の話では
休日テーブルから5と7という値を取得すれば配列に入れなくても
画面テーブルの5番目に表示させてから7まで空のセルをつくり
7番目でまた表示させることが出来ると言われました

それを解決しようと思い>>160の質問に至ったわけです

>>168様の方法も調べて参考にさせて頂きたいと思います
ご返答ありがとうございました

170:nobodyさん
08/12/10 08:48:49
> 休日テーブルから5と7という値を取得すれば配列に入れなくても
> 画面テーブルの5番目に表示させてから7まで空のセルをつくり
> 7番目でまた表示させることが出来ると言われました

なんというトーニャハーディング、できりゃいいんかい!って感じの考えだな。
SELECTで前回表示のレコードを取得しとくのか、forループで前回データを保存するのか
いずれにしても、表示ロジックをデータ処理に放りこむのか・・・すごいな。
そういうところでは、はいはいって言うこと聞いて逆らわない方がよさそうw

もし、フォーム要素なんかが絡むんなら>>168の方法で基本ロジックを作成して
デコレーターでラップするといいんだけど、習得には多少なりとも時間が
かかるかもしれないのでお勧めはしない。

171:nobodyさん
08/12/10 10:52:26
fromのポストでsubmitのnameの値を取得する方法を教えてください。

<input type=”submit” name="取得する値” value=”送信” />



172:nobodyさん
08/12/10 11:00:06
$_POST['取得する値']

173:nobodyさん
08/12/10 11:01:37
もしくは"送信"が限定されてるなら、array_search("送信", $_POST);

174:nobodyさん
08/12/10 11:07:56
>>173
誤解していました。
ありがとうございます。
array_search覚えました。

175:nobodyさん
08/12/10 11:29:34
少しおしえてください。
PDOでInsertをプリペアドステートメントで行うとき、値が空っぽの時、
NULLを挿入したいのですが、NULLじゃなく、''の空が挿入されます。

これってPDOのオプションで自動で''の時は、NULLを挿入することは出来ないのですか?

176:nobodyさん
08/12/10 11:34:32
どんなソースで実装したの?

177:nobodyさん
08/12/10 12:04:52
>>176

例えばこんな感じ

$id = 1;
$name = 'abc';
$tel = '03-3333-3333';
$email = '';

$sth = $dbm->prepare("INSERT INTO `test` (id, name, tel, email) VALUES (?, ?, ?, ?);");
$sth->execute(array($id, $name, $tel, $email));

この場合、$email が空になってるので、''でInsertされたと同じになって、
NULLが入りませんので、これをPDOのオプションでNULLに出来たらなと・・



178:nobodyさん
08/12/10 12:13:26
$emailをNULLにすればよろしい

179:nobodyさん
08/12/10 12:33:55
$sth->execute(array($id, $name, $tel, null));
にすれば、NULLが入るのは分かってるのですが、、それはめんどくさいですよね。。

180:nobodyさん
08/12/10 12:47:47
空文字入れたいのか、null入れたいのかの区別がつかないじゃないか。
もし空文字のときは必ずnullでいいならば、間に関数1つかませばいいべ。

181:nobodyさん
08/12/10 12:57:22
>>179
バインドメソッドで明示的に指定すれば?

182:nobodyさん
08/12/10 12:57:33
そうですよね。
かますことにします。

ありがとうございます。

183:nobodyさん
08/12/10 13:03:54

もう一つ聞いてもいいですか?
PDOとMySQL5です。

PDOを使ってSELECTをした場合、クエリーキャッシュは使われてるのでしょうか?

(PDO::MYSQL_ATTR_USE_BUFFERED_QUERYは無効にしてあります)


184:nobodyさん
08/12/10 13:13:49
MySQLのクエリーキャッシュのことを言ってるなら、MySQLの設定次第

185:nobodyさん
08/12/10 13:18:14
書き忘れましたが、PHP5.2.0です。

>>184
PHPのネイティブ関数であれば、クエリーキャッシュは効いてるですが、PDOを使うとだめぽっい。。


PHP5.2.1にアップするしかないのかなぁ・・。


186:nobodyさん
08/12/10 14:41:30
動画データFLVの1コマ目だけをjpegにして、サムネイル化して表示
をしたいのですが、どうすれば出来るでしょうか?


PHP5.2を使ってます。詳しい方いらっしゃったらおしえてください。

187:nobodyさん
08/12/10 14:48:09
>>185
PHP5.2.0ってだめなの?5.1.17ぐらいから使えるはずだけど。
まぁ、書いてるんだしそうなのかな・・・

188:nobodyさん
08/12/10 15:00:33
>>187

PHP5.2.0のPDOだとクエリキャッシュが効いてないみたいですね。

PDO::MYSQL_ATTR_USE_BUFFERED_QUERYを有効にすると効きますが、副作用があって。。

189:nobodyさん
08/12/10 18:06:24
どんな?

190:nobodyさん
08/12/10 18:38:54
LIMIT ?,? とかやるとエラーになります。
なので、LIMIT 0,10 とか LIMIT {$offset}, {$limit}とやれば良いんですけど・・。 

191:nobodyさん
08/12/10 19:00:30
まだ勉強中なんですが、phpで実現可能かどうか質問させて下さい

メールを受信した後、それをHTMLとして表示させたいんです。
エンコード状態のマルチパートなメール(ソース?)があるとして、
それをHTMLとして出力するライブラリみたいなのとかありますか?
問題は画像の部分だと思っています。(どう実現するかイメージも沸きません)

具体的な使い方は調べますので、あるかどうかと、
名前とかヒント教えてもらえるとありがたいです。

ちなみに、レンタルサーバ借りて(Web/Mail/php/DB)
iPhoneから使えるWEBメールシステムを自分の為に作ってます

192:nobodyさん
08/12/10 19:05:12
PEAR Mailに受信したメールを読ませれば添付ファイルまで抽出できる。
メールサーバが立ってるなら、.forward等でphpプログラムに渡すと簡単。
他所のメールサーバーでも、POPやIMAP用の関数でアクセスすることも可能。
解釈部分はPEARが実績があると思う。


193:nobodyさん
08/12/11 01:53:18
>>191 レンタルサーバだと難しいと思うよ

194:nobodyさん
08/12/11 12:19:57
>>191
iPhoneならGmail使えば良いのに・・・


195:nobodyさん
08/12/11 12:31:14
191です
ありがとうございます

>>192
PEAR MailのPOP3でメールとってますが
画像部分を一旦保存しなきゃダメですかね〜
極端な話、メールのテキストと埋め込み画像をまとめて
1つの画像に落としてくれる関数があればいいんですけど都合よすぎですね><
>>193
ネックは画像を抽出する部分とかでしょうか?
>>194
Gmailはメール入力が難ありで・・・
Yahoo!JメールはiPhone用のメール作成画面ないし・・
それと、
あるAさん宛てのメールとAさんから来たメールを抽出して
一覧で見せるようなのをイメージしてます

196:nobodyさん
08/12/11 15:16:35
>>195 画像抽出は簡単だけど、
送信されてきたメールをプログラムに渡すにはサーバの設定が必要で、
POPから取得するとCRONの設定が必要。
メール送信して、スクリプトにアクセスするならいいけど。

197:nobodyさん
08/12/11 15:47:11
特定URLに定期的にアクセスしてくれる、CRONサービスがあるから、
それを利用すればOK

198:nobodyさん
08/12/11 15:48:27
WebMailに使うならアクセス時に全部取りに行けばいいので、
cronはいらないんじゃね?

199:196
08/12/11 17:30:03
ごめん勘違いしてた。じやあIMAP関数使えば楽勝。

200:nobodyさん
08/12/11 22:26:19 nahQekTa
//↑DB接続からSELECT文実行まで↑
$perPage=10;
$index=0;
for($i = $index; $i < $index + $perPage ; $i++){
$row = $res->fetchRow(DB_FETCHMODE_OBJECT,$i);
echo $row->id;
//↓$row->***を使用した処理
}
クエリ結果$resから順次行を取り出し$row->***で取得されるデータを使って処理をしたいのですが、echo $row->idを実行してもなにも表示されません(ソース上も)。

$row = $res->fetchRow(DB_FETCHMODE_OBJECT,$i);
↑この部分がおかしいんだとは思うんですが・・・

201:nobodyさん
08/12/11 22:51:56
fetchRowで$iやめてみたら?
そのままだと$rowでbreakする必要があるかもしれないけど。

202:nobodyさん
08/12/11 22:54:53 nahQekTa
>>201
レスありがとう

本当は$indexに現在のページ数が入って$indexの時は1〜10行目まで、$index=2のときは11〜20行目までという風に処理をさせたいのでfetchrowに$iを使わずwhileなどで処理できないんですorz

203:nobodyさん
08/12/11 23:04:10
>>202
それ、結果セット時点でseekしといた方がいいんじゃないの?
全結果セットから、毎回行指定じゃ重いでしょ。

とはいえ、やりたいことができない理由は他にあるだろうね。
クエリが間違ってるとかない?

204:nobodyさん
08/12/11 23:12:27
>>203
レスどうもです。
まだ勉強中なのでseekっていうのが・・・・
結果セットから配列なりに格納して結果セットを開放しておくということでしょうか?

クエリのコードは
sql = "select * from table ORDER BY id DESC ";
$res =& $db->query($sql);
if (PEAR::isError($res)) {
die($res->getMessage());
}
で、他のwhileで全行取り出しした場合には上手くうごいてくれているのでクエリは大丈夫かと思うのですが・・・

205:nobodyさん
08/12/11 23:46:54
あぁ、ごめん、seekって勢いでミスったw

ところで、クエリにLIMITを含めておくわけにいかないの?

あと、fetchRowの行指定は1回だけ発動して、あとはループでいいと
思うんだけど。

あと、単にフィールド名が違うとかじゃないよね?
var_dumpとかしてます?

206:nobodyさん
08/12/12 01:30:02
普通limitだわな

207:nobodyさん
08/12/12 11:46:01 MaDVXqed
if (!is_dir($dir)) {
$rc = mkdir($dir, 0755);
でディレクトリーを作ったら所有者がwwwになります
これをuserにして作ることはできないのでしょうか?
よろしくお願いします

208:nobodyさん
08/12/12 12:32:00
そんなことができたらセキュリティホールになるでしょう。

しかし、対応としては
Webサーバーの実行ユーザーを変えるか
root権限wで実行してchownもしくは、mkdirのオプションを買うか
CGIモード+suexecで起動するか、
setuidした別のラッパーをかますか、

ま、そんなとこだろう。

209:nobodyさん
08/12/12 12:51:31
パーミッション777にしとけば困ることないお^^

210:nobodyさん
08/12/13 14:37:33
そんなことをしたらセキュリティホールになるでしょう。


211:nobodyさん
08/12/13 15:33:14
>>210
使い方次第でしょ

212:nobodyさん
08/12/13 22:52:57 6AnKxTPA
move_uploaded_fileでアップロードされたファイル保存するときに別ドライブを指定するパスの書き方がわからんorz

213:nobodyさん
08/12/13 23:02:04
そうか

214:nobodyさん
08/12/14 00:20:22
現在、Windows(XP)で自宅サーバを構築し簡単なphpを使ったサイト(システム)を運営しています。
ところが諸事情の為にレンタルサーバを借りて、自宅サーバで運営していいる物とは異なる
別のphpサイトを構築しようと思っているのですが、現在は自宅サーバで運営しているサイトは、

C:\Program Files\Apache Software Foundation\Apache2.2\htdocs

の直下に配置されたphpのみが起動する作りになっておりますが、
ASP.netの様にプロジェクトごとにディレクトリを分ける事は、出来ないでしょうか?

例)
 @C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\自宅サーバ\index.html
 AC:\Program Files\Apache Software Foundation\Apache2.2\htdocs\レンタルサーバ\index.html

要するに開発しているサイトによってディレクトリを分けたいです。






215:nobodyさん
08/12/14 00:21:45
rewrite使えば?

216:214
08/12/14 00:38:16
ぐぐってみたところ

動的ページを静的ページにする (mod_rewrite)


というページがトップに表示されたのですが、いまいち私のやりたい事は実現出来なさそうです。
私の認識が誤っているだけかもしれませんが、その「rewrite」というのは
一体何なのでしょうか?

もし参考になうサイトをご存知でしたらお教え願います。

217:214
08/12/14 00:52:09
自己解決しました。
mod_rwrite
という方法を使わなくてもディレクトリをもう一つ用意するだけで事足りました。

218:212
08/12/14 01:50:36
>>213
もし知ってたら教えてくだされorz

219:nobodyさん
08/12/14 01:51:30
いいよorz

220:212
08/12/14 03:24:13
>>219
かたじけないorz

221:212
08/12/14 12:58:16 vrT8sAoj
(´・ω・`)

222:nobodyさん
08/12/14 13:21:34
教えてあげようか?

223:212
08/12/14 13:23:01
>>222
(*´д`;)はいっ

224:nobodyさん
08/12/14 15:06:54
D:/
とかじゃだめなん?Windowsでやった事ないから勘だけど

225:nobodyさん
08/12/14 15:11:30
で、でぃーどらいう゛っ?

226:nobodyさん
08/12/14 16:29:22
>>224
ちょと試してみます

227:nobodyさん
08/12/14 16:32:11
>>224
これでいけました!!
盲点だったorz

228:nobodyさん
08/12/14 17:42:47
ほうほう,それで?

229:nobodyさん
08/12/15 06:26:47
file_put_contents -- 文字列をファイルに書き込む

連続して fopen() , fwrite() , fclose() をコールすることと等価です。

この関数ってどうなの?

230:nobodyさん
08/12/15 06:49:26
は?

231:nobodyさん
08/12/15 06:52:34
短く書けるから便利といえば便利だがPHP4では使えない
PHP5なら好きなほう使えばいい

232:nobodyさん
08/12/15 12:09:28
PHP5つかってます。
youtubeみたいな動画共有サイトを作りたいのですが、動画のアップロードは出来るのですが、
アップロードされた動画をサムネイルで表示する方法がわかりません。どなたか詳しい方いらっしゃったら
教えてください。

233:nobodyさん
08/12/15 12:27:15
>>232
それよりも作るのはかまわないけど公開するならインフラ周りのこと考えろよ?
まわりに迷惑かけるのだけはやめてくれな

234:nobodyさん
08/12/15 22:35:55
>>233
インフラを考えずに作ったって糞遅くなるのは目に見えてるよw
しかも維持費にどれだけ金が掛かると思ってるんだろうね。

一流のエンジニアが集まって作られているYouTubeですらあれだけ
重いのに。

235:nobodyさん
08/12/15 22:42:38
>>234
> インフラを考えずに作ったって

それを言うなら、考えて、では。

236:nobodyさん
08/12/15 23:16:47
インフラはAmazon EC2、S3とかがオススメだな
回線速度の面で微妙かもしれんが

237:SF4マニア
08/12/16 01:03:15
本職ではクラサバをメインに開発しているPGですが、
趣味で2年程前からphpでWEBシステムを作っています。

私は、実務でphpを使ったWEBシステムの構築は行った事がないのですが、
実務ではどういった開発環境でphpを使ったWEBシステムの構築を行っているのでしょうか?

因みに、自分はsakuraエディタだけです。
正直、画面のレイアウト等プログラミング以外の部分で時間を取られており、
ASP.net(VS)での開発と比べて無駄に工数が掛かってしまう感が否めません。

皆さんは、どういった環境でphpWEBシステム(サイト)を構築しているのでしょうか?
開発工数を大幅に削減出来るお勧めソフトがあればぜひお教え願います。



238:nobodyさん
08/12/16 01:10:54
>>237
普通はデザイナーを使うと思うが・・・

239:nobodyさん
08/12/16 01:19:53
テキストエディタからレベルアップしてけ

240:nobodyさん
08/12/16 01:22:14
>>238
という事は、画面の作成はデザイナに任せてシステム部分だけをphp(マ)が開発していいるのですか?


>>239
オススメのソフトはありますか?
VSのデザイナ画面は個人的に非常に使い易いです。

241:nobodyさん
08/12/16 01:22:54
All-in-OneのPDTいれたらhtmlもデザイナでいじれるから楽チンや

242:nobodyさん
08/12/16 01:23:38
>>240
EmEditorいいよ

243:nobodyさん
08/12/16 01:41:30
>>241 >>242
参考にさせて頂きます。

244:nobodyさん
08/12/16 01:51:06
デザイナーというのは、人のこと?
それとも、デザイナーという、ソフトのこと?

245:nobodyさん
08/12/16 02:13:10
人名

246:nobodyさん
08/12/16 02:20:37
>>244の意訳

ボタン配置とかして直感的にデザインしたものをコード変換する機能のことか、
職業としてのデザイナーのことかどっちなの?

247:nobodyさん
08/12/16 03:06:22
>>244
238は職、241は機能


248:nobodyさん
08/12/16 20:12:46 XMobQjfA
>>110で質問した者ですが
>>112さんの教えてくださった

$url = array(1 => "リンク1", 2 => "リンク2", ....
uksort($url, "cmp");
print_r($url);

のとこを、

$url = array(apple => "リンク1", banana => "リンク2", ....
uksort($url, "cmp");
print_r($url);

みたいにidを数字ではなく文字にしたい場合どう書けば同じように動作するか教えてほしいです
宜しくお願いします。

249:nobodyさん
08/12/16 20:19:24
応用能力皆無なのな

250:nobodyさん
08/12/16 20:46:30
>>248
function中の$a - $bのところ、strcmp($a, $b)に変える

251:nobodyさん
08/12/16 21:20:01
>>250
ありがとうございます
説明不足ですみません。やってみましたがこれはアルファベット順で並ぶのでしょうか?
キー順でソートしたいのです。
一応自分なりに調べてはいるのですが
foreach ($url as $key => $value)
なんて文をどこかへ追加って感じで方向は合っているでしょうか?

252:nobodyさん
08/12/16 21:22:18
応用能力皆無なのな

253:nobodyさん
08/12/16 21:25:19
>>251
ちなみに並ぶけどさ、やってみたんなら並ぶかどうか確認できるでしょ?
配列の並べ替えが終わったら、foreachでもeachでも好きなループ組めば?

254:nobadyさん
08/12/17 17:32:12
質問があります。PHP5でflvファイルの最初のコマを取得して、画像としてサムネイル化
する事って出来るのでしょうか?レベルが高いかも知れませんが、詳しい方がいらっしゃったら
教えてください。

255:nobodyさん
08/12/17 17:42:39
なんかこないだからその質問を何回も見るんだけど。

256:nobodyさん
08/12/17 17:52:54
とりあえず環境書いてないから適当に答えるけど
ffmpegインストールしてphpから呼び出して使えば出来ると思う。

257:nobodyさん
08/12/17 18:01:15
ググれば簡単に出てくるのに

258:nobodyさん
08/12/18 05:46:38
教えてください。

PDOでPostgreSQLにアクセスしています。
ところが、全部PDOメソッドだけで実現できないことがあり、
PDOとpg_*関数を混在使用するハメになりました。

そこで質問ですが、
PDOオブジェクトで、pg_*を使うためのデータベースハンドル
を得ることはできるのでしょうか?
できないのなら、PDOでのDB接続とは別に、pg_connectで
DB接続する必要があるということでしょうか?

259:nobodyさん
08/12/18 07:10:30
実現できないことって何?

260:nobodyさん
08/12/18 09:11:27
>>259
PDOで、PostgreSQLのbytea型に格納してあるバイナリデータを
読み出そうとすると、不具合があるようなのです。
(公式情報ではないので自分の勘違いかもしれませんけど)

そこでほとんどの処理はPDOで行い、bytea型のR/Wのみ
pg_*関数を使いたいと思っています。
(pg_escape_bytea()とか)


261:nobodyさん
08/12/18 09:45:27
「PDO」つったら、普通はPECL::PDOの意味?

262:nobodyさん
08/12/18 13:15:36
標準クラスのだろ

263:nobodyさん
08/12/18 17:34:01
URLの最後が文字列にするにはどうしたらいいですか?
具体的には
URLリンク(test)
のようなものを作るにはどうしたらよいですか?

264:nobodyさん
08/12/18 18:26:00
>>263
mod_rewrite

265:nobodyさん
08/12/18 19:28:42
>>264
ありがとうございました。

266:nobodyさん
08/12/20 19:15:51
テキストボックスでセッションに入れた後、確認画面で表示させてみると
「ソ」と「\」を入力した場合には「\」がどんどん追加増加されるのですが
原因がわかりません。

以上の問題の解決の仕方や、検索でSQL文やPHP言語やHTMLを入力された場合の
表示にバグを発生させない方法をご存知の方、どうか教えて頂けないでしょうか

267:nobodyさん
08/12/20 19:18:52
>>266
magic_quote_gpc

268:nobodyさん
08/12/20 22:06:37 maii3k3G
pagerで
1 2 3 4 5
ではなく
0 1 2 3 4
とゼロから始めるにはどうすれば良いでしょうか?

269:nobodyさん
08/12/20 22:21:47
>>267
ありがとうございました

270:nobodyさん
08/12/20 23:15:27
>>268
何のpagerだよ
質問の仕方にも程があるぞw

271:nobodyさん
08/12/20 23:16:59
PEARじゃね
俺なら迷ってる時間があったら丸ごと全部再実装する

272:nobodyさん
08/12/20 23:18:25
全部再実装とか、よっぽど暇なのか。

273:nobodyさん
08/12/20 23:18:35
結果を-1するかソースで-1すればいいじゃん

274:269
08/12/21 01:06:19
すみませんでした PEARのPagerです。
>>273さんのやり方で例えば
URLリンク(www.phpbook.jp)
このページではどこで-1すれば良いでしょうか?

275:nobodyさん
08/12/21 01:23:54
$naviの中かgetLinksメソッドの中

276:269
08/12/21 01:37:38
>>275
ありがとうございます。やってみます!

277:nobodyさん
08/12/21 12:44:01
PEAR::Pagerの出力はHTMLタグだからいじりづらいんだよ。
入力はこっちでいじればいいが、出力はgetLinks()の結果を正規表現とかで置換するしかない。
どっちかっつーといじりたいのは変数の方じゃなくて画面表示の方だろうしな。
インターフェイスはおおむね決まってる(パクる)から、残りの作業は実装だけだしな。

278:nobodyさん
08/12/21 12:51:30
別にソースいじればいいじゃん

279:nobodyさん
08/12/21 18:50:29
HTMLからURLで変数をもらいその変数でrequireするtxtファイルを変え
ページの管理を楽にしようと思っているのですが
馴れていない人がやると、まずいことはありますでしょうか

280:nobodyさん
08/12/21 18:58:59
ぐぐれ

281:nobodyさん
08/12/21 19:06:00
>279
txtをrequireする、の意味がまったく分からん。

ファイル名に「../../../」とか指定されると、ヤバいファイルを開かれる危険がある(ディレクトリ・トラバーサル脆弱性)。
総じて、予期しないファイルを開かれないような対策が必要になる。

数種類しかないなら、決まった文字列以外は許可しないようにする。
たくさんあってそうするのが面倒なら、「/」を入力されたらエラーにする。
hoge.txtを開きたいなら「hoge」の部分だけ入力させる、などの対策が必要。
ファイル名は自分で決められるんだし、[0-9a-Z-_]あたり以外の文字列が来たら問答無用でエラーになるようにするのが無難だな。

282:nobodyさん
08/12/21 19:34:34
>>281
ありがとうございます

HTMLで記述したファイルの拡張子をPHPに変え、
任意の部分にrequireでtxtファイルを読み込むと
メニューなどの管理が楽になると某サイトで読みました
それをメニューではなく内容に変えれば、
外観や増えていくページの管理が楽になるのかなってことで
初心者ながら、勉強もかねて質問をさせていただきました


自分の決めた文字列だけを対象にするということで

switch ((string)$page):
case 'log1':
case 'log2':



break;
default:
echo "ファイルが見つかりません";
endswitch;

こういった記述でよろしいのでしょうか

283:nobodyさん
08/12/21 19:45:19
勉強なら自分で調べろやボケ

284:nobodyさん
08/12/21 20:02:13
>>283
勉強は兼ねてるだけだろ?よく読めよ

285:nobodyさん
08/12/21 20:04:15
>>283
頼むからコテつけてくれ

286:nobodyさん
08/12/21 20:04:16
caseを使えば、たぶん安全。
コードがないとなんとも言えんわな。
やってみて、動くコードができてから来たほうがいい。
何もやらずにいきなり聞く姿勢は歓迎されんし。

287:nobodyさん
08/12/21 20:09:44
これでいいんでしょうか
どう書けばいいんでしょうか
じゃ勉強の糞の足しにもなりゃしねぇよカス

288:nobodyさん
08/12/21 20:12:29
>>287
おまえなんでこのスレにいんの?
いやむしろ何のために生きてんの?w

289:nobodyさん
08/12/21 20:27:01
>>287
スレの趣旨すら分からないなら口出すな

290:nobodyさん
08/12/21 20:38:48
>>283
努力します

>>286
中途半端でした、すみません

一応、問題なく動いたので評価をお願いしたいです

log001.txt
<b>表示されました</b>

index.html
<A Href="pagelog.php?log=log001">log1へ</A>

pagelog.php(head略)
<body>
<?php
$_GET['log'];

switch ((string)$log):
case 'log001':
case 'log002':
require($log.".txt");
break;

default:
echo "ファイルが見つかりません";
endswitch;
?>
</body>

291:286
08/12/21 21:01:57
>290
それが動く事に少なからず衝撃を受けた。

requireやincludeは、基本的にPHPプログラムを読み込むためのもの。
それだとたぶん、txtの中にPHPプログラムとして解釈可能な文字列があると、実行されてしまう。
単純にテキストファイルの中身を読み込む場合、file_get_contents()を使ったほうがいい。
動くなら問題ないっちゃあないんだが…

292:nobodyさん
08/12/21 21:07:15
って、ああそうか、よく考えたら動いて当たり前か。

「評価されると危ないので避けたほうがいい」という意見は変わんないけどな。
txtは自分が編集するから、安全といえば安全なのだが、無駄な危険の芽は摘んだほうがいい。
いつの日かうっかりtxtにexit();とか書き込んだらエラーになるし。

293:nobodyさん
08/12/21 21:39:17
>>292
うっかりが起きないとも限らないので
file_get_contents()について調べてみます。
勉強になりました。
ありがとうございました。

294:nobodyさん
08/12/21 21:45:08
>>290
まぁ、動いているので問題ないけど、
コーディングのマナーとしてはよろしくないかもね
・require等の中に変数は入れない方がいい
・比較するときにキャストして使う時にキャストしないというのは問題になることがある。

前者は設定によってはリモートでのコード実行につながるから
後者は比較が通っても、問題のある変数で実行する可能性があるから

295:nobodyさん
08/12/21 21:53:40
>>292
なんねーよ
echoと同じだ

296:nobodyさん
08/12/21 22:28:16
>>294
参考になります

まだまだ馴れてない部分が多いので基礎から覚えるために
やはり、書籍を一つ買おうと思います

297:nobodyさん
08/12/21 22:58:47
うむもう二度と来ないでくれ

298:nobodyさん
08/12/21 23:00:10
>>297
来なければ、いいだけじゃね。

299:nobodyさん
08/12/22 18:00:09
プログラミング初心者だけどPHP難しすぎて投げそう(';ω;`)
2週間位で基礎を学ぶには何したら良いんですか(';ω;`)ウォウォ…

300:nobodyさん
08/12/22 18:02:13
教えてくれそうな男に体でも売ればいいんじゃね

301:nobodyさん
08/12/22 18:06:33
もうウンコして寝込むしかねぇ・・・

302:nobodyさん
08/12/22 18:21:33
マニュアル嫁

303:nobodyさん
08/12/22 18:26:34
どっかから小さめなスクリプト落してきて、
「なんで?なんで?なんでこうなるの?」と思いながら丁寧に読んだり、
チョっとした機能を追加してみたりして、
いろいろもがくといいんじゃないだろうか。

304:nobodyさん
08/12/22 20:08:10
初心者が読めるようなちょっとしたスクリプトは大抵がPHP4時代の糞CGIで変な癖がついたりする罠。
グローバル空間にexplodeしてたりするスクリプトが多すぎる。

305:nobodyさん
08/12/22 20:09:08
explode→extract

306:nobodyさん
08/12/22 20:09:52
>>304
それがどうしたの。

307:nobodyさん
08/12/22 20:18:07
んなの読まなきゃいいだろ

308:nobodyさん
08/12/22 22:15:31
>>299
初めてのプログラミングがPHPで、配列/連想配列でこけたけど、しばらくしてからやってみたらすぐ理解できた。
あんまり根詰めないで気楽にまったりやるといいよ。
読むだけじゃなくて手も動かすといい。
サンプル丸写しして、いろいろ自分で弄ってみるんだ。
エラー出ればメッセージ出て何が原因かすぐわかるしね。

309:299
08/12/22 22:16:58 W3OrxKsT
>>303
どっかから?
どっかから?そのどっかから?はどっかから?
つまり僕が言いたいのはどっかから?なんです。お願いします。



310:299
08/12/22 22:39:19 W3OrxKsT
>>308
( ´_ゝ`)フーン
「どうもありがとう」って言っといてだってお兄ちゃんが
妹より

311:nobodyさん
08/12/22 22:51:01
で、どう書いたら>>304さんに変な癖がついてると言われない書き方なのよん
正しい書き方教えてくりっ

312:nobodyさん
08/12/22 22:59:57
PHPの公式マニュアルで「非推奨です」「危険です」と書かれている書き方を全て避ける。

313:nobodyさん
08/12/22 23:00:21
変な癖が付いてると言われなければいいのか

314:nobodyさん
08/12/22 23:04:23
>>304 みたいな奴には何を見せても重箱の隅つつかれるよね。
スルーでいいとおもう。

315:nobodyさん
08/12/22 23:15:14 zcPu3Ss9
PHP4用の開発ノウハウってのがあって、これは今となってはバッドノウハウ。
PHP5のみサポートの有名なFWで開発してみて、動いたらソースを読むのが吉

316:nobodyさん
08/12/23 00:46:09
ノウハウ以前のレベルだろうに

317:nobodyさん
08/12/23 02:41:59
いまだに共用鯖じゃPHP4主流だもんなあ。

318:nobodyさん
08/12/23 03:56:34 207JnJAg
JavaScriptの"for〜in"構文をPHPで書くとどうなるのでしょうか
PHPはあまり分らないもので

319:nobodyさん
08/12/23 04:00:08
>>299
漏れは先にperlを2ヶ月やってから
PHPに移動した。

320:nobodyさん
08/12/23 04:13:36
>>318
マニュアル

321:nobodyさん
08/12/23 13:04:10
>>318
$array=array('name'=>'aki','age'=>23,'karesi'=>'futsu');
foreach($array in $key=>$item) {
echo "$key $item\n";
}

322:nobodyさん
08/12/23 13:54:23
単にforeach文て言えば済むじゃねぇかw

323:299
08/12/23 17:39:32
>>319
何でですの?教えてごらんなさい

324:nobodyさん
08/12/23 17:43:37
ご先祖様だから

325:nobodyさん
08/12/23 18:14:25
ご先祖様はCだろw

326:nobodyさん
08/12/23 18:37:45
そこまで戻る必要は無い

ってか、Cは却って難しい

327:nobodyさん
08/12/23 20:41:02
SQLite3ってPDOってやつを使ってアクセスするんですよね
マニュアルにあるSQLite3ってやつとは何が違うんでしょうか


328:nobodyさん
08/12/23 20:45:19
別にPDOじゃなくてもアクセスできるけど

329:nobodyさん
08/12/23 21:06:01
なるほど
ググってもPDOのことしか見当たらずそこからマニュアルに流れ着いて
SQLite3文?って物があるのを知ったのでどういった違いがあるのかなと思ったのですが
どっちを使っても構わないってことでしょうか

330:nobodyさん
08/12/23 21:06:50
うん

331:nobodyさん
08/12/23 21:19:15
わかりました
どちらがいいのかはわかりませんが、せっかくなのでSQLite3も使ってみます

332:nobodyさん
08/12/23 21:44:59
DBっていうのは、MySQLとかSQLiteとかPostgreSQLとかOracleとか、似たようなのがたくさんある。
元々はそのそれぞれに対して、よく似てるけどちょっとずつ形の違う関数がいっぱいあった。
で、それが不便だからって事で、「同じ書き方でどれにでもアクセスできるような仕組みを作ろう!」となった。
それがPDO。

PDOを使って書かれたプログラムは、DBがSQLiteからMySQLに変わっても、PDOクラスをnewしてるところだけ書き換えれば普通に動く。
また、PDOひとう覚えれば、どのDBでも使えるようになる、というメリットもある。

333:nobodyさん
08/12/23 21:50:29
普通DSNを書き換えるんだろ

334:nobodyさん
08/12/23 21:50:51
じゃあ自由度は下がるってことでFA?

335:nobodyさん
08/12/23 21:57:29
ひとう → ひとつ

これだけだとバランス取れないので、一応デメリットも。
全DBでなるべく共通の操作を提供する、という仕組みのため、一部のDBに固有の機能が使えなかったりする事がある。
よくある話だと、MySQLの持続的接続が使えなかったりな。あと、パフォーマンスでもPDOは若干劣る。

個人で使う最大のメリットは、プリペアドステートメントのサポートだと個人的に思う。
SQLインジェクションの危険性をほぼゼロにできる上に、プログラムの可読性も上がる。

336:nobodyさん
08/12/23 21:58:54
> よくある話だと、MySQLの持続的接続が使えなかったりな。

それってパフォーマンスに影響するんだっけ?ベンチとった?

337:nobodyさん
08/12/23 22:14:41
PDOは文字コード変更用の関数がないからなー……。
SET NAMES 危ないって聞くし。

338:335
08/12/23 22:49:27
>334
んな事いったら、sqlite関数やmysql関数を使ってしまえば、将来のDB変更の自由度が失われるわけだが。
俺は自由度や性能云々以前に、DB依存のコードがそこら中にあるのを気持ち悪いと感じる。そんなものはどっかで隠蔽されるべきだ。
(実際問題、DBを置き換えるなんて事態は普通ないだろうけどな)

339:nobodyさん
08/12/23 22:58:50
>>338
あたまでっかちおっさんどっかいけよ

340:nobodyさん
08/12/25 05:23:16
>>339
335, 338の発言を理解できないなら発言するな。
339的な発言は、このスレの害虫。

341:nobodyさん
08/12/25 05:57:49
>>PDOを使って書かれたプログラムは、DBがSQLiteからMySQLに変わっても、
>>PDOクラスをnewしてるところだけ書き換えれば普通に動く

SQL文自体がDB固有になるだろうから、現実的にそれはあり得ないんじゃないか?
(標準SQLだけで書かないでしょふつう)

俺的なPDOのメリットは、DB関連関数をどのDBにも共通で使えるため開発の学習量を
減らせること。これはソースコードの可読性の向上、メンテ性の向上にもなる。


342:nobodyさん
08/12/25 18:01:58
標準SQLだけで書かないのが普通という前提なら、共通で使える部分の学習量なんてほとんど0じゃないか?



343:nobodyさん
08/12/25 20:20:04
DBを変更する予定があるとき、
単純にPDOだけで実現できるわけじゃぁないが、
PDOで標準SQLだけを使うか、
PDOよりも抽象化したFWを使うわけで、
素の関数を使うよりは汎用性が高い。

どっちの言うことも大きく間違っちゃいないわな

344:nobodyさん
08/12/29 23:28:23 hqhRjo69
オブジェクトのメソッド名とプロパティ名の一覧ってどうやって取得したらいいんでしょうか?

345:nobodyさん
08/12/29 23:37:49
リフレクション

346:344
08/12/30 12:21:58
>>345
有り難うございます
おかげで3週間越しの問題が解決しました
本当に有り難うございます

347:nobodyさん
08/12/31 11:35:34
phpの質問かJavaScriptの質問か迷ったのですが、ボタン(button)がクリックされた時に
確認用のダイアログを出すにはどうすれば良いでしょうか?


実行しますか?
【OK】 【キャンセル】

※ダイアログを表示し【OK】が押された場合のみ
submit処理を行ういたいです。

348:nobodyさん
08/12/31 11:47:59
>>347
超JavaScript
ググれば死ぬ程出てくる
一番最初に引っかかったページ URLリンク(promptbox.jp)

お年玉くれw

349:nobodyさん
08/12/31 12:38:49
>>348
ありがとうございます。
でもお金ないです。。。

350:nobodyさん
08/12/31 12:39:59
つI

351:nobodyさん
08/12/31 13:25:47
つD 御縁がありますように。

352:nobodyさん
08/12/31 13:30:12
っH

353:nobodyさん
08/12/31 16:42:47
htmlかphpかわからないのでこちらで質問です。
formのプルダウンメニューの値を送信ボタンで渡すのはわかるのですが
プルダウンで選択しておいてリンクをクリックしたときにその値を一緒に
送るような使い方はできるのでしょうか。
ようはメニューでレイアウトの種類を選択して、リンク先をそのレイアウトで
表示させるといったことをしたいのですが。


354:nobodyさん
08/12/31 17:24:24
php関係無し

355:nobodyさん
08/12/31 18:25:42
そうですか、phpで操作できたらよかったんですが。
その後ググってるとJavaScriptでメニューの値が取得できるようですので
これとonClickだかでどうにかできるのかなってことでJSはわからないんですが
少し勉強してみようとおもいます
スレ違い失礼しました。

356:nobodyさん
08/12/31 18:29:31
JavaScriptのほうが最適ではあるだろうけど
工数増えるけどPHPでできないこともない
まぁガンガレ

357:nobodyさん
08/12/31 18:57:38
素直にやるならJavaScriptだろうな。
プルダウンを変更した時点でリンク先を書き換えるか、クリック時にフォームのsubmitイベントを呼び出すか。

358:nobodyさん
08/12/31 18:59:09
>>353
リンクにonclickといれてsubmitさせてやればいい

359:nobodyさん
08/12/31 19:01:23
俺ならselectが変更された時点でJavaScript経由でcookieに表示設定を放り込む。
一度選択したら2回目以降は覚えていて欲しいだろうからな。

360:nobodyさん
08/12/31 19:49:56
URLに数字等を入れる事により1つのphpページ画面をそのパラメータによりページの内容を
変えたいと思います。

どうすれば同一phpページをパラメータURLを指定する事により表示内容を変更する事が出来ますか?

URLリンク(www.test.php=1234)<)




361:nobodyさん
08/12/31 19:52:15
httpのクエリストリングから調べろ

362:nobodyさん
08/12/31 20:01:42
>>360
URLリンク(www.example.com)
こういう形なら$_GET['page']で1234が取得できるから
これを使って切り替えれば良い
ただしpage=1234の1234は誰でも値を入れる事ができるから
チェック等は必ずするように

363:360
08/12/31 20:14:49
>>361
ヒントをありがとうございます。

>>362
詳しくご解説頂きありがとうございました。
早速「ガキ使い」を見ながらプログラミングしてみようと思います。

364:nobodyさん
09/01/03 12:58:05
phpでシステム開発をする場合には通常次の階層の直下に*.phpファイルを置いて
動作確認を行いますよね?
  C:\Program Files\Apache Software Foundation\Apache2.2\htdocs

しかし、1つのPCで複数サイトの開発を行う場合には、次の用にフォルダを切った上で
開発を行っているのですが、この方法は正しいですか?

  C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\site1
  C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\site2

※要するに動作確認をする場合には次の用にしなくてはならないので。(まっ、これしか方法は無いかな?)

  URLリンク(localhost)
  URLリンク(localhost)

365:nobodyさん
09/01/03 13:04:40
hosts にサイト名追加して、VirtualHost つかうとかもあるな。

366:nobodyさん
09/01/03 13:12:49
俺はZF使ってるからmod_rewrite

367:nobodyさん
09/01/03 13:20:37
使ってれば偉くなった気になるんですね。わかります。

368:nobodyさん
09/01/03 13:31:35
お前は何を言ってるんだ

369:nobodyさん
09/01/03 13:31:42
俺も毎日ちんこ使ってるので偉くなった気になっています。

370:nobodyさん
09/01/03 13:45:12
>>365
LinuxじゃないとVirtualHostは使えないのではないですか?
それともWindows環境でも出来るのですか?

>>366
取り敢えず、
  URLリンク(tech.bayashi.net)
のサイトで勉強してみようと思います。

実務でphpを使ったWEBサイトの開発とかした事が無いのですが、
実務でphpで開発を行う場合にテキストエディタだけを使っているプロジェクトは少ないですか?

あと、複数サイトの開発を1台のPCで行う場合に、>>364みたいな感じで行うのは
能率が悪いでしょうか?

371:nobodyさん
09/01/03 13:53:14
>>370
べつにWindows環境だってIPベースでも名前ベースでもできるさ

372:nobodyさん
09/01/03 13:54:52
Apacheの話題はスレ違い

373:nobodyさん
09/01/03 13:57:42
>>370
人の話を疑うぐらいなら聞くな >>364の形で運用するわけじゃないんならダメだろ。 >>365がFA

374:nobodyさん
09/01/03 14:00:48
おれは常にテキストエディタ(Vim)と過去の開発資源(ライブラリ)だけで事足りてる


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5363日前に更新/180 KB
担当:undef