トップページ⇒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分以内に立たない場合、宣言してから立てたい人が立てること。
0232nobodyさん2009/04/12(日) 03:07:15ID:???
そーだったのかー
0233nobodyさん2009/04/12(日) 03:21:17ID:???
>>231さん
ありがとうございます。
「.」と「..」もディレクトリであり「ファイル」の一種だったんですね。
勉強になりました。ありがとうございました。

0234nobodyさん2009/04/12(日) 18:40:25ID:2x7CLOXE
smartyで、$test1/$test2とかの計算方法は出来るんですが、

例えば
($test1/($test2+$test3)*$test4)といった、中カッコや大カッコを使った計算ってどう記述すればいいんでしょうか?

初心者ですみません。
0235nobodyさん2009/04/12(日) 18:56:00ID:???
じゃ初心者でなくなってください
0236nobodyさん2009/04/12(日) 19:01:23ID:???
>>235は初心者だから回答できないだけですよ

>>234
smarty使ったことないからしらねえけどそれで動かないの?
0237nobodyさん2009/04/12(日) 19:04:37ID:???
専用スレで聞けばいいのにね
0238nobodyさん2009/04/12(日) 19:49:53ID:???
>>236
できないから聞いてんだろお前ほんとアホだなぁ
0239nobodyさん2009/04/12(日) 20:58:55ID:???
なんで使ったこともないのに回答しようとするの?
0240nobodyさん2009/04/12(日) 20:59:28ID:???
自己紹介乙
0241nobodyさん2009/04/12(日) 21:34:22ID:???
>>239
おまえは?
0242nobodyさん2009/04/13(月) 00:38:00ID:???
初心者向けの解説本で
Smartyとか紹介してるのってなんなの?

初心者にいきなりsmartyっていったって
わかるわけないじゃん。
0243nobodyさん2009/04/13(月) 00:40:49ID:???
ぶっちゃけPEARって便利なの?
やっぱり俺ライブラリが一番使いやすいのだが
0244nobodyさん2009/04/13(月) 00:56:42ID:???
一番使いやすいの使えばええやんとしか答えようがない
0245nobodyさん2009/04/13(月) 01:03:16ID:???
同意
0246nobodyさん2009/04/13(月) 02:13:26ID:???
自分、PEAR って未だによく分かってないんだけど、あれってコンパイラが要るの?
Windowsで APC使おうとしたとき、VC++6.0 が要るとかで、結局断念したんだけど。

以前はpecl4win でバイナリ持ってきたんだけど、サイト再構築するとか言って、ずっと死んだままだし。
0247nobodyさん2009/04/13(月) 02:14:38ID:???
お前は何を言ってるんだ
0248nobodyさん2009/04/13(月) 02:15:36ID:???
PEARはコンパイラはいらないよ
0249nobodyさん2009/04/13(月) 02:18:27ID:???
ごめん、PEARとPECLは別物か。
すんません。
0250nobodyさん2009/04/13(月) 02:45:29ID:???
↑
馬鹿発見
0251nobodyさん2009/04/13(月) 20:35:30ID:???
PEしかにてないじゃん
0252nobodyさん2009/04/13(月) 23:24:39ID:???
DBから取得した値を可変の配列に格納しようと思ってるのですが、
.NetのArryalListに似たコードはありますか?
0253nobodyさん2009/04/13(月) 23:25:34ID:???
マルチ失せろ
0254nobodyさん2009/04/13(月) 23:54:58ID:???
>>253
いや、別スレに投稿したのは俺だけど>>252はリアルに俺の投稿じゃないよ。
誰かがコピペしてるって
0255nobodyさん2009/04/14(火) 01:30:13ID:???
回答もらうと態度でかくなるんですね
0256nobodyさん2009/04/19(日) 19:33:07ID:gK+IYAFS
PHPでカウンター作ったんですが、カウントの記録はcount.txtといったファイルに記述してます。
ですのでファイルが破損したらアウトになるわけなんですが、破損防止として出来る対策というのはどういったものがあるのでしょうか?
0257nobodyさん2009/04/19(日) 19:35:55ID:???
flock
0258nobodyさん2009/04/19(日) 19:57:58ID:???
>>256
ダミーファイルに書き込んで成功したらcount.txtに書き込み
0259nobodyさん2009/04/19(日) 20:00:24ID:???
リネームじゃなかっけ
0260nobodyさん2009/04/19(日) 20:10:55ID:???
temp.txtに記録して、
それからcount.txtにリネームする、
ってよく聞くけど、なんの意味がある?
0261sage2009/04/20(月) 09:33:36ID:???
 PHPで外部の画像を取って表示するものを作成しました。
PHP単体にアクセスをすると表示されるのですが、HTMLの中に表示すると実画像がない場合に表示される
アイコンになります。
PHP(sample.php)の中に
<?php
print "<img src=\"sample.jpg\">";
?>
と書いた場合はHTMLには<img src="sample.php">では表示されないのでしょうか?
念のためにPHPのプリントの前に
header('Content-Type: image/gif');
を置いて見ましたがダメでした。
どのようにすれば表示されますか?
02622612009/04/20(月) 09:36:06ID:???
すいません。書き間違いました。

×:header('Content-Type: image/gif');
  ↓
○:header('Content-Type: image/jpg');

表示方法をご存じの方おられたらアドバイスください。
0263nobodyさん2009/04/20(月) 09:49:59ID:???
そりゃそうだ

<?php
header('Content-Type: image/jpg');
print "<img src=\"sample.jpg\">";

これがimage/jpgなわけない
sample.jpg自身を出力すればいいよ
02642612009/04/20(月) 10:12:37ID:???
>>263
レスありがとうございます。

sample.jpg自身を出力ですか?
PHPが取得する内容によってsample.jpgは毎回変わるので
htmlの中にimgタグでsample.jpgを書くってことではないですよね。
私の方で何か凄い勘違いしてますか?
0265nobodyさん2009/04/20(月) 10:26:29ID:???
うん
0266nobodyさん2009/04/20(月) 10:47:10ID:???
phpでそのsample.jpgをバイナリーモードでオープンして読み込んで
そのまま出力するんだよ。
02672612009/04/20(月) 10:47:38ID:???
>>265
htmlにsample.jpg自身を出力すればよい
ってことになると思いますが、sample.jpg自身はPHPから引っ張ってくるので
htmlの中の記述としてはsample.phpになるかと思います。
php自身にsample.jpg自身を出力させるということでしょうか。

ファイルの拡張子を変更してみたりしましたが特に進展はありませんでした。

アホな私にもう少しだけ助言いただけないでしょうか。
本当に申し訳ないです。
0268nobodyさん2009/04/20(月) 11:26:33ID:???
一番シンプルな形だとこうか。

<?php
header("Content-type: image/jpeg");
print file_get_contents("sample.jpg", FILE_BINARY);
?>
02692612009/04/20(月) 11:26:54ID:???
>>265-266
freadで読み込んでやれば出来るようになりました。
つまらない質問に長々とつきあっていただきありがとうございました。
0270nobodyさん2009/04/20(月) 11:43:20ID:???
>>268
readfile
0271sage2009/04/20(月) 11:59:35ID:???
横やりすんまそ
>>268だと複数画像って表示出来ないよね
header("Content-type: image/jpeg");
print file_get_contents("sample1.jpg", FILE_BINARY);
print file_get_contents("sample2.jpg", FILE_BINARY);
この場合sample1.jpgのみ表示されるけどこれって俺のサーバーの環境に依存してる?
0272nobodyさん2009/04/20(月) 12:03:23ID:???
お前は何を言ってるんだ
0273nobodyさん2009/04/20(月) 12:09:14ID:???
HTTPを先に勉強しる
0274nobodyさん2009/04/20(月) 12:19:37ID:???
simplexml_load_fileを使ってRSSを取得しているのですが、
実行するタイミングによってなのか、
parser error : StartTag: invalid element nameが発生するときとしない時があります。
原因に心当たりがあれば教えてください。
0275nobodyさん2009/04/20(月) 12:20:11ID:???
合成したいならGD組み込んだImage〜関数使って自分でくっつける
0276nobodyさん2009/04/20(月) 13:25:43ID:???
一行で掲示板を構築するやり方教えて
一行じゃ足りなかったらもうちょっと増やしてもいいよ
0277nobodyさん2009/04/20(月) 13:33:20ID:???
改行しなければおk
0278nobodyさん2009/04/20(月) 15:16:17ID:???
以下のような配列があった場合に、
nameの値だけ取り出して新たな配列を作る関数はありますか?

$arr = array(
array("id"=>"1", "name"=>"aa"),
array("id"=>"2", "name"=>"bb"),
array("id"=>"3", "name"=>"cc")
);

欲しい配列は{"aa", "bb", "cc"}です。
0279nobodyさん2009/04/20(月) 15:18:18ID:???
PDOならfetchAll(PDO::FETCH_COLUMN, 1)で可
02802782009/04/20(月) 15:35:47ID:???
ありがとうございます。
追加モジュールが必要ということですね。
0281nobodyさん2009/04/20(月) 15:40:57ID:???
ボタンのnameを可変変数にして、
「このボタンが押されれば、このページを表示する」という処理を行いたいのですが、
どのようにすればできるのでしょうか?

0282nobodyさん2009/04/20(月) 15:41:28ID:???
いやDBから取得するときに工夫したほうが楽よってだけ
0283nobodyさん2009/04/20(月) 15:43:05ID:???
>>281
<form action="hogehoge.html" method="get">
02842812009/04/20(月) 15:56:10ID:???
説明が足りませんでした。すみません・・・
どうしてもPOSTでやらないといけないのです。

<form method="post" action="hogehoge.php">
<?
$roopCnt = 3;
for($i=1; $i<=$roopCnt; $i++){
$btnName = "btn".$i;
?>
<input type="submit" name="$btnName" value="test" />
<? } ?>
</form>

このようなもので、
・btn1が押されたら、1ページ目
・btn2が押されたら、2ページ目
・btn3が押されたら、3ページ目
をそれぞれ表示したいと考えています。
0285nobodyさん2009/04/20(月) 16:02:39ID:???
hiddenでいいんじゃ?

<input type="hidden" name="page" value="<?php echo $i; ?>">

あとHTMLの仕様上、ボタン1つにつきformも1つね。
まぁ1つのform内で異なるパラメータ付けた複数のsubmitボタン使えたら確かに便利なんだけど。
0286nobodyさん2009/04/20(月) 16:06:08ID:???
ああごめん、もしボタン名で区別してもいいならsubmitのvalueの値でも良かったわ

-----------------------------------------
<?php
var_dump($_GET);
?>

<form action="">
<input type="submit" name="page" value="1">
<input type="submit" name="page" value="2">
<input type="submit" name="page" value="3">
</form>
-----------------------------------------
02872812009/04/20(月) 16:15:51ID:???
ありがとうございます!
なるほど、フォームを複数使うというのもありなんですね。
ボタン名はどれも同じで考えていますので、valueの値で判別するのはできないですね。

ボタンのネームに配列を使えれば、1つのフォームでもいけそうな気がするのですが、
そういうのってできるのでしょうか?
phpに手をつけはじめたばかりなので、書き方が思いつかない・・・
0288nobodyさん2009/04/20(月) 16:20:41ID:???
>>287
<form action="">
<input type="submit" name="page1" value="1">
<input type="submit" name="page2" value="1">
<input type="submit" name="page3" value="1">
</form>

if(isset($_REQUEST['page1'])){
#処理1
}elseif(isset($_REQUEST['page2'])){
#処理2
}elseif(isset($_REQUEST['page3'])){
#処理3
}
0289nobodyさん2009/04/20(月) 16:23:51ID:???
submitのnameの値で区別するのってどうなん?
個人的にはあまり好ましくないやり方だと思ってたけど
0290nobodyさん2009/04/20(月) 16:30:24ID:???
valueは日本語が入ることもあるからname使うケースもあるなあ
0291nobodyさん2009/04/20(月) 16:31:52ID:???
まぁ、普通はJSと組み合わせてやるね
02922812009/04/20(月) 16:33:24ID:???
JSを使うやり方もあるのですね。
288さんのやり方で頑張ってみようとおもいます。
ありがとうございました。
0293nobodyさん2009/04/20(月) 17:49:16ID:???
さっさと答えろやksdm
0294nobodyさん2009/04/21(火) 02:20:57ID:/739X32B
今カートを作ってるんだけど、質問です
やりたいことはttp://hoge.com/item/1111/item.php
というページにアクセスした場合、動的に商品ID「1111」に一致する商品内容を表示したいです

商品IDごとにディレクトリを作ってhtmlも作るというのは現実的ではないと思い調べていたら.htaccessを知りました
そこで質問ですが、itemディレクトリに.htaccessを置いて、ディレクトリが無いので404エラーを出し
itemディレクトリに設置してあるitem.phpを表示するようにする
そのitem.phpでディレトクリ「1111」を取得して商品IDとして処理する方法って出来るのでしょうか?
出来る場合は邪道でしょうか?
0295nobodyさん2009/04/21(火) 02:22:31ID:???
>>294
ZendFramework使え
0296nobodyさん2009/04/21(火) 04:00:52ID:???
>>294
数回読んだけどいまいちつかめない…
とりあえずmod_rewrite使えって事かと
0297nobodyさん2009/04/21(火) 07:01:25ID:???
すいません、考えてもわかりませんでした。
PHPでブログ自作で、カレンダーで記事のある日だけリンクを張る
仕組みがどうしてもわかりません
後日付関係全般。どのように処理してるのか、仕組みを教えて下さい
mysqlでもいいです。
0298nobodyさん2009/04/21(火) 07:10:45ID:???
select distinct day(article_date) from articles where year(article_date) = 2009 and month(article_date) = 21
0299nobodyさん2009/04/21(火) 07:11:25ID:???
21じゃなくて4だった
03002972009/04/21(火) 08:05:00ID:???
あ、わかりました
個数とかって記録すべきか、一回一回数えるSQLで行くべきか
悩みます
03012742009/04/21(火) 10:08:05ID:???
すみません、274なんですけど、
わかる方いらっしゃいませんか?
0302nobodyさん2009/04/21(火) 10:37:43ID:???
エラー時のRSSデータをまず保存してはどうだろう
0303nobodyさん2009/04/21(火) 14:24:33ID:???
>>300
そういう冗長性が発生するチューニングは遅いと思ってからやった方が良いんじゃない。
適切にインデックスつければよっぽど問題にならんし。
0304nobodyさん2009/04/21(火) 22:37:51ID:???
$a='1,2,3,4,5,';
foreach(explode(',',$a) as $v) echo $v;

こう書くのってどう?キモい?
0305nobodyさん2009/04/21(火) 23:23:43ID:???
コードの縮小化ならいいと思うがな
一人で使う分にはいいがいろんな人に見せるなら見栄えを取った方がいい
03062942009/04/22(水) 00:51:27ID:???
>>296
ありがとう
今までやってたけどうまくいきました
使ったものは$_SERVER['PATH_INFO']だけど、ここにたどり着けた事に感謝
0307nobodyさん2009/04/22(水) 00:58:06ID:???
>>300
コードは分かりやすく書いてキャッシュかなぁ
0308nobodyさん2009/04/22(水) 01:55:32ID:???
>>304
一度文字列に代入する理由が分からないが、explodeで配列にするのだから、

foreach (array(1, 2, 3, 4, 5) as $v) echo $v;

でよくね?
0309nobodyさん2009/04/22(水) 11:07:24ID:???
foreachだけ配列を使うって決まってるならそれでもいいが
それだと使いまわせない
0310nobodyさん2009/04/22(水) 11:43:35ID:???
$array = array(1,2,3,4,5)でいいじゃん
0311nobodyさん2009/04/23(木) 18:29:33ID:???
PHP+MySQLで本のデータベースサイト作ろうと思っている
で、よくある「http://x-comic.info/」みたいにタグの部分をクリックすれば一覧が表示されるページ作りたいんだけど、
具体的な作り方が何を見ても載ってないというか俺が無知すぎて分からないというか・・・
こういうやり方が載ってるサイトとか書籍とかってないの?
0312nobodyさん2009/04/23(木) 18:30:33ID:???
タグの部分?
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"とかやればいいように思うけど
■ このスレッドは過去ログ倉庫に格納されています