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

【PHP】ID出さなくても質問OKなスレ【初心者歓迎】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/02/03(火) 01:09:36ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
0313nobodyさん2009/04/23(木) 18:39:15ID:???
エロサイトの宣伝か・・・
0314nobodyさん2009/04/23(木) 19:29:14ID:???
あー確かにエロサイトの宣伝と思われても仕方なかったなw
でも他にいいサイト思い付かなかったんだよ。
一般系のデータベースサイトで似たような構成のとこあったら教えてもらえると嬉しい。
知人に聞こうと思ったりもしたんだがここのエロ系データベースサイトくらいしか思いつかなくて聞けなかったんだわ
話は戻るけど>>312さんの言うとおりタグの部分(クリックすると一覧が出る)ところの作り方です
0315nobodyさん2009/04/23(木) 19:56:26ID:???
>>314
多対多の結合だからちょっと難しいかもね。

データの件数にもよるが、真面目につくろうとすると↓のような感じで3つのテーブルが必要。
books(id、 name)

tags( id、 name)

books_tags( book_id、 tag_id)

あとはセレクト文でごにょごにょ。
0316nobodyさん2009/04/23(木) 20:07:23ID:???
>>314
ドカントに広告出してる三流風俗店のHP管理乙
0317nobodyさん2009/04/23(木) 21:14:05ID:???
>>314
ありがとう、検討してみる
俺はもうちょっと勉強が必要だな
0318nobodyさん2009/04/23(木) 23:21:30ID:???
タグ名までid化する必要性って、あんまりない気がする。
0319nobodyさん2009/04/24(金) 01:27:59ID:???
なんで?
0320nobodyさん2009/04/24(金) 04:39:48ID:???
タグIDの代わりにタグ名そのまま使っても大差ないから。

っていうか、自分なら、ブック名も変更されたりかぶったりする可能性がないなら、
こっちもID化しないかなぁ。
データベース直接見た時にラクだから。

大概はインデックス貼っとけばパフォーマンスは、確保できるし。
0321nobodyさん2009/04/24(金) 23:37:47ID:???
タグ名を自然キーとしてIDにするという話と、ID化しない=主キーのないテーブルを作るという話とどっちなんだ?
0322nobodyさん2009/04/24(金) 23:42:55ID:???
うんID化とかいう俺俺用語は本質を理解してなさげが伝わるので微妙
0323nobodyさん2009/04/27(月) 15:32:30ID:???
下のソースを実行すると画像が1個しか表示されません。
readfileの部分をHTMLタグのimg srcにするとちゃんと全部表示されます。
1個目は表示されているので間違ってはいないと思いますが、
大して理解出来ていない私にどこに問題あるのか突っ込みいれてもらえないでしょうか。

header("Content-type: image/gif");

// 画像表示
for($i = 1; $i < 10; $i++){
$num = substr($count , $i , 1);
readfile($num . ".gif");
}
0324nobodyさん2009/04/27(月) 15:41:55ID:???
あたりまえだろ
最終的にどうしたいのか
03253232009/04/27(月) 15:46:02ID:???
複数の画像をHTMLに呼び出したいです。
>>323だとindex.htmlに表示することが出来ないのでHTMLに<img src〜といった形で
呼び出せるようにしたいと考えてます。
iframeも考えたのですがデザイン上それがダメということでどうにか出来ないものかと思ってます。
0326nobodyさん2009/04/27(月) 16:00:26ID:???
複数画像分だけimg src=〜でいいじゃない
03273232009/04/27(月) 16:17:06ID:???
>>326
画像は日によって表示されるものがかわるので
HTMLにimg srcで固定してしまうわけにはいかない状態です。
またHTMLにimgタグでphpを指定しても1個しか表示されないので
複数画像分の指定がどのようにすれば出来るのかが分からない状態となっております。
0328nobodyさん2009/04/27(月) 17:12:23ID:???
何か疲れるなあ

変更できないhtmlファイルの中に可変個の画像を置きたい、ということでいいのか?
03293272009/04/27(月) 17:14:43ID:???
>>328
はい。
説明がへたくそで申し訳ないです。
0330nobodyさん2009/04/27(月) 17:31:11ID:???
img src=〜を書き出すPHPをincludeすればいいんでないの
0331nobodyさん2009/04/27(月) 17:39:04ID:???
まあどっちにしても1個のIMGタグで複数画像を表示するのは無理。

方法としては、複数の画像をPHPで1個にくっつけて出力。
IMGタグを複数書く手段を考える。

のどっちか。
IMGタグをPHPの出力で複数にしつつ、SRC="xxxx.php?param=1"とかやればいいように思うけど
03323272009/04/27(月) 17:42:52ID:???
HTMLにincludeとなるとSSIのincludeで埋め込むという事でしょうか?
実際に試してみましたがうまくいかないようです。
今だに>>323のソースで画像が1個しか表示されない理由が不明なのでがんばってみます。
0333nobodyさん2009/04/27(月) 17:54:20ID:???
>>332
includeについては、HTML側を.phpにしてincludeすれば良いだけよ

PHP入門サイトを適当に流し読みして、
せめて何が出来るのかを理解してみたほうがよい
0334nobodyさん2009/04/27(月) 18:06:26ID:???
>>332
>今だに>>323のソースで画像が1個しか表示されない理由が不明なのでがんばってみます。

コーラを飲んだらゲップがでるるくらいあたりまえなんだが
HTML自体わかってないのか
0335nobodyさん2009/04/28(火) 05:11:21ID:???
Googleとかで適当に検索して ”この先を見るにはログインする必要があります”
ってサイトに巡り合ったとします。
それでGoogleにあるキャッシュってを押しても中身を見れず
ログインする必要がありますって言われるのはなんでですか?
GoogleのROBOTがそのページを収集してると思うんですけど
PHPでは何の関数を使ってるんですか?
0336nobodyさん2009/04/28(火) 11:29:29ID:???
はい?
上:クローラーがログインできるわけないから
下:GoogleがPHPの何の関数を使ってるかということ?
0337nobodyさん2009/05/01(金) 17:40:52ID:???
質問です。

foreachで値を.","で区切って

 12,14,33,11,18,

ってなるまではいいのですが、最後の値18の次の","は消すことできますか?

 12,14,33,11,18

にしたいのですが、お願いします。

0338nobodyさん2009/05/01(金) 17:58:39ID:???
implode(',', $array)とか
0339nobodyさん2009/05/01(金) 18:02:40ID:???
>>338
解決しました。thank you so much
0340nobodyさん2009/05/02(土) 11:01:45ID:V+mNLWbo
PEAR:Net_IMAPで、
PHP上で生成したメールメッセージをGmailのINBOXに保存したいんだけど、
mail_composeとかmove関数が実装されてない?
0341nobodyさん2009/05/02(土) 11:36:05ID:V+mNLWbo
自己レス。できた。
0342nobodyさん2009/05/02(土) 17:12:13ID:???
PECLで魅力的な関数があるけど
みんなPEARとか使ってんの?
0343nobodyさん2009/05/02(土) 21:20:35ID:+TEZ3ZO9
お願いです。教えてください。
smartyで年月選択のセレクトボックスをつくりたいのですが、リストの内容を、「現在の年からさかのぼって30年」というふうにしたいのです。
また、それとは別に「現在年から3年後」までのリストも表示したいです。
どこに何をいれれば表示できるのかさっぱりわかりません。
よろしくお願いします。

Apache 2.2.11
MySQL 5.1.33
PHP 5.2.9 です。
0344nobodyさん2009/05/02(土) 21:54:01ID:???
誘導厨
↓
0345nobodyさん2009/05/02(土) 22:47:23ID:???
>>343
思いっきり標準であるが
http://www.smarty.net/manual/ja/language.function.html.select.date.php
0346nobodyさん2009/05/03(日) 05:25:43ID:???
問い合わせフォーム等を、ググりまくりながらギリギリコピペなしで自作できるようになったレベルの準初心者です
今参考にしてるソースに一見簡単そうなのに未知の記号が出てきて、完全読解不能に陥ってます
ググりたいんですが何でググればいいか手がかりがなくてちょっと質問させてください

$number = ($_GET['n']) ? $_GET['n'] : count($r->getItems());

この行の「?」と「:」と「->」はいったいPHPの何を勉強すれば出てくるんでしょうか
この行が何をしてるのかわからないばっかりに変にいじってAnhttpdが強制終了しまくりますw
0347nobodyさん2009/05/03(日) 06:31:10ID:???
三項演算子とアロー演算子
03483462009/05/03(日) 07:49:18ID:???
ありがとうございます
ひょっとして三項演算子ってifとelseでいいんじゃとか思うのは素人だからですね・・・
0349nobodyさん2009/05/03(日) 10:06:03ID:???
>>345
ありがとうございます。
実はここに書き込む前にこのページを検索して見つけてはいたのですが、どうやって記述すればよいのかまったくわかりません。
ためしにsmartyのなかに{html_select_date}とかいてみましたがそのまま出てきてしまいました 汗
まったくのど素人で申し訳ないのですがよろしくお願いします。

0350nobodyさん2009/05/03(日) 10:30:25ID:???
>>349
別にif-elseでいいよ
三項演算子は可読性が悪いから
会社とかだと大抵コーディング規約で禁止されてる
変数に入れられるのは結構いい場面もあるけどね
例にもあるように$_GETや$_POSTなんかをセットするときには便利
03513502009/05/03(日) 10:31:06ID:???
↑アンカーミス
>>348宛ね
0352nobodyさん2009/05/03(日) 10:37:40ID:???
三項演算子なんてほとんどの言語に用意されてるわけだしわざわざ禁止する会社があるのか?
0353nobodyさん2009/05/03(日) 10:43:38ID:???
三項演算子を入れ子にされるとわかりにくくなることはあるなw
0354343=3492009/05/03(日) 10:57:52ID:???
なんとか試行錯誤して表示することができました。
これって平成〜年とか昭和〜年とか表示するドロップダウンリストをつくることはできないのでしょうか?
0355nobodyさん2009/05/03(日) 12:40:21ID:???
>>352
グループで開発するってのはそういうことなんだよ
0356nobodyさん2009/05/03(日) 13:04:05ID:???
複数人で作業するときとかスクリプトを縮小化とき以外に三項演算子使うやつはバカ
0357nobodyさん2009/05/03(日) 13:21:09ID:???
w
0358nobodyさん2009/05/03(日) 15:01:30ID:???
そろそろ話し控えないと参考演算子クンが荒らしに変貌しそうだよ!
0359nobodyさん2009/05/03(日) 15:06:48ID:???
参考演算子てwwwwwww
0360nobodyさん2009/05/03(日) 16:44:20ID:???
三項演算子を規約で禁止しちゃうような会社はいろんな意味でダメだろうなぁって気はする。
まぁバカでも組めるものを組ませるって考えはあるんだけどさ。
0361nobodyさん2009/05/03(日) 16:56:31ID:???
>>360
残念
社会では三光演算子は嫌われます
0362nobodyさん2009/05/03(日) 17:00:05ID:???
>>358
残念
社会では三光演算子は嫌われます
0363nobodyさん2009/05/03(日) 17:06:02ID:???
確かにドカタの監督からは嫌われるだろうね。
0364nobodyさん2009/05/03(日) 21:25:24ID:???
CSVにデータを書き出すスクリプトで、一行終わったら改行が入るようにしているんですが、
処理の途中で止まって(とめて)改行が行われないことがあります(あるとします)。その時に、ファイルの最後に
改行が入ってないことを検知して、改行をした上で新しいデータを次の行から作りたいんですが、
改行の有無はどうやったら検知できますでしょうか?今使っているエディタ(EmEditor)では
「↓」という記号で改行がマークされ、ググったりしましたが、どうしていいものやらよく
わかりません。


1,2,1,2,3,2[改行]
1,1,1,2,3,3[改行]
1,1,2,[処理ストップ、改行なしの行]  <-- [改行]が無いことを検知して改行追加したい

常に改行を冒頭に入れるようにすると、データのない行ができて、のちのち面倒なので、
それは避けたいと思っています。
0365nobodyさん2009/05/03(日) 21:31:37ID:???
\n
03663642009/05/03(日) 21:43:26ID:???
fseek($file, -4, SEEK_END);
$string = fgets($file, 1000);
var_dump($string);

dumpしても改行部分は空白になりますよね。
例えば、検索かけて、"\n"でマッチするんでしょうか?
03673642009/05/03(日) 21:56:26ID:???
マッチしますね。失礼しました。m(._ _)m
0368nobodyさん2009/05/04(月) 13:26:07ID:0LqkTRhF
POSTで送った引数がIE6,7では表示されない
firefoxでは表示されてる。。。
php.iniの設定変更がいるのですか?
0369nobodyさん2009/05/04(月) 13:40:32ID:???
いらん
0370nobodyさん2009/05/04(月) 13:53:15ID:0LqkTRhF
ある掲示板でvariables_orderを「EPGS」にすればとありましたが、
それでも表示されないまま。
HTMLやCSSの問題ですか?
0371nobodyさん2009/05/04(月) 14:09:38ID:???
>HTMLやCSSの問題ですか?
それ疑う前に
ソースみて反映されてるかどうか確認してみなよ
0372nobodyさん2009/05/04(月) 14:22:28ID:0LqkTRhF
list.phpからdetail.phpにsubmitしてます。
ソースは以下です。
「list.php」
<html>
<body>
<form action="detail.php" method="POST">
<input type="image" src="img/detail.gif" name="submit" value="0001">
</form>
</body>
</html>
「detail.php」
<html>
<body>
<p>詳細情報</p>
<?php
print "submit:".$_POST["submit"]."<br>";
?>
取得情報:
<?php
print $_POST["submit"]."<br>";
?>
</body>
</html>
0373nobodyさん2009/05/04(月) 14:34:18ID:???
IEでは位置情報しか送られん
0374nobodyさん2009/05/04(月) 15:14:34ID:0LqkTRhF
解決しました
type="image"でなく、hiddenでPOSTしたらうまくいきました
phpinfo()で表示された値は位置情報だったんですね
0375nobodyさん2009/05/04(月) 15:15:04ID:???
phpinfoで出るっけ?
0376nobodyさん2009/05/05(火) 21:05:16ID:???
DBのログを取りたいのですがどうすればいいですか?
よく不正アクセスの痕跡を見つけた と言ってますが・・・
0377nobodyさん2009/05/06(水) 12:17:28ID:???
二つの文章があります

(☆)(★)(◇)

(☆)(★)(◇)

(★)の部分は文字列、文字数共に不確定で1,2共に全く違う文章です。
(☆)(◇)の部分は文字列、文字数共に不確定ですが1,2共に同じ文章です

(★)の部分のみを切り取りたいのですがどうすればいいでしょうか?

0378nobodyさん2009/05/06(水) 12:18:14ID:???
すみません番号を振るのを忘れていました

(☆)(★)(◇)

(☆)(★)(◇)

↓

1.(☆)(★)(◇)

2.(☆)(★)(◇)
0379nobodyさん2009/05/06(水) 12:26:10ID:???
>>377
意味がわからん
0380nobodyさん2009/05/06(水) 12:27:01ID:???
>>378
http://pear.php.net/package/Text_Diff/
こんなのとか
0381nobodyさん2009/05/06(水) 12:27:14ID:???
>>379
文章が二つあってどこが変更されたか検知するプログラムを作る場合どうすればいいでしょうか
0382nobodyさん2009/05/06(水) 12:28:09ID:???
>>380
ありがとうございます!!こんな感じです
0383nobodyさん2009/05/06(水) 13:20:24ID:???
>>380
やっぱりこれじゃダメでした
改行していない場合同じ文字列の部分も違う物として取得されてしまいました

改行していない文章の差分を取得したいのですが無理でしょうか・・・

たとえば

aaabbccc

axxaabbbccac

の二つの文章があった場合
xxとbとaを取得したいのです
0384nobodyさん2009/05/06(水) 13:31:31ID:???
すみませんやっぱり大丈夫かもしれませんw
全て1文字ずつの配列にしたらしっかり判定されました
お騒がせしてすみません
0385nobodyさん2009/05/06(水) 15:01:48ID:???
PDOを使って
MYSQLからデータ表示するコードください?
0386nobodyさん2009/05/06(水) 15:06:38ID:???
ttp://jp2.php.net/manual/ja/pdo.query.php
0387nobodyさん2009/05/06(水) 15:36:58ID:???
>>386
ありがとうです
あと、実行時にApache HTTPサーバーと表示させ落とされます
どうすればいいですか?
0388nobodyさん2009/05/06(水) 15:42:54ID:???
Apache のログ見ろよ
0389nobodyさん2009/05/06(水) 16:04:07ID:???
>>388
! ありがとうです
なんとかできそうです
0390nobodyさん2009/05/06(水) 16:48:50ID:GdRs26+o
外部サイトからLZHファイルを取得して解凍、内容を取得したいのですが、うまくいきません・・・

$url = 'xxxxx'; //ファイルのURL

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);

$filename = $path . 'test.lzh';

file_put_contents($filename, $data);

exec('lha e ' . $filename);

こんなかんじなのですが、
ファイル取得まではできているのですが、
解凍ができません;

どこがおかしいのでしょうか?
0391nobodyさん2009/05/06(水) 16:54:27ID:???
>>383
できる
0392nobodyさん2009/05/06(水) 17:07:04ID:???
>>390
lhaにはパス通ってるの?
execの引数でフルパスで指定してみては
03933902009/05/06(水) 17:32:18ID:GdRs26+o
>>392
レスありがとうございます。
展開先を指定したらちゃんと解凍できました;
スレ汚しすみません;;

せっかくなので聞きたいのですが、
外部からのファイル取得方法は上記でよいのでしょうか?
いちど変数に格納してfile_put_contentsで書き込むというのがなんだか回りくどい気がするのですが、
ほかに方法がありましたら教えてください!
0394nobodyさん2009/05/06(水) 17:55:33ID:???
そらまあローカルの実ファイルが無いと無理だからなあ。
組み込んでメモリストリームから、、、とかはこのスレの範囲外かな
0395nobodyさん2009/05/06(水) 19:39:47ID:???
一旦、全部メモリ中に展開するってのはどうなんかね。
fread/fwriteを繰り返した方がいい気もするが。
0396nobodyさん2009/05/06(水) 23:04:45ID:XF4iBoH0
MySQLでテーブルを作ったとき確認する方法は
PHPで記述する場合mysql_resultでいいのでしょうか?
0397nobodyさん2009/05/07(木) 07:02:22ID:???
$data = array(
'hoge' => 'hoge',
'fuga' => 'fuga'
);

$data = array(
0 => array(
'hoge' => 'hoge',
'fuga' => 'fuga'
),
1 => array(
'hoge' => 'hoge',
'fuga' => 'fuga'
)
);

このような配列を、前者のタイプか後者のタイプか判定したいのですが、
どのような方法が考えられますでしょうか?

よろしくお願いします。
0398nobodyさん2009/05/07(木) 10:40:06ID:???
前者のタイプか後者のタイプかってどういうこと?
0399nobodyさん2009/05/07(木) 11:34:01ID:???
2次元配列かどうかってことだろ?
04003972009/05/07(木) 12:28:43ID:???
>>398
>>399

説明が足りず申し訳ありません。
2次元配列かどうか、というか、
1次元目(?)が連想配列なのか、単純な配列なのかを調べたいのです。

現在は、

if ( isset ( $data[0] ) )
だったら、後者というように判定しているのですが・・・
0401nobodyさん2009/05/07(木) 12:35:38ID:???
ループでキーに数値以外が含まれてるかどうか判定するだけじゃん
プログラマーならすぐ思いつくと思うが・・
0402nobodyさん2009/05/07(木) 12:45:30ID:???
>>400
多分、PHPには「単純な配列」って無いんじゃないかな。

http://php.morva.net/manual/ja/language.types.array.php
>PHP の配列は、実際には順番付けられたマップです。マップは型の一種で、 値をキーに関連付けます。
0403nobodyさん2009/05/07(木) 13:11:43ID:???
>>402
だからキーが数値のみで
構成されているかどうかを
調べたい、ってことだろ?

専用関数あるだろ。
0404nobodyさん2009/05/07(木) 13:25:21ID:???
>>403
それは質問者が考えればいいことだし。
ただ、「普通の配列」ってのは無いってだけで。
歯抜けな配列も作れるし、キー値だけでチェックするのもかなりびみょー。

ところで配列のキー値がすべて整数かチェックする専用関数って何?
ざっと見た感じ見当たらないんだけど。

http://php.morva.net/manual/ja/book.array.php
04053972009/05/07(木) 13:25:50ID:???
>>401
それはもちろん思いついたのですが、
もう少しスマートな方法はないかと思いまして・・・


return array_keys($array) !== range(0, count($array) - 1);

こんな方法があるのを知ったのですが、
これだと、

$array(
0 => 'hoge',
2 => 'fuga',
3 => 'piyo'
);

のように、配列が歯抜けになっている場合に一致しなくなりますし・・・

>>403
専用の関数とは何のことでしょうか??
0406nobodyさん2009/05/07(木) 13:38:16ID:???
きみの言うスマートな方法ってのは明確で解かりやすいというより
制御構造使わないような方法のこと?
0407nobodyさん2009/05/07(木) 18:30:34ID:???
クラスってのがなかなか理解できません
どなたか詳しく解説してくれませんか?
0408nobodyさん2009/05/07(木) 18:37:19ID:???
どこが分からんの?
0409nobodyさん2009/05/07(木) 22:32:52ID:???
>>407
いいよ。
0410nobodyさん2009/05/07(木) 23:13:30ID:???
このスレの先輩方はhtmlは得意でしょうか?
0411nobodyさん2009/05/07(木) 23:28:15ID:???
おうよ
0412nobodyさん2009/05/07(木) 23:31:35ID:???
ほんとかよwwwwwwwwwwwwwwwwwww
■ このスレッドは過去ログ倉庫に格納されています