【初心者】励ましあいながらサイト製作【PHP】
■ このスレッドは過去ログ倉庫に格納されています
何も分からん俺がPHPでWEBサイトを作るスレ http://pc8.2ch.net/test/read.cgi/php/1125396428/ から分家。 共同で何かを作るわけではなく、それぞれが勝手に自分の物を 作りながらひとり言を言ったり傷を舐めあったり質問をしあったりするスレです。 インスタント2chビューアー作ってみますた ttp://modern.dw.land.to/2ch/ 動作がとても重いので誰か励まして下さい >>3 すごいっす。 初心者なのでソースはよくわかりませんが・・・ ただ>>*形式のレスアンカーが効かなくてちょっともったいないので、 <a name="レス番">を各レスに埋め込んでおいてレスアンカーで そこに飛べるように置換してみたらどうでしょ。 あと、inline_linkのコードはどこにあるのだろう・・・ $str=ereg_replace("(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)","<a href=\"\\1\\2\" target=_blank>\\1\\2</a>",$str); うちで使っているのはこれだけど、借り物なので意味わからずに使っていたり。 >>5 同ディレクトリにddd.incというファイルがあって、それをインクルードしています 僕もインラインリンクはそれを使ってます!一応ftpのとこは削除してます 正規表現は今勉強中で僕もよくわかりません・・・ そういえば2chのdatって、出力時にレスアンカーを置換してるんじゃ ないんだったっけか・・・ 一旦レスデータからstrip_tagsで<br>以外のタグを消して、もう一度 処理しなおせばいいのかな。 ttp://modern.dw.land.to/2ch/index.php?sre=http://pc8.2ch.net/test/read.cgi/php/1083828423/50 レスアンカー機能つけました!上みたいに一件だけ表示します にしても重い・・・ >>9 仕事速いなーw じゃあ次はAjaxでレス先をリアルタイムにポップアップとか。 $msg = preg_replace("/<a href=\"\.\.([[:alnum:]\+\$\;\?\.%,!#~*\/:@&=_-]+)\" target=\"_blank\">>>([[:digit:]]+)<\/a>/","<a href=index.php?sre=http:// ".$this->url[2]."\\1 target='_blank'>>>\\2</a>",$msg); でアンカーリンクを置換 最後の数字をforループの$iに代入して一件だけ表示しています 正規表現は http://phpspot.net/php/pg%90%B3%8BK%95%5C%8C%BB%81F%82%B7%82%D7%82%C4%94%BC%8Ap%89p%90%94%82%A9%82%C7%82%A4%82%A9%92%B2%82%D7%82%E9.html を参考にしました >>10 ていうかまずjavaスクリプトすらできねーw 静的HTMLとして吐き出させたいけど知識がないのでできない・・・ >>13 ソース読んでみた。 1つバグっぽいのがあるんだけど、 Ins_read::make() の中にある exitはいらないんじゃないかな。 >>14 ほんとだ!気づきませんでした ありがとうございます >>12 http://www.atmarkit.co.jp/fwcr/special/ajax01/03.html 意外と簡単なのよこれが >>13 $str=$str.追加分のデータ で溜め込んで行って 最後に $fp=fopen("なんたら.html",'w'); fputs($fp,$str); fclose($fp); でキャッシュさせとく、と。 //キャッシュされたデータがあれば if (file_exists ("なんたらhtml")){ //そこに飛ばす header("Location: なんたら.html"); exit(); } なければ動的に書き出す。こんなんでどうだろね。 スレ立て乙。 おりはPHP初心者。 ネットのみで勉強しようかなと思ったけど、やっぱり本があった方がいいね。 マンモス本と呼ばれる本がPDFであったけど、読んでてつかれた。 とりあえずPHPの書籍は「はじめてのPHP言語プログラミング入門」あたりを買おうと思う。 いろいろ本を買ってみたけど結局一番役に立ったのはPHPポケットリファレンスだったりする。 >>16 thanks!!でもやっぱAjaxはむずかしそうだな〜 ちょっとJsの基礎を学んでからじゃないとできなさそう・・・ HTML生成をがんばってみます 2chは特定の板以外馴れ合い禁止だって知ってる? ウザいからsageろ 今、さっき届いた「改訂新版 基礎PHP」って本を見て勉強してる。 結構難しい・・ 自分もこっそり参加ー 本屋3件くらい回ってとりあえず「10日で覚えるPHP」みたいな本を買ってみた。 1日目のやつで既に挫折しそうだ…_| ̄|○ 2chで共同制作をすると煽りに潰される、というのが長年の伝統なわけだけど、 このスレは個人個人が好きに作っているから、プロジェクトとしては 潰れようがないところがいいね。 webprogなんて時間さえかければ一人でも作れるしな。 >>23 >>20 が怒っているのでsageでよろ XREA(Linux、Apache、MySQL)でお買い物サイトを作ろうと思っています。 テスト環境を自分のパソコン(Win2000)で構築したいのですが、サーバソフト は何を使ってもいいのでしょうか? それとも素直にApacheを入れておいた方が幸せになりますか? と思われます。 anhttpdでやってみたけどちょっと不安定だったし。 Perlの時はanhttpd、PHPの時はApacheで使い分けてる。 配列の末尾の要素を取り出して変数に入れたいのだけどわからない。 4ヶ月も触っていてこれかと思うと自分が情けなくなるのぅ。 //取り出して$strに入れる $str=array_pop($hairetu); //減っちゃうので元に戻す array_push($hairetu,$str); こんな回り道な方法しかないとも思えないのだけど・・・ >>27 マニュアルの配列関数のページをくまなく見ると いい関数がありますよ Perlだと$hairetu[-1]でアクセスできたのだけどなあ・・・ >>26 やっぱりそうですか。 私もPerlでanhttpを使っていたので、anhttpでいけるのならそうしようと思っていました。orz >>32 あっ、サンクス。 1クリックで開発環境を一度にインストールするツールもあるんだ。 紹介してもらったスレに誤爆してもうた。。。orz >>22 「10日で覚えるPHP」はあまり良くないらしい。 PHPの基礎である関数、演算子、制御構造の説明が少ないからどうとか、、、 オイラは改訂新版基礎PHPと10日の二つを買ったけど、前者の方が、PHPを勉強してるっていう感じがする。 最初はPHPの基本的な文法の説明からはじまって、 後半で掲示板とスケジュール管理アプリケーションをつくる。 それに、章ごとに練習問題があるから勉強したことを確認できる 後者はPHPの勉強というよりは紹介してあるプログラムを作っておしまいっていうような・・・。 たしかにプログラムとかをつくるから楽しいけど。 本屋で立ち読みしてみればどうかな? 3日かかってカレンダーを作った。 祝日はボールドで、マウスオーバーで祝日名が出る。 全部で200行。 まぁ、何の役にも立たんけど、練習ということで。 2005〜2010年 http://ancosme.s101.xrea.com/calendar/ >>35 すごいなー 祝日の判定とか、どうやってるんですか?これ。 >>36 ありがとう。 祝日はデータとしてまず持っておきます。 HM2は2週目のハッピーマンデーの意味。 1/1 元旦 1/HM2 成人の日 2/13 建国記念日 ・ ・ ・ そして祝日に該当した日は、赤のボールドで書くようにしています。 春分、秋分の日の判定は以下のサイトから計算して出してます。 春分秋分日 http://homepage1.nifty.com/chibipage/pgsyunbun.html http://www.h3.dion.ne.jp/ ~sakatsu/holiday_logic2.htm#PHP こんなのまであるんですね・・・ 凄すぎてとてもついていけないので、ブラックボックスのまま使わせてもらおう・・・ >>38 そのサイトからたどっていくと、カレンダーって結構奥が深い。。。 祝日ロジック [昭和の日]対応 変更箇所 http://www.h3.dion.ne.jp/ ~sakatsu/holiday_logic_Showa.htm ここ↓が一番詳しくて分かりやすい。 祝日について http://www.h3.dion.ne.jp/ ~sakatsu/holiday_topic.htm#kokumin_2nd >>34 改訂新版基礎PHP自分も持ってる。そうかそっちの本の方がいいのか…。 最初、はじめてのPHP(都ひさおて人が書いた方)って本読んで全然意味がわからんかったので 10日で〜を買ってみた。 別の本屋行ったらまたよさげな本みっけたので基礎PHPも買ってみた。 本増えても自分でPHP書けなきゃ意味ないけどね'`,、(ノ∀`)'`,、 ガンバルス(`・ω・´) 34さんサンクス! 「PHP5逆引き大全」さっき買ってきたとこ やっぱ逆引きあると便利だなあ なんかここまで休日判定面倒なら毎年その年度の休日の定義ファイルをつくちゃった方が楽な希ガスw そうだね。 10年も20年も先に同じの使ってるわけないだろうし。 >>41 おたがい頑張ろうお! ---けえかほおこく1――9がつ5日--- 今、基礎PHPのP.112まで読んだところ 大体の意味は理解できたと思うけど、本をみながらじゃないと書けない・・・ 配列は理解するのに少し時間がかかった ビット演算子ってのは、2進方とか10進方が分からないから理解できなかったw これって重要なのかな・・・ 今のところはつまずいてないけど、クラスとかオブジェクト指向らへんでつまずきそうな予感(´・ω・`) >>42 自分もなんか一つリファレンス本がほしいなぁと思ってたところ 「PHP5逆引き大全」と「PHPポケットリファレンス」どっちにしようか迷ってる。 それとも、もう少し基礎を固めてからの方がいいのかな みんな真面目だなあ。 俺は困った時だけポケットリファレンスを開く程度。 ほとんどの場合、それすら面倒くさくてGoogle検索してコピペするw おかげさまでDBも正規表現もオブジェクト指向もさっぱりだぜひゃっほう。 こんな風になっちゃいけないよ。 既存のスクリプトを弄ってみて、ある程度は理解できてきたように感じるけど 多次元配列となると、ちんぷんかんでわかんねー >>45 ビット演算子は、PHPみたいなスクリプト言語じゃあんまり使わない。 使えば容量圧縮・負荷削減に繋がる場合もあるけど、最近の環境からしてみれば微々たるものだし 多少オーバヘッドがでかくなっても、移植性のいいアスキーデータで扱うべき。 2進は中学か高校でも習うしょ。指が1本しかない状態で数を数える方法、って考えればいい。 8, 16進は2進をそれぞれ3, 4桁ごとに区切った物だと覚えれば不都合ない。 >>47 多次元配列は変数が色んな方向に並んでるだけで、特に難しく考える事は無い。 1次元が変数の行列で、2次元が表、3次元がルービックキューブ、って考え方を基本にして、 4次元はルービックキューブを1次元に並べた奴 = ルービックキューブの行列(n番目のルービックキューブのx, y, zという指定の仕方) 5次元はルービックキューブを2次元に並べた奴 = ルービックキューブの表(x2, y2のルービックキューブのx, y, z) 6次元はルービックキューブを3次元に並べた奴 = ルービックキューブを1ピースにしたルービックキューブ(x2, y2, z2のルービックキューブのx, y, z)・・・ あとは、ルービックキューブ状になったルービックキューブを1つのルービックキューブとして扱って後はループ、って感じ。 >>48 おぉ、アドバイスありがとうございます_| ̄|○ ビット演算子はあまり使わないんですね。 安心しましたw あんまり実際に使わないといっても、プログラマとしては(サンデープログラマでも) 理解しとかなきゃ恥ずかしいというか、色々な面で不都合の出てくるものでもあるよ。 ビット演算なんて難しく考えなければ2進数の論理演算とシフトだけなんだから、ちゃんと覚えといた方がいい。 そ、そうですね。 この際だから覚えておこうと思います。 いろいろとアドバイスありがとうございます。 このスレ見て改定新版基礎PHPを今日、買ってきた。 まだ75ページ目くらいしか見てないけど、なかなかいい感じですこの本。 MySQLとの連携も書いてあるみたいだし。 WEBでいろいろPHP関連のサイトをずーっと見てたけど、やっぱり本はいいね。 PDFのマンモス本見てるより本見る方が楽。 おたがいがんばりまそ。 俺も基礎PHPで勉強した。 まぁPHPやる前にPerlやってたから最初の方は適当に読んだけどね。 今は2XXページあたりの図書管理のデータベース使ったプログラムを書いてる データベースすげーー!って感じですw よく一部の携帯サイトで見受けられるリンクを分けずにワンクリック(一つのコンテンツのみ)で機種ごとに対応させるにはどうしたらできる?例えば着メロとかはキャリアごとに形式違いますよね。 知ってる人はよろしく >>53 MS Access + SQL Server程度しかやった事なかったんで、DBすげーになるまでがんがりまつ。 やっぱアマゾンの書評より2chの書評の方がいいような希ガス。 User-Agent見るといいよ。 携帯電話以外でもUser-Agentに載ってる情報でクライアントに関する色々な情報が得られる。 >>53 >>55 DBすげーってなったら、DBの設計・操作の基礎みたいなのが掴めれば、 DB絡みの簡単なシステムは大体は作れるようになると思う。非効率的なコードになるとは思うけどね。 あと、DB独自の関数群(php側DB側両方)とかも覚えていくと、phpでごちゃごちゃ書く量が減ってかなり楽になる。 設計とかユーザ管理が面倒くさいけど、とにかくシステムをサクサク作りたい、って時は phpMyAdminとかphpPgAdminを使うとスプレッドシートみたいな感覚でお手軽にやれるよ。 >>54 糞マルチ死ねよ 糞マルチ死ねよ 糞マルチ死ねよ 糞マルチ死ねよ 糞マルチ死ねよ 糞マルチ死ねよ というマルチを誘う罠だな 10日で覚えるPHP5は10日じゃ覚えられない…と思い出した今日この頃(´・ω・) やっぱ自分には無理なのか…(つД`)グスッ 自分の頭悪さ加減が嫌になった… 無理に読んで詰め込む必要ないよ。 解説書全てに言えることだけど、適当に読み飛ばしつつ、使えそうなところだけ拾っていって よく読んでないところも「この辺にこんなのがあったなぁ」程度に覚えとくだけで十分。 あとは自分の作りたいものを作りつつ、2chの関連スレやフォーラムをブラブラして 初心者質問スレで聞いたり、分かる範囲で人に教えたりしながら、少しずつ出来る事を増やしていけばいい。 止めずに続けてりゃ、気が付いたら大概の事が割とまともに出来るようになってるはず。 正直、入門書の類を何冊読んだって、ゴリゴリ書いて自分なりのノウハウを掴んで行かないと、いい物は作れないと思う。 入門書読むより何が大事かって、楽しいと思って取り組む事と、興味の沸いた事を積極的に調べて取り込んで行く事だ、と言ってみる。 PDFみてマンモス本買おうとしたらPHP5のやつしか本屋になかったorz まだまだ4で逝くのでPHP4版が欲しいけど大きな本屋に逝けばあるのかな? 出版してないっぽいから(だからPDFで配布してるんだけど) チェーン店とか他の書店からの取り寄せが出来るところで店員に聞いてみるといいかも。 PDFで必要なとこだけ印刷して読むとかじゃ駄目? 確かにディスプレイ上じゃ見難いけど、1回通して読んだ後は、必要なとこ読むだけだから 検索の利くPDFの方が利便性高いと思うんだけど。 まぁ、どうしても製本されたのが欲しいって気持ちも分からなくもないから、止めはしないけど。 >>62 あれはプリントのロックがかかっててプリント出来ないのです。 画面で読むのはきついんで。 >>57 ありがとさんです。 phpMyAdminとかphpPgAdminぐぐってみました。 かなり便利なもんがあるんですね。 たすかりますた。 PHPエディタ(スタンドアロン版) http://phpspot.net/php/phpeditor.html たまにエラーが出て白紙が開いたり上書き保存が効かなくなるバグが >>66 スタンドアロン版なんてあったのか 汎用エディタに慣れてしまうと、プロジェクト管理とか面倒なんだよな <? Header("Content-type: text/octet-stream;"); Header("Content-disposition: attachment; filename=hoge.csv"); print("あいうえお\n"); ?> 単純にCSVファイルをダウンロードさせたいだけなのですが、 これにアクセスしてもただ文字が表示されるだけです。 なぜでしょうか。お願いします。 >>68 content-typeがtextだから >69 ありがとうございます。 もう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(); } ?> 上記を実行して頂くとわかるのですが、ダウンロードダイアログが開いて、 開くをクリックすると、なぜかもう一度ダイアログが出て開くをクリックすると csvが開けます。なぜダイアログが2回出てしまうのでしょうか。 ご教示ください。 POSTしているのがいけないのでしょうか? 確認していませんが、GETでやると1回で済むと思います。 PostgreSQLは追記型DBなので、バキュームをしないとDBが肥大化 すると聞きました。 高性能らしいのですが、書き込みの多いサイトだと放っておいたら レン鯖だとそのうち容量オーバーしやすいのでしょうか。 大した事はしないので、おとなしくMySQLを使っていた方が無難? postメソッドで受け渡しする際に引数の中に『&』が入っても大丈夫な記述ってできないですか? 例えばこんな感じで、〜/hoge.php?a=1&b=2&c="d&e"とかくくってもダメなんです... >>74 urlencodeしなきゃだめだ つか励ましあうのって無理があるな 移動したんですね。自分はまだ全然進んでません。 詳しくは日記を見てください;; http://zone.s33.xrea.com/nik/nik.cgi 1Mでいいので開通早くて速度でる会社教えてください YAHOO ソネット Jコム ビッグローブ アサヒネット ケーブル以外でお願いします;;。 http://images-jp.amazon.com/images/P/B00009B8MC.09.22TLZZZZ.jpg http://images-jp.amazon.com/images/P/B00009B8MC.09.99TLZZZZ.jpg Amazonみたいに、path_infoとGDを使って値引率を動的に画像の中に 合成しようと思っているのだけど、ImageTTFTextは使わずにimagestringを 使いたい。 でも、imagestringのパラメータにフォントサイズの項目が見当たらない・・・ ビットマップフォントを無理に拡大しても荒れるだけだからなのかなあ。 あ、いや、AmazonがPHPを使っているとかそういうことではなくて、 PHPで同じ機能を再現できないかと思って。 でもAmazonの値引率の表示って結構凝っていて、文字部分まで リアルタイムに合成して作っているんじゃないっぽい。 どうも1.png〜99.pngまでの合成用画像をあらかじめ用意しておいて それを使っているような気がしてきた。 で、そんな面倒なことをする気がない私はビットマップフォントの合成で お茶を濁しましたとさ。 見た目ちょっとヘボいけど、汎用性が高いからこれでいいや。めでたしめでたし。 >>84 なんでimagettftextは使いたくないの? >>85 サイト名と設置URLとメールアドレスを設定するだけですぐにスタートできる、 お手軽なショッピングサイト構築ツールを作ってるんですわ。 フリーの書体だとしても、配布セットの中に勝手に他人の著作物を 同梱するわけにもいかないので、お気軽さ優先で。 >>86 だったらこれ使えば? ttp://www.widgnet.com/gdf_fonts/ >>87 紹介感謝です。 もし公開後にショボいと言われまくるようだったら、専用のフォントでも 自作して同梱することにします。 たかだか「0〜9+o+f」の12文字だけだしね。 >>89 2chブラウザでも使っとけ。 誤爆が減っていいぞ。 参考書を読んで大体しくみを理解できたら、実際にソースを打ち込んで、何も見ないで打てるようになったら次の章にすすむ 自分はこういうやり方でやってるんですが、皆さんはどうやってますか? >>91 自分の場合、一通り読んでからプログラムを組みます。 それで実際、組むとき、あやふやな部分を確かめるって感じです。 >>91 ヒマな時間にリファレンス本を流し読みして「この言語ではこういうことができる」 という部分をまず掴みます。 使いそうな関数のページには折り目をつけておきますが、まず読み返すことはありません。 実際に組む時は、8割方過去に作ったスクリプトからコピペして改変します。 過去にない処理が必要になった場合、例えば「php 全角英数 半角英数 変換 」 とかググって、その処理に必要な関数名を調べます。 次にその関数名でまたググり、オンラインリファレンスから例文をコピペして パラメータだけいじります。 自分で暗記で打てるのはif文程度。 >>91 プログラミングってものに慣れてきたら>>93 みたいなやり方。 別に参考書が全部を完璧に教えてくれるわけじゃないから(というか中途半端な場合が多い) 分からないところは、「分からなかった」って事だけ覚えてれば、その場では分からなくてもいいと思う。 (サンプルコードを打ち込むのはいまいち為にならない。サンプルコードを落として、適当にいじくり倒す方がずっと為になる) 1,2回読んで分からなければ、その文章自体が下手糞か、自分にはまだ早い場合が殆どだと思うんで 放っておいて、色んなドキュメントとかソースなんかを見てるうちに ピンと来る内容にあたることがあるだろうから、その時にしっかり物にすればいい。 (ずっとピンと来ないのであれば、向いてないって事だろうし、参考書をいくら読んでも理解出来ないはず) 最初の頃のお勧めの方法としては 1.参考書の章を読む 2.よく分からない部分はピックアップしていく 3.いまいち処理が分からない時は、関数名や文中のキーワードでググる(公式ドキュメントの関連項目は必読) 4.もう1回読む 5.分からなくても、分からなかったこととして保留したまま次の章へ。本を読み終わったらしばらく読み直さない(すぐに読み直してもどうせ理解出来ない)。 どんなことが出来るか最初は分からないんだよね。 だから最初は基本的な部分だけ押さえて、後はリファレンスばっかり読む。 あーこんなことが出来るんだーなんて言いながら概要を掴んで、 実際に書いてみて、いじってみて、あーこうなるんだーって理解する。 そういうのの積み重ねだ。あhっはははははははははははh まだ、初心者の域を出てないのに仕事でプログラムを書かざるをえない。 めちゃくちゃな処理でなんとか思い通りに動かして、あとになって、もっとスマートな方法を見つけるけど、自分で書いたコードなのにもう、こんがらがってそれを適用するのもまた大仕事。 皆さん色々なご意見ありがとうございますm(_ _)m これからの勉強の参考にさせていただこうと思います。 >>71 別に普通に落ちてくる。Firefox で確認 あと global $_POST は要らない PHP初めて一週間。 いま、オブジェクト指向ってのを勉強してるけど、やっぱり難しい・・ PHPの他の部分はちゃんと理解できてるか? PHPのオブジェクト指向って、使わなきゃ使わないでどうにかなるし、 どうにかしちゃう場合が多いので、他のとこ覚えてからの方がいい気がするよ。 >>100 そうなんですか。 じゃぁとりあえずは後回しでもいいんですね。 PHPはまだまだ覚えていない部分がたくさんあります(д`;) ファイルの扱いや、サーバーとクライアント間のデータのやりとりといったモノの方が実用的な気がするので こっちの方を先に覚えようと思います。 ありがとうございました。 $subject = $from = $text = $atta = $part = $attach = "" これって変数をまとめて初期化しているんですよね? 初期化に該当するかどうかは知らんけど、 羅列してる変数全てに""を代入してる。 PHPでは基本的にあまり変数の宣言や初期化はしないし、 するにしても、そういう分かりにくい仕方はしないよ。 え、phpって初期化不要? 気持ち悪いからしてるけど普通しないもんなの? 自分の認識外の部分で同じ名前のグローバル変数が使われちゃっている可能性もあるし、 http://d.hatena.ne.jp/keyword/register_globals register_globals問題もあるので、念のため初期化してからの方が無難なのかもね。 自分も初心者なのでよーわからんのですが、 function Hoge_Hoge(){ //必要なグローバル変数だけを意識的に取り込む global $str; 処理 } Hoge_Hoge(); ってな感じでとりあえずfunctionで囲んでおけば安心? >>104 初期化とは異なるけど、例えば分岐処理を簡単に済ませたい時とか function fooBar(){ $text = ""; if (式) { $text = "foobar"; } return $text; } こういうelseの必要ない書き方とか、あとは何があったかな 自分は、全部を全部初期化するんじゃなくて、初期化する必要のある変数だけ初期化するようにしてる。 たとえば 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使った方がいい気が… >>107 漏れは>>106 の書き方好き。 先にまず初期値。 その後、複数の条件を羅列することも出来る。 case文っぽい感じだよね? 可読性に関しては好みだとは思うけど、パフォーマンス的に差が出るようなものなの? trueなら"foobar"、そうでないなら""という動作をする記述をしたいなら、素直にそう書くべきという意見。 まぁ、「最初は""で、trueだった時だけ"foobar"」って見方も出来るから、好みっちゃ好みなのは確かなんだけど、 >>104 みたいな初期化の仕方をした上で>>106 の記述をすると、 「ん?この値何が入ってるんだよ」って感じで、ソースをさかのぼって見なきゃいけなくなっちゃう事が多い。 (書いてる時はいいんだけど、後から保守する時が……) パフォーマンス云々は、体感できる差じゃないけど、後から必ず値が入る場合にも初期化されちゃう分無駄だよ、ってだけ。 >>109 >>>104 みたいな初期化の仕方をした上で>>106 の記述をすると、 >>106 の方で「初期化とは異なる」と最初で断ってるわけなんだからこれはおかしいんじゃない? 変数を空にするのは、単に初期化するためだけはないと言ってるんじゃないの? それに>>106 みたいな手法の方が楽だということもあるんだし、それぞれじゃないかな。 >>110 >>106 は、初期化(初期値の代入)と取るのが自然な気が。 現に、""を初期値に設定して、ifがtrueの場合のみ"foobar"を代入、と捕らえるのが自然な記述だと思うし。 こういうのって、本人がどういうつもりで書いたかという事よりも 実際の挙動や、読み手がどう取るか、の方が大事なんじゃないかな。 んで、それぞれはそれぞれだよ、駄目だなんて一言も言ってない。 読み難くなくて、ちゃんと動けば全然問題ないと思う。 function fooBar(){ if (!式) { return; } return "foobar"; } 自分ならこう書くかな。 初期化以前に極力新しい変数は作らない。 まあ、その式次第だな。 たとえば式がcount(array)とかで、1ページで何回も呼び出されるものなら、 staticでページ1回につき1回の計算だけで済ましたりするだろう。 単純になんでもない式なら>>112 だな。 フォームから\マークを送信するだけでもれなく2倍還元! という感謝祭が私の作ったプログラムの中で連日開催されているのですが 何とかならないものでしょうか >>114 if (get_magic_quotes_gpc()) { $_POST['com'] = stripslashes($_POST['com']);//¥除去 } これ楽だぞ。自作で一番よく使う関数。 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); } } >>116 GPCから入力された時点で自動的にurldecodeされてるはず それだと%41みたいな値が渡せない。 けっこう好きなスレなのにこのごろさっぱりだね・・ここ 作ってはいるんだけどねえ・・・ 完成してから公開、とか考えると逆に駄目だね。 一人で製作の弱点って、そこだな。 ttp://www.atmarkit.co.jp/fsecurity/rensai/hoshino01/hoshino01.html このシリーズ、役に立つようになるかも。 >>126 HTMLで済むのをむりやりPHPに移植するスレだったのか。 >ククク. だまされましたね? ここは自宅のPowerBook Serverです. くれぐれもアタックをかけない様に(藁 ttp://glagla.dw.land.to/index.php こっちにも同じ事書いてあるけど、land.toはいつからオマイの自鯖になったんだ? というか新たなnullの誕生か? 2度と行かね。 掲示板とかショッピングとか言ってたやつらはどうなったのだろう。。。 http://contents-factory.net/ 作ってますよー Guestアカウント ID:trial@smartworks.jp pass:guest カートの方は製作中かつ仕事だからまだ非公開だけど。 passはguest1でしたすみません。 どちらにせよ意地になって無理やり公開するもんじゃないね。 不具合多すぎ。 あ、land.to忘れてたや。 indexねぇぞっつう警告メール来たんでとりあえず置いて、そのままだったや。 思い出サセテクレテありがとう。 まぁ見るに耐えられない痛いサイトなのは承知だぜぃ・・・ 励ますのはかまわないけど、 本家が単発スレ立ち上げたものだから、 今一つ気がのらないだけ。 おまいらの作りたいサイトってXOOPSじゃ駄目なのか? XOOPSがあるんだから、独自にサイト作るのって車輪の再発明ってことに気づいてない? XOOPSを改良する方向に力注げよ。 基礎が出来てない香具師の改造は頂けないな つかXOOPSは駄目スクリプトだと洩れは思うぞ 大は小を兼ねないし、どこがセキュリティホールになるか把握しきれないやつが むやみに XOOPS を設置しまくるように仕向けるのは賛成できない 何事も練習だと思うのでコツコツBBSから作ってる俺 一点だけでも既存スクリプトにない要素を入れられれば勝ちだと思っている俺 >>139 案外工夫の余地があるんだよな デザインをテンプレートで分離するとか RSS の出力を工夫して管理しやすくするとかね データの管理の仕方とか 質問 テキストファイルのデータを読み込んでinsert文でmysqlのテーブルに挿入するスクリプト作ったんだが上手くいかなかった んで、いろいろ試して文字/改行コードをEUC、LFじゃなくてSHIFT-JIS、CR+LFにしたら上手くいった phpってEUCで書くもんだと思ってたけどコレでいいの? 勘だがテキストファイルがSHIFT-JISで保存されてたんじゃなかろうか sjisで流し込むならmysqlの設定ファイル弄らないと化けるよ >>143 いや、テキストもEUCだったよ >>144 化けてるね、凄まじい勢いで 化けてるね なんかますますわからん 今こんなカンジ テキスト(EUC)を読み込んでPHPスクリプト(S-JIS)でテーブルに挿入 mysqlにログインして直にテーブル内容を確認したらデータが文字化け 文字化けしたデータを別のPHPスクリプトで内容表示させたら文字化せずちゃんと表示される ちなみに表示させたデータをmb_detect_encoding()で確認したらEUCだった で、mysqlにログインしたついでにスクリプトではなく直にinsert文で同じデータを追加してみた 結果、テーブル内では文字化けしないが、スクリプトで表示させると文字化け(つーか日本語部分が表示されない) mb_detect_encoding()で確認したらS-JISになってた mysqlの設定がおかしいのか? my.iniの設定は以下のようになってたが・・・ [mysqld] default-character-set=sjis >>147 PHPの方かな 一応、mb_convert_encoding()使ってテーブルにデータ追加する時はEUC→S-JIS テーブルからデータ読み込む時は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 って書けって書いてるんだが いま、こんなふうなif文をやっているんだけど、 どうにもうまくいかない。ちょっと、教えてくれると助かります。 とりあえず、元のテキストデータ(複数)があって、たとえば0行目が 1であれば内容を表示するって言う感じで↓みたいにとりあえずして 実際動かしてみた。 <!--ファイル読み込み--> <?php $ファイル(1) = file("ファイル(1)"); } ?> 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 <!--内容表示--> <?php if(ファイル(1)の0行目指定 == 1) { print("内容"); } ?> で、まあこれで動いたんで調子乗ってもう一つのテキストデータを 読み込ませた同じやつ(ファイルの0行目指定(2)みたいな感じで) を同じように書いてみたんだけど、なぜか表示されない。(↓) <!--ファイル読み込み--> <?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でした。これはやっぱり、なんか競合してるからダメポという事 なのでしょうか?? 説明ベタですみませんが、 知っている方教えていただけると助かります。 そんな日本語に置き換えまくったコードじゃわからねーよ <?php $f_one = file("hoge1.dat"); $f_two = file("hoge2.dat"); if($f_one[0] == 1){ print "内容";} if($f_two[0] == 1){ print "内容";} ?> ・・・こういうこと? 多次元配列$sel[][]を一括でFORM送信ってできないんですかね?? イメージ的にはこんな風に・・・。 <FORM action="a.php" method="post"> print "<input type='hidden' name='sel[][]' value='$sel'>"; </FORM> 配列はnameに[]をつけないといけないということはわかったのですが、 この書き方ではうまくいかず。。。 1個ずつ送らないといけないのでしょうかorz きらいじゃないんだがなぁ でもただの質問スレになるならいらね a,b,c,dってデータファイルをhtml上で ,を</td><td>に変えるのってどうやるのでしょうか? 初心者なもんで。誰かおしえてください。 $lines=file でやって foreachで繰り返す時にtrとかやったらいいんじゃない 一応 ereg_replaceとかで置換できますよ PHPで指定したディレクリにあるjpg|jpeg|gif|pngの画像枚数を取得したいんだが、教えてくれ。 質問させてください。 外部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にブログの更新された日付とタイトルを表示させたいのですが、 日付が表示されないです。 どうかご教授下さい。 <table> <?php // 外部RSSを簡単に読み込んで出力するルーチン $RSSURL = "ttp://feedblog.ameba.jp/rss/ameblo/staff/rss20.xml"; $buff = ""; $fp = fopen($RSSURL,"r"); while ( !feof($fp) ) { $buff .= fgets($fp,4096); } fclose($fp); // パーサ作成 $parser = xml_parser_create(); // パーサオプションを指定 xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1); // パース実行、連想配列にパース結果代入 xml_parse_into_struct($parser,$buff,$values,$idx); // パーサ開放 xml_parser_free($parser); // パースして得た連想配列をまわす $in_item = 0; $count = 0; foreach ($values as $value) { $tag = $value["tag"]; $type = $value["type"]; $value = $value["value"]; $tag = strtolower($tag); if ($tag == "item" && $type == "open") { $in_item = 1; } else if ($tag == "item" && $type == "close") { if($count < 10){ echo "<tr><th>".$dateDisp."</th><td><a href=\"".$link."\"> ".$title."</a></td></tr>\n"; } $count++; $in_item = 0; } if ($in_item) { switch ($tag) { case "title": // UTF-8なドキュメント $value = mb_convert_encoding($value, "UTF-8", "UTF-8"); $title = $value; break; case "link": $link = $value; break; case "category": // UTF-8なドキュメント $value = mb_convert_encoding($value, "UTF-8", "UTF-8"); $category = $value; break; case "dc:date"; $date = $value; $dateArr = explode("T",$date); $dateDisp = explode("-",$dateArr[0]); $dateDisp = implode(".",$dateDisp); break; }}} ?> </table> amebloを使用してるので、 $RSSURL = "ttp://feedblog.ameba.jp/rss/ameblo/staff/rss20.xml"; にはamebloスタッフさんのブログを表示させていただきました。 お知恵拝借できればとおもいます。 宜しくお願いします。 最近Webコーディングの勉強を始めた初心者なんだけどちょっと教えてほしいです。 まだApache云々とかまで全然手出せてないからわからないんだけど 色んな人のプログとかサイト見てるとブラウザのurlバーにhoge.htmlとかって リクエストに対して返ってきたファイルの拡張子まで表示される場合と拡張子のない場合と あるんだけどあれってどうゆうことなんでしょうか? >>167 使ってるphpのバージョンが5なら、「simplexml_load_file」を使うと、もっと簡素なソースで組めるぞ? この関数でサンプルソースをググってみれ。 >>169 http://httpd.apache.org/docs/current/content-negotiation.html php初心者です。 phpのコードとhtmlの見通しをよくしようと考えました。 <h1 id="h1"><img src="<?php bloginfo(template_url); ?>/images/title/info.png"></h1> <h3 id="h3">管理情報</h3> を <?php echo '<h1 id="h1"><img src="'. bloginfo(template_url) .'/images/title/info.png"></h1>', '<h3 id="h3">管理情報</h3>' ?> のようにしてみたのですが、 imgのsrcにURLを設定するbloginfo(template_url)の部分の処理の順番が前後してしまって、 表示したWebページのソースを見ると、 http://localhost/< ;h1 id="h1"><img src="/images/title/info.png"></h1><h3 id="h3">管理情報</h3> のようになっています。 これを修正する方法を教えてください。 bloginfo() を文字出力じゃなくて文字を返すようにする あと、WordPress を参考にしたんなら、 あれはプログラムの手本の真逆を行ってる 糞コードの最右翼だから気をつけれ なるほど。サンクスです。 bloginfo()がどこにあるのか見つけられなかったのですが、これはWordPressの関数なんですよね? ま、それはそれとして、自分でも、このコードの見通しは、大差ないかむしろ悪いくらいだわ、とは思ったんです…。 ふだんはC#なんですけど、phpって、こんなに見通しが悪いんだ…。 いやはや。 最近phpをさわっているのですが、うまく動かないので教えてください。 main.php(メイン) include_once( 'myclass.php' ); $my_class = new myclass(); $my_class->クラスの関数(); myclass.php(の中身) class myclass{ myclass(){} クラスの関数(){ include_once('hoge.php' ); $戻った値=関数1(); } } hoge.php(の中身) include_once('tmp.php' ); 関数1(){ global $tmp; … return … } tmp.php(の中身) $tmp = array(なんたら,かんたら) hoge.phpの関数1で、$tmpの中身が空なので、 間違っている所を教えてください。 xamppでapacheのサービスを有効にしようとすると、 「services cannot be installed or uninstalled while the service running」という、 エラーが吐き出されます。 スカイプを切り、apache control panelのプロパティにて「管理者としてこのプログラムを実行する」 にチェックを入れましたが解消されません。 何か他に対処方法はありますでしょうか? 使用OS:win7 ultimateです。 よろしくお願いいたします。 ウェブまんがのまとめサイト作ってみた。 Wordpressをカスタマイズして作成。 http://man3.everyday.jp/ PHP扱うのは初だったけど、Wordpressベースでだいぶ楽に開発できた。 仕事の合間の土日使って、実質10日くらい。(WordpressとPHPとCSSの勉強含む) いきなりはじめるphp読んではじめたものです XAMMP PHPをはじめるのにまず何からはじめたらいい? 1. ローカルのマシンにXAMMP入れる。 2. で、、作りたいものをいきなり作れるわけはないのでやっぱ参考書買ってきてPHPの基礎から書籍の例題にしたがってやっていくしかないかな? ==知識== PHPフレームワークとか意味が全然わかんない。 昔、XHTML1.0/CSSだったか書いてた事はあるけど、もう忘れた。 今後はHTML5/CSS3を改めて覚え直さないといけないのか? サーバーの知識とネットワークの基本的な知識はある。 ==とりあえずある環境== ・外部非公開の自宅テストサーバ(LAMP)※CentOS ・レンタルサーバー(Wordpress可) ==最終目的== ・Wordpressの既存テーマをカスタマイズ。 ・WordPressのオリジナルテーマを白紙から作る。 ・Wordpessを使わないでオリジナルのサイトをつくる。 ・仮想社内の社員管理(個人情報管理システム)みたいなのをつくりたい。 ==開発環境== Windows 10 Home 64 bit (10586) TH2 メモリ8GB とりあえず入れているもの ・GIMP2(最新) ・Inkscape(最新) ・サクラエディタ/TeraPad ・Aptana Studio3(最新) かなり苦手なこと ・画像処理、デザインセンスのなさ レンタルサーバーとかってRuby on RailsよりもPHPのほうが借りやすいんでしょうか? このご時世、レンタルサーバ借りなくても自由なVPSが変わらない値段であるからレンタルサーバうんぬんは考えなくていいんじゃない 自己責任でVPSの運用管理に時間取られるわけだからレンサバとコストが大差ないと見るのは如何なものかと 特にセキュリティの知識ないなら安易に手を出すのはやめたほうが吉 CSRF対策で、フォームの入力画面から確認画面への移行で <input type="hidden" name="token" value="<?=session_id()?>"> という記載が見られます。 ソース見ると丸見えなのですがそれでも意味あるのでしょうか? すみません追記です。 セッションではなく固定値ではダメでしょうか? (どちらかというとこちらの質問が本命。) どなたかお願いします。 セッションIDそのものやセッションに紐付いた値ならば、アクセスしてくるユーザーごとに(ブラウザごとに)値が変わる 他者がその値を推測することが困難だから、本人が意図したとおりの正規のアクセスかどうかの確認用として意味があるわけ 固定値なら他のサーバに同じ値を使ったフォームを設置するだけで同じHTTPリクエストを再現できてしまうのでほとんど意味がない 1度アクセスしてそのブラウザ(セッション)のまま悪さしたら? 我が家は娘が気づいて3年前からPCカメラを目隠ししてる。 「web講義」を受けた時に「おや?」と思って「もしかして、こっちも見られてる?」と思ったらしい。 油断も隙もない世の中だね〜一般国民は油断も隙もありありなんですが・・・ 【身を守れ】FBI、スノーデン、ザッカーバーグらがノートPCのウェブカメラをシールで隠すよう提言 http://xn--nyqy26a13k.jp/archives/22080 健康法.jp/archives/22080  以前、深夜未明にカメラが勝手に起動したときは本当に驚いた https://twitter.com/wVega_Planet/status/777657551479418880 CSRFは本人が意図しない動作をやらされるのが問題 本人が何らか悪さするのとは全く関係ない 今年からPHPを始めました! いきなりですけど教えてください! XAMPPを使って参考書を進めてるのですが、 演算子の「&&」と「||」が「&」と「|」だけでもエラーを出さずに機能してしまいます。 これは一つだけでも機能するものなのでしょうか? あと、スレ違いだったらごめんなさいです。 どうやらビット演算子というものらしいです! お騒がせしました! 誰でも簡単にネットで稼げる方法など 参考までに、 ⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。 グーグル検索⇒『半藤のブブイウイウレレ』 0V8KFKHR55 スレチだったらゴメンナサイ。 現在、WindowsでApacheでPHPを動かしています。 DドライブにVirtualHostごとにフォルダを複数作ってます。 例えば、Aドメイン内のPHPで、「unlink('D:/ドメインB/test.txt');」を実行すると、削除できてしまいます。 また、「unlink('C:/test.txt');」も実行可能でした。 これだとちょっと怖いので、できればAドメイン内のPHPではAドメインフォルダ内のファイルのみ上書き/削除できるようにしたいのですが、 php.iniなのかApacheのConfigなのか、どのあたりの設定を調整すれば良いのか教えていただけないでしょうか。 どうぞ宜しくお願いします。 プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。 KOCIO □は全角スペース <p>あいうえお</p> <p>□□うえ□</p> <p>あい□□お</p> 例えば「え」が縦3つがそろうようにしたいです。 HTMLに直に書くとブラウザで固定幅フォントとしてそろいます。 ところがphpで echo "<p>あいうえお</p>\n"; echo "<p>□□うえ□</p>\n"; echo "<p>あい□□お</p>\n"; とするとバラバラ(段々)になってしまいます どうしたらいいでしょうか? <html><body> <?php $e = getenv(); foreach ($e as $k => $v) { echo "$k:$v<BR>"; } // $x = $_SERVER['REMOTE_ADDR']; ?> </body></html> 環境変数が取得できません。(PATH, PWD, SHLVLだけしか$eに入りません) しかし下から三行目のコメントアウトしてある行を入れると取得できます。 鯖はエックスサーバー、PHPのバージョンは7.2.6です。 何がいけないのでしょうか? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる