【初心者】励ましあいながらサイト製作【PHP】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/09/03(土) 10:30:34ID:???http://pc8.2ch.net/test/read.cgi/php/1125396428/
から分家。
共同で何かを作るわけではなく、それぞれが勝手に自分の物を
作りながらひとり言を言ったり傷を舐めあったり質問をしあったりするスレです。
0068nobodyさん
2005/09/09(金) 16:59:32ID:tGBnfrTyHeader("Content-type: text/octet-stream;");
Header("Content-disposition: attachment; filename=hoge.csv");
print("あいうえお\n");
?>
単純にCSVファイルをダウンロードさせたいだけなのですが、
これにアクセスしてもただ文字が表示されるだけです。
なぜでしょうか。お願いします。
0070nobodyさん
2005/09/09(金) 18:32:14ID:tGBnfrTyありがとうございます。
もう1個だけ教えて下さい。
<?
function csv(){
Header("Content-type: Application/octet-stream;");
Header("Content-disposition: attachment; filename=hoge.csv");
print("あいうえお\n");
}
function html(){
print "<form action=csvtest.php method=post>";
print "<input type=hidden name=hoge value=hoge>";
print "<input type=submit>";
print "</form>";
}
global $_POST;
$hoge = $_POST['hoge'];
if($hoge == ""){
html();
}else{
csv();
}
?>
007170
2005/09/09(金) 18:33:16ID:tGBnfrTy開くをクリックすると、なぜかもう一度ダイアログが出て開くをクリックすると
csvが開けます。なぜダイアログが2回出てしまうのでしょうか。
ご教示ください。
POSTしているのがいけないのでしょうか?
確認していませんが、GETでやると1回で済むと思います。
0072nobodyさん
2005/09/10(土) 00:49:37ID:X+h+0+O00073nobodyさん
2005/09/10(土) 02:24:58ID:4eRTgX7aすると聞きました。
高性能らしいのですが、書き込みの多いサイトだと放っておいたら
レン鯖だとそのうち容量オーバーしやすいのでしょうか。
大した事はしないので、おとなしくMySQLを使っていた方が無難?
0074名無しさん@そうだ選挙に行こう
2005/09/10(土) 19:32:31ID:p09f3dkK例えばこんな感じで、〜/hoge.php?a=1&b=2&c="d&e"とかくくってもダメなんです...
0075名無しさん@そうだ選挙に行こう
2005/09/10(土) 19:34:00ID:???&→%26
0076名無しさん@そうだ選挙に行こう
2005/09/10(土) 19:42:07ID:???urlencodeしなきゃだめだ
つか励ましあうのって無理があるな
0077nobodyさん
2005/09/12(月) 01:55:38ID:Wrz9iarD0078オナニスト ◆MRmxpjiK.2
2005/09/12(月) 04:15:34ID:6Ew75INN詳しくは日記を見てください;;
http://zone.s33.xrea.com/nik/nik.cgi
1Mでいいので開通早くて速度でる会社教えてください
YAHOO ソネット Jコム ビッグローブ アサヒネット
ケーブル以外でお願いします;;。
0079nobodyさん
2005/09/12(月) 21:29:17ID:EmmBgl/h0080nobodyさん
2005/09/13(火) 09:34:30ID:???0081nobodyさん
2005/09/13(火) 09:39:38ID:???http://images-jp.amazon.com/images/P/B00009B8MC.09.99TLZZZZ.jpg
Amazonみたいに、path_infoとGDを使って値引率を動的に画像の中に
合成しようと思っているのだけど、ImageTTFTextは使わずにimagestringを
使いたい。
でも、imagestringのパラメータにフォントサイズの項目が見当たらない・・・
ビットマップフォントを無理に拡大しても荒れるだけだからなのかなあ。
0083nobodyさん
2005/09/13(火) 11:54:05ID:???PHPで同じ機能を再現できないかと思って。
でもAmazonの値引率の表示って結構凝っていて、文字部分まで
リアルタイムに合成して作っているんじゃないっぽい。
どうも1.png〜99.pngまでの合成用画像をあらかじめ用意しておいて
それを使っているような気がしてきた。
で、そんな面倒なことをする気がない私はビットマップフォントの合成で
お茶を濁しましたとさ。
見た目ちょっとヘボいけど、汎用性が高いからこれでいいや。めでたしめでたし。
サイト名と設置URLとメールアドレスを設定するだけですぐにスタートできる、
お手軽なショッピングサイト構築ツールを作ってるんですわ。
フリーの書体だとしても、配布セットの中に勝手に他人の著作物を
同梱するわけにもいかないので、お気軽さ優先で。
紹介感謝です。
もし公開後にショボいと言われまくるようだったら、専用のフォントでも
自作して同梱することにします。
たかだか「0〜9+o+f」の12文字だけだしね。
0089nobodyさん
2005/09/13(火) 14:35:55ID:???池沼ばっかりでいいぞ。
0091nobodyさん
2005/09/13(火) 20:11:47ID:???自分はこういうやり方でやってるんですが、皆さんはどうやってますか?
0092nobodyさん
2005/09/13(火) 20:40:08ID:???自分の場合、一通り読んでからプログラムを組みます。
それで実際、組むとき、あやふやな部分を確かめるって感じです。
ヒマな時間にリファレンス本を流し読みして「この言語ではこういうことができる」
という部分をまず掴みます。
使いそうな関数のページには折り目をつけておきますが、まず読み返すことはありません。
実際に組む時は、8割方過去に作ったスクリプトからコピペして改変します。
過去にない処理が必要になった場合、例えば「php 全角英数 半角英数 変換 」
とかググって、その処理に必要な関数名を調べます。
次にその関数名でまたググり、オンラインリファレンスから例文をコピペして
パラメータだけいじります。
自分で暗記で打てるのはif文程度。
0094nobodyさん
2005/09/14(水) 02:20:26ID:???プログラミングってものに慣れてきたら>>93みたいなやり方。
別に参考書が全部を完璧に教えてくれるわけじゃないから(というか中途半端な場合が多い)
分からないところは、「分からなかった」って事だけ覚えてれば、その場では分からなくてもいいと思う。
(サンプルコードを打ち込むのはいまいち為にならない。サンプルコードを落として、適当にいじくり倒す方がずっと為になる)
1,2回読んで分からなければ、その文章自体が下手糞か、自分にはまだ早い場合が殆どだと思うんで
放っておいて、色んなドキュメントとかソースなんかを見てるうちに
ピンと来る内容にあたることがあるだろうから、その時にしっかり物にすればいい。
(ずっとピンと来ないのであれば、向いてないって事だろうし、参考書をいくら読んでも理解出来ないはず)
最初の頃のお勧めの方法としては
1.参考書の章を読む
2.よく分からない部分はピックアップしていく
3.いまいち処理が分からない時は、関数名や文中のキーワードでググる(公式ドキュメントの関連項目は必読)
4.もう1回読む
5.分からなくても、分からなかったこととして保留したまま次の章へ。本を読み終わったらしばらく読み直さない(すぐに読み直してもどうせ理解出来ない)。
0095nobodyさん
2005/09/14(水) 09:48:53ID:???だから最初は基本的な部分だけ押さえて、後はリファレンスばっかり読む。
あーこんなことが出来るんだーなんて言いながら概要を掴んで、
実際に書いてみて、いじってみて、あーこうなるんだーって理解する。
そういうのの積み重ねだ。あhっはははははははははははh
0096nobodyさん
2005/09/14(水) 23:30:59ID:???めちゃくちゃな処理でなんとか思い通りに動かして、あとになって、もっとスマートな方法を見つけるけど、自分で書いたコードなのにもう、こんがらがってそれを適用するのもまた大仕事。
0097nobodyさん
2005/09/14(水) 23:41:11ID:???これからの勉強の参考にさせていただこうと思います。
0099nobodyさん
2005/09/17(土) 19:09:39ID:???いま、オブジェクト指向ってのを勉強してるけど、やっぱり難しい・・
0100nobodyさん
2005/09/18(日) 00:51:32ID:???PHPのオブジェクト指向って、使わなきゃ使わないでどうにかなるし、
どうにかしちゃう場合が多いので、他のとこ覚えてからの方がいい気がするよ。
0101nobodyさん
2005/09/18(日) 01:20:10ID:???そうなんですか。
じゃぁとりあえずは後回しでもいいんですね。
PHPはまだまだ覚えていない部分がたくさんあります(д`;)
ファイルの扱いや、サーバーとクライアント間のデータのやりとりといったモノの方が実用的な気がするので
こっちの方を先に覚えようと思います。
ありがとうございました。
0102nobodyさん
2005/09/18(日) 10:10:54ID:???これって変数をまとめて初期化しているんですよね?
0103nobodyさん
2005/09/18(日) 19:23:32ID:???羅列してる変数全てに""を代入してる。
PHPでは基本的にあまり変数の宣言や初期化はしないし、
するにしても、そういう分かりにくい仕方はしないよ。
0104nobodyさん
2005/09/18(日) 22:10:06ID:???気持ち悪いからしてるけど普通しないもんなの?
0105nobodyさん
2005/09/19(月) 00:01:34ID:???http://d.hatena.ne.jp/keyword/register_globals
register_globals問題もあるので、念のため初期化してからの方が無難なのかもね。
自分も初心者なのでよーわからんのですが、
function Hoge_Hoge(){
//必要なグローバル変数だけを意識的に取り込む
global $str;
処理
}
Hoge_Hoge();
ってな感じでとりあえずfunctionで囲んでおけば安心?
0106nobodyさん
2005/09/19(月) 00:32:40ID:???初期化とは異なるけど、例えば分岐処理を簡単に済ませたい時とか
function fooBar(){
$text = "";
if (式) {
$text = "foobar";
}
return $text;
}
こういうelseの必要ない書き方とか、あとは何があったかな
0107nobodyさん
2005/09/19(月) 03:13:27ID:???たとえば
for($i = 0; $i < 10; $i++) $foo .= $bar[$i];
なところは
$foo = "";
for($i = 0; $i < 10; $i++) $foo .= $bar[$i];
とするとか。そのくらい。
自分が始めた時は、そういうことも大事だけど
http://php.s3.to/man/types.comparisons.html
あたりの挙動をちゃんと把握する事の方が、変な動作するスクリプト減らすのには役立つなぁと思った次第。
>>106
それって、パフォーマンス的にも可読性保つためにも、素直にelse使った方がいい気が…
0108nobodyさん
2005/09/19(月) 10:20:39ID:???漏れは>>106の書き方好き。
先にまず初期値。
その後、複数の条件を羅列することも出来る。
case文っぽい感じだよね?
可読性に関しては好みだとは思うけど、パフォーマンス的に差が出るようなものなの?
0109nobodyさん
2005/09/19(月) 16:09:08ID:???まぁ、「最初は""で、trueだった時だけ"foobar"」って見方も出来るから、好みっちゃ好みなのは確かなんだけど、
>>104みたいな初期化の仕方をした上で>>106の記述をすると、
「ん?この値何が入ってるんだよ」って感じで、ソースをさかのぼって見なきゃいけなくなっちゃう事が多い。
(書いてる時はいいんだけど、後から保守する時が……)
パフォーマンス云々は、体感できる差じゃないけど、後から必ず値が入る場合にも初期化されちゃう分無駄だよ、ってだけ。
0110nobodyさん
2005/09/19(月) 17:37:00ID:???>>>104みたいな初期化の仕方をした上で>>106の記述をすると、
>>106の方で「初期化とは異なる」と最初で断ってるわけなんだからこれはおかしいんじゃない?
変数を空にするのは、単に初期化するためだけはないと言ってるんじゃないの?
それに>>106みたいな手法の方が楽だということもあるんだし、それぞれじゃないかな。
0111109
2005/09/19(月) 21:08:52ID:???>>106は、初期化(初期値の代入)と取るのが自然な気が。
現に、""を初期値に設定して、ifがtrueの場合のみ"foobar"を代入、と捕らえるのが自然な記述だと思うし。
こういうのって、本人がどういうつもりで書いたかという事よりも
実際の挙動や、読み手がどう取るか、の方が大事なんじゃないかな。
んで、それぞれはそれぞれだよ、駄目だなんて一言も言ってない。
読み難くなくて、ちゃんと動けば全然問題ないと思う。
0112nobodyさん
2005/09/20(火) 10:32:51ID:???if (!式) { return; }
return "foobar";
}
自分ならこう書くかな。
初期化以前に極力新しい変数は作らない。
0113nobodyさん
2005/09/20(火) 11:01:10ID:???たとえば式がcount(array)とかで、1ページで何回も呼び出されるものなら、
staticでページ1回につき1回の計算だけで済ましたりするだろう。
単純になんでもない式なら>>112だな。
0114nobodyさん
2005/09/28(水) 20:10:51ID:???という感謝祭が私の作ったプログラムの中で連日開催されているのですが
何とかならないものでしょうか
0115nobodyさん
2005/09/29(木) 07:55:10ID:???if (get_magic_quotes_gpc()) {
$_POST['com'] = stripslashes($_POST['com']);//¥除去
}
0116nobodyさん
2005/09/29(木) 14:07:07ID:???function getGPC($string) {
if(is_array($string)) {
foreach($string as $key => $value) $string[$key] = getGPC($value);
return $string;
}
if (get_magic_quotes_gpc()) {
return stripslashes(urldecode($string));
} else {
return urldecode($string);
}
}
0118nobodyさん
2005/10/01(土) 17:52:21ID:???0119nobodyさん
2005/10/08(土) 00:46:19ID:???0120nobodyさん
2005/10/08(土) 10:03:04ID:???完成してから公開、とか考えると逆に駄目だね。
一人で製作の弱点って、そこだな。
0121nobodyさん
2005/10/10(月) 11:56:34ID:???0122nobodyさん
2005/10/10(月) 18:16:08ID:???0123nobodyさん
2005/10/10(月) 19:57:17ID:???0124nobodyさん
2005/10/16(日) 23:41:23ID:???0125nobodyさん
2005/10/18(火) 15:18:57ID:???このシリーズ、役に立つようになるかも。
0126nobodyさん
2005/10/19(水) 22:49:11ID:CHcSnYiIまだまだ未完だけど上げてみる
0127nobodyさん
2005/10/20(木) 10:14:07ID:???HTMLで済むのをむりやりPHPに移植するスレだったのか。
>ククク.
だまされましたね?
ここは自宅のPowerBook Serverです.
くれぐれもアタックをかけない様に(藁
ttp://glagla.dw.land.to/index.php
こっちにも同じ事書いてあるけど、land.toはいつからオマイの自鯖になったんだ?
というか新たなnullの誕生か?
2度と行かね。
0128nobodyさん
2005/10/20(木) 15:43:58ID:???作ってますよー
Guestアカウント
ID:[email protected]
pass:guest
カートの方は製作中かつ仕事だからまだ非公開だけど。
どちらにせよ意地になって無理やり公開するもんじゃないね。
不具合多すぎ。
0131126
2005/10/20(木) 19:13:20ID:???indexねぇぞっつう警告メール来たんでとりあえず置いて、そのままだったや。
思い出サセテクレテありがとう。
まぁ見るに耐えられない痛いサイトなのは承知だぜぃ・・・
0132nobodyさん
2005/10/30(日) 09:14:30ID:???0133nobodyさん
2005/10/30(日) 18:17:15ID:???本家が単発スレ立ち上げたものだから、
今一つ気がのらないだけ。
0134nobodyさん
2005/11/04(金) 20:37:45ID:???0135nobodyさん
2005/11/04(金) 21:41:10ID:KfXUaxV2XOOPSがあるんだから、独自にサイト作るのって車輪の再発明ってことに気づいてない?
XOOPSを改良する方向に力注げよ。
0136nobodyさん
2005/11/05(土) 10:10:40ID:???つかXOOPSは駄目スクリプトだと洩れは思うぞ
0137nobodyさん
2005/11/05(土) 10:16:14ID:???むやみに XOOPS を設置しまくるように仕向けるのは賛成できない
0138nobodyさん
2005/11/05(土) 10:16:55ID:???0139nobodyさん
2005/11/05(土) 17:13:50ID:???0140nobodyさん
2005/11/05(土) 20:25:11ID:???0141nobodyさん
2005/11/06(日) 15:58:35ID:???案外工夫の余地があるんだよな
デザインをテンプレートで分離するとか RSS の出力を工夫して管理しやすくするとかね
データの管理の仕方とか
0142nobodyさん
2005/12/19(月) 00:32:48ID:???テキストファイルのデータを読み込んでinsert文でmysqlのテーブルに挿入するスクリプト作ったんだが上手くいかなかった
んで、いろいろ試して文字/改行コードをEUC、LFじゃなくてSHIFT-JIS、CR+LFにしたら上手くいった
phpってEUCで書くもんだと思ってたけどコレでいいの?
0143nobodyさん
2005/12/20(火) 17:06:27ID:???0144nobodyさん
2005/12/20(火) 20:45:17ID:???0146142
2005/12/24(土) 00:04:49ID:???今こんなカンジ
テキスト(EUC)を読み込んでPHPスクリプト(S-JIS)でテーブルに挿入
mysqlにログインして直にテーブル内容を確認したらデータが文字化け
文字化けしたデータを別のPHPスクリプトで内容表示させたら文字化せずちゃんと表示される
ちなみに表示させたデータをmb_detect_encoding()で確認したらEUCだった
で、mysqlにログインしたついでにスクリプトではなく直にinsert文で同じデータを追加してみた
結果、テーブル内では文字化けしないが、スクリプトで表示させると文字化け(つーか日本語部分が表示されない)
mb_detect_encoding()で確認したらS-JISになってた
mysqlの設定がおかしいのか?
0147nobodyさん
2005/12/25(日) 01:34:00ID:???0148nobodyさん
2005/12/25(日) 22:59:15ID:???[mysqld]
default-character-set=sjis
>>147
PHPの方かな
0149nobodyさん
2005/12/26(月) 00:24:45ID:???テーブルからデータ読み込む時はS-JIS→EUCとする事で思ったとおりの動作させることが出来たけど・・・
もしかしてmysqlの設定がS-JISになってるからダメなのか?
でも何処でWINDOWSでmysqlの設定方法調べてmy.iniに
[mysqld]
default-character-set=sjis
[mysql]
default-character-set=sjis
[mysqldump]
default-character-set=sjis
って書けって書いてるんだが
0150nobodyさん
2006/02/01(水) 18:32:48ID:???どうにもうまくいかない。ちょっと、教えてくれると助かります。
とりあえず、元のテキストデータ(複数)があって、たとえば0行目が
1であれば内容を表示するって言う感じで↓みたいにとりあえずして
実際動かしてみた。
<!--ファイル読み込み-->
<?php
$ファイル(1) = file("ファイル(1)");
}
?>
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
<!--内容表示-->
<?php
if(ファイル(1)の0行目指定 == 1) { print("内容");
}
?>
で、まあこれで動いたんで調子乗ってもう一つのテキストデータを
読み込ませた同じやつ(ファイルの0行目指定(2)みたいな感じで)
を同じように書いてみたんだけど、なぜか表示されない。(↓)
0151nobodyさん
2006/02/01(水) 18:35:13ID:???<?php
$ファイル(1) = file("ファイル(1)");
$ファイル(2) = file("ファイル(2)");
}
?>
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
<!--内容表示-->
<?php
if(ファイル(1)の0行目指定 == 1) { print("内容");
}
?>
<?php
if(ファイル(2)の0行目指定 == 1) { print("内容");
}
?>
にんともかんともわからなかったので
if(ファイル(2)の0行目指定 == 1)を
if(ファイル(2)の0行目指定 == 0←※)と言う風に他のに変えたら
OKでした。これはやっぱり、なんか競合してるからダメポという事
なのでしょうか??
説明ベタですみませんが、
知っている方教えていただけると助かります。
0152nobodyさん
2006/02/01(水) 19:01:48ID:???0153nobodyさん
2006/02/03(金) 14:11:35ID:XtE8ZpDP$f_one = file("hoge1.dat");
$f_two = file("hoge2.dat");
if($f_one[0] == 1){ print "内容";}
if($f_two[0] == 1){ print "内容";}
?>
・・・こういうこと?
0154nobodyさん
2006/02/13(月) 19:22:54ID:CRi0u1UUイメージ的にはこんな風に・・・。
<FORM action="a.php" method="post">
print "<input type='hidden' name='sel[][]' value='$sel'>";
</FORM>
配列はnameに[]をつけないといけないということはわかったのですが、
この書き方ではうまくいかず。。。
1個ずつ送らないといけないのでしょうかorz
0155nobodyさん
2006/02/13(月) 21:46:07ID:c0AZgeUz0156nobodyさん
2006/02/13(月) 21:50:46ID:???0157nobodyさん
2006/02/13(月) 21:54:42ID:???でもただの質問スレになるならいらね
0158nobodyさん
2006/02/14(火) 01:32:16ID:bs1BKFdz,を</td><td>に変えるのってどうやるのでしょうか?
初心者なもんで。誰かおしえてください。
0159nobodyさん
2006/02/14(火) 17:11:30ID:???0160nobodyさん
2006/02/15(水) 09:06:20ID:???でやって
foreachで繰り返す時にtrとかやったらいいんじゃない
0161158
2006/02/15(水) 13:16:56ID:oPyCFoG40162nobodyさん
2006/02/15(水) 19:06:58ID:???0163nobodyさん
2006/02/21(火) 17:27:31ID:???ereg_replaceとかで置換できますよ
0165nobodyさん
2010/01/02(土) 12:12:00ID:???01661/3
2012/01/19(木) 10:56:51.20ID:8XvWf5+2外部RSSを簡単に読み込んで出力するルーチン
(ttp://phpspot.net/php/pg%E5%A4%96%E9%83%A8%EF%BC%B2%EF%BC%B3%EF%BC%B3%E3%82%92%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF.html)を使用して、
HPにブログの更新された日付とタイトルを表示させたいのですが、
日付が表示されないです。
どうかご教授下さい。
■ このスレッドは過去ログ倉庫に格納されています