くだすれPHP(超初心者用)6
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/04/05(日) 22:04:26ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
ttp://www.php.net/
ttp://jp.php.net/
前スレ
くだすれPHP(超初心者用)5
http://pc11.2ch.net/test/read.cgi/php/1227303362/
関連スレ
PHP総合雑談スレ
http://pc11.2ch.net/test/read.cgi/php/1200314111/
PHP初心者勉強会やらんかね!
http://pc11.2ch.net/test/read.cgi/php/1209137730/
0263nobodyさん
2009/06/01(月) 23:44:41ID:???http://pc11.2ch.net/test/read.cgi/blog/1237205315/
0265262
2009/06/02(火) 00:04:45ID:nshP4Iwz本当にど素人ですみません
5日前までHTMLを拡張子だとしか認識してなかったレベルです
3日前までPHPは新書の出版社名だと思ってました
>>263のスレに行ってきます
お世話になりました、また移動しますノシ
0266nobodyさん
2009/06/02(火) 05:39:38ID:td4jeRp0現在、php+MySQLで携帯サイト(3キャリア対応)を作成しているのですが
文字コードの問題で文字化け等で困っています。
MySQLは文字コードがutf-8です。
始めは、utf-8でコーディングしていたのですが、携帯サイトはShift-JISの方が良いとの事で
コーディング自体をShift-JISに変えてみたのですが、今はDBからの値が文字化けしてしまっています。
いまは文字コードがバラバラになってしまい統一出来ていない状態です。
・出力部分だけをShift-JISに変換して表示させた方がいいのでしょうか?
(例■$html = mb_convert_encoding($html, "SJIS", "UTF-8");
・それと「SJIS-win」などは使った方がいいのでしょうか?
絵文字などは
mb_substitute_character('none');//存在しない文字コードの処理を設定。
$Pictograph = mb_convert_encoding($Pictograph, 'Shift_JIS', 'Shift_JIS');//絵文字削除
上記のような事をして削除しておりました。
しかし、正常に表示(3キャリア)されるのなら絵文字表示してもいいかなと思っている状態です。
長文申し訳ありません。
0267nobodyさん
2009/06/02(火) 08:14:19ID:???以上。
0268nobodyさん
2009/06/02(火) 08:16:20ID:???PHPを出版社だと思ってたなんて・・・ま、オレもそうだったけどw
Wordpressって使ったことないんだけど、RSS出力とかないのかい?
>266
文字コードが違うと文字化けするのは当たり前だろう・・・
HTMLがSJISならDBからの出力もSJISにしないと。
出力するところだけmb_convert_encodingで変換させるといいよ。
DBに登録するときは反対にSJISからUTF-8に変換しないとDBのほうが化けるからね。
0269265
2009/06/02(火) 11:16:28ID:QiIiWnUHあります
でも俺の技術力じゃどうにもできません
今は、
WordPressループを挿入?トップページを静的ページに?
テーマ変更?ページテンプレート使用?
どれがいいか向こうで聞いてます
やっぱり本当は自分でデザインしたHTML内部に埋め込みたいなあ
0270nobodyさん
2009/06/02(火) 11:34:43ID:???ググればなんぼでもRSSに関する事が出てくるから調べてみるといいよ。
PEARなんか使えば簡単に使えるから。
PHP5なら最初からRSS関係の関数はあるんでもっと簡単だよ。
配列にRSSで読み込んだ記事が入るんで、普通にそれをprintやechoで出力するだけだし。
0271nobodyさん
2009/06/02(火) 12:00:45ID:???やりたいことのレベルに達するのはかなり苦労しそう。
0272nobodyさん
2009/06/02(火) 14:49:38ID:???メール専用DBか?
0273nobodyさん
2009/06/02(火) 14:53:47ID:???普通はEUCだよな
0275nobodyさん
2009/06/02(火) 18:45:59ID:???0277nobodyさん
2009/06/02(火) 19:09:02ID:???最近はHTMLもUTF-8にしてる。
携帯のサイトはSJISだけどね。
0278nobodyさん
2009/06/02(火) 23:08:51ID:yP1TTuLt基本オープンソースのアプリケーションてMVCはっきりしていないですよねって
実際プロの人っていうか、金もらってWebアプリ作られている方は
どんな感じでコーディングなさっているのかなぁって思ったんです。
0279nobodyさん
2009/06/02(火) 23:17:04ID:???0280nobodyさん
2009/06/02(火) 23:26:34ID:???>278
プログラミングでは、上のほうのレベルでは金をもらっているかもらっていないかはあまり関係ない。
Linux開発者は基本的に金をもらっていないわけだが、彼らの技術力には疑問の余地はないだろ。
んで、実際だが。
PHP開発の大半はフレームワークに移行しているらしい(ソースは『PHPプロ!』)ので、恐らく大半がMVC。
うちは自社サービスだが、フリーダムすぎて恐らく参考にならない。
同じサービスのはずなのにエンドユーザ側と管理側でフレームワークが違う、とかあったからな。誰か言えよと。
ちなみにWordPressはプラグインなどの拡張性を考えた結果の設計だろう。特殊な例だと思う。
0281nobodyさん
2009/06/02(火) 23:34:03ID:yP1TTuLtたしかにプラグイン関連を考えると特殊ですね
お聞きしたいのですがMVCのvはどんな感じでコーディングなさってます?
自分はZF,Smartyです。
0282nobodyさん
2009/06/03(水) 00:34:52ID:???フレームワークを使う利点がイマイチわからないんだよね。
設計・開発・管理を全て一人でやってるし・・・。
でもそのうちフレームワークに移行しないといけないな、とは思ってる。
思ってるけど時間がなくてなかなか移行に踏み切れない。
0283nobodyさん
2009/06/03(水) 00:47:44ID:???自分なりのフレームワークもどき出来てきちゃうし。
0284nobodyさん
2009/06/03(水) 01:28:18ID:???色々ごてごて機能追加とか思いついたことくっつけてくと
下位互換が無くなったりして、古いアプリケーションとか放置になるという。
0285nobodyさん
2009/06/03(水) 01:57:55ID:???これ見て勉強中です。
search.phpのスキルの部分で
$temp_where .= "skill REGEXP '$value' || ";
という部分があるんですが、
これは$temp_where .= "'$skill' REGEXP '$value' || ";
ではないのでしょうか。
なんでskillだけなんでしょうか?
すいません。教えてください。
0286285
2009/06/03(水) 01:59:39ID:LH3y5rMl0287nobodyさん
2009/06/03(水) 02:21:04ID:???foreach($skill as $value) {
$value = addslashes($value);
$temp_where .= "skill REGEXP '$value' || ";
}
の部分が、ナニしてるか理解出来てないみたいだね。
例えば、$skill = array('a', 'b', 'c')の場合
$temp_whereは
skill REGEXP 'a' || skill REGEXP 'b' || skill REGEXP 'c' ||
という文字列になる。
意味は、取得するレコードを、skillの内容がaまたはbまたはcを含む場合のみに絞り込むってこと
skillはテーブルの列のことであり、$skillとは関係ないの
同じskillという文字が入っているから、勘違いしたんだと思うけど
0288nobodyさん
2009/06/03(水) 10:30:53ID:hUsGsYQXskillはテーブルの列ってどういう意味?
よくわかりません。
後$temp_where = substr($temp_where, 0, -4);
はどういう意味でしょうか?
0289nobodyさん
2009/06/03(水) 10:33:47ID:???そもそもデータベースそのものが理解できて無いのか?
だとするとphpの前に勉強することいっぱいあるぞ。
0290nobodyさん
2009/06/03(水) 10:50:55ID:???解説も雑だし初心者用としては不向きだと思われ。まだ本買ったほうがいい。
0291280
2009/06/03(水) 23:14:21ID:???テンプレートエンジンは基本的にはSmarty一本。デザイナーや企画者に無駄な負荷をかけないための措置。
デザイナーが携わらない社内利用モノとかも、面倒という理由でそのままSmartyになってる事が多い。
ビュー層がHTMLではない場合(CSVとかXMLとかJSONとか)は単純なPHPで処理してる場合もある。
0292nobodyさん
2009/06/04(木) 00:27:07ID:???0293nobodyさん
2009/06/04(木) 00:36:02ID:???おすすめの参考サイトがあれば教えてください。
0295nobodyさん
2009/06/04(木) 00:49:02ID:???このサイトは便利でいいよね
0296nobodyさん
2009/06/04(木) 01:06:34ID:???プログラムを教えてください
http://pc12.2ch.net/test/read.cgi/tech/1243778529/
0297266
2009/06/04(木) 03:44:06ID:7qmYMxpODBの文字コードは変えるつもりはありません。というより他のシステムに支障をきたすので…
今の所はHTMLの出力部分を変数に入れて、「mb_convert_encoding」でSJISにしてして出力する事にしました。
HTML部分を全て変数に入れてしまっているので、かなり強引だと思いますが一応正常に出力出来ました。
0298nobodyさん
2009/06/04(木) 06:38:42ID:???ちょっと自分には難しかったです。
>>296
このスレは分かりやすいですねでも
51レスで終わってるのでそれ以降が分からないorz
0300nobodyさん
2009/06/04(木) 08:47:07ID:f7spCjC/ttp://dev.mysql.com/doc/refman/4.1/ja/regexp.html
フィールド名 フィールド型 属性
number int(5) PRIMARY KEY, AUTO_INCREMENT
name varchar(255) NOT NULL
address varchar(255)
gender varchar(255) NOT NULL
skill varchar(255)
今回は「名前」「住所」「性別」「スキル」の4つの条件で検索できます。
↑
0301nobodyさん
2009/06/04(木) 08:53:24ID:f7spCjC/変数→配列→条件→フォームを使った操作→関数
クラス→SQL→データベース接続→Webアプリを作ろう
→PEAR→フレームワーク
が一般的な流れでおそらく初心者は関数・クラスで挫折すると思う。
自分で本屋に行ってクラスの項目を開いて読みやすい参考書を選ぶとGood!
クラス・メソッド・コンストラクター・プロパティなどがキーポイント
0302298
2009/06/04(木) 11:31:58ID:???yes、phpプロとかてサイト見つけたので
今、参考にしてます。
>>301
やっぱり参考書も1冊は必要なのかぁー
これから本屋行って色々見てきます^^;
0303nobodyさん
2009/06/04(木) 11:32:36ID:???0304nobodyさん
2009/06/04(木) 13:03:28ID:f7spCjC/がんばってね
0305nobodyさん
2009/06/05(金) 00:24:57ID:???過去に少なくとも一つ、プログライング言語をたしなんでいれば、そうかも知れんが、
未経験者って言ってるから、始めのうちは何か手元にあるといいかもね。
最終的には、公式サイトと適当にググった結果を参照することになるだろうけど
0306nobodyさん
2009/06/05(金) 00:50:37ID:???0307nobodyさん
2009/06/05(金) 02:20:53ID:???0308nobodyさん
2009/06/05(金) 02:54:33ID:???・エラーメッセージを読める事(設定をちゃんとして、数十行の英文でもちゃんと目を通す)
辺りは必須だな。2chに限らず、ダメな初心者はこの辺ができていない事が多い。
この辺ができてれば、後は努力でなんとでもなる。
error_reportingとdisplay_errorsに触れてないものは、その時点で紙だろうとサイトだろうとアテにならん。
0310nobodyさん
2009/06/05(金) 17:00:46ID:fRLRCZ+m↑どういう意味ですか?modeって
0311nobodyさん
2009/06/05(金) 17:27:33ID:???のURLクエリでしょ
0312nobodyさん
2009/06/05(金) 17:27:37ID:???$_REQUEST使えよ
0313310
2009/06/05(金) 17:29:34ID:fRLRCZ+m使わねぇでおくわ。
0315nobodyさん
2009/06/05(金) 20:08:58ID:???0316nobodyさん
2009/06/05(金) 20:16:09ID:???GETで入ってきた場合は、その値を代入。
そうじゃない場合は、POSTの値を代入。
こういう意味じゃない?
0318nobodyさん
2009/06/08(月) 15:55:38ID:???色々ググったところ、日本語を使うなら今ならTCPDFがいいという結論になりましたので、それを使うことになりました。
解説サイト(http://www.monzen.org/Refdoc/tcpdf/)を参考に設置したのですが、
真っ白なPDFしか出来ません。上記のサイトの初っぱなのサンプルをそのまま入れても真っ白です。
下の方にある、様々なサンプルもいくつか試しましたがどれも真っ白なPDFしか出来ませんでした。
一体何が悪いのでしょうか?
SourceForgeからPHP4用のTCPDFをダウンロードして、ルート下のincludeというフォルダにtcpdfフォルダをぶち込んで、それをrequireしています。
0319nobodyさん
2009/06/08(月) 15:59:15ID:???あと公式のドキュメントなりFAQなりを見てみれば?
0321nobodyさん
2009/06/08(月) 16:32:25ID:???特に関連するようなエラーログは残ってないです。
0322nobodyさん
2009/06/08(月) 16:53:53ID:???公式に書いてある説明だけど
・tcpdfフォルダ全体をchmod -R 644
※FTPソフトからパーミッションを変更する場合はサブフォルダ含めて一個ずつ644に変更
・「cache」と「images」フォルダのパーミッションを666に変更
それかpdfを出力するのにメモリが不足してるのかも。
あと自分で書いたスクリプトの各処理のあとに何がを画面に表示させて、どの行で止まってるのかを調べると良かろう。
0323nobodyさん
2009/06/08(月) 17:03:51ID:???PHP4な他のサーバーにPHP4用をアップロードしましたが、こちらはまたもや真っ白でした。
PHP4用は何か他に設定しないといけないところがあるんですかね・・・
パーミッション関係は設定しました(imagesを666にすると、読み取れないとエラーが出たので755にしましたが)。
0324nobodyさん
2009/06/08(月) 17:48:19ID:???php4でもバージョンはいろいろあるのでそれを確認する
どこで処理が止まっているのかを特定する
chacheフォルダに書き込めるかテストする
お宝画像を発掘しそれをスレ住人に与える
0325nobodyさん
2009/06/08(月) 17:56:59ID:???真っ白なページといいましたが、ちゃんとAcrobatReaderは起動してPDFの表示は出来ています。
PDFが真っ白なだけで、生成はされているようです。PDFの情報もきちんと入っています。
とりあえずTCPDFはおいておいて、FPDFにチャレンジしましたが、こちらは
「FPDF error: This version of PHP is not supported」と出てPDFすら表示されません。
公式を見ると、PHP4.3.1以上となっているので、大丈夫なはずなんですが・・・。
もうウチのサーバーではPDFを生成出来ないのでしょうか・・・。
0326nobodyさん
2009/06/08(月) 18:03:51ID:???やはりTCPDFと同様に真っ白なPDFが生成されました。
なにか他の原因がありそうですが、糸口が見つかりません・・・
0327nobodyさん
2009/06/08(月) 18:20:15ID:???0328nobodyさん
2009/06/08(月) 18:23:49ID:???同じサーバー内で動いているphpMyAdminのPDF出力はTCPDFを使っていると思うのですが、こちらはちゃんとPDFが出力されます。
0329nobodyさん
2009/06/08(月) 19:32:32ID:???あわてていろいろ別のに走ると余計に遠回りになるかもしれないよ。
0330nobodyさん
2009/06/08(月) 20:44:25ID:???PDFlibも念のため試しましたが、やはり真っ白なPDFが開くだけです。
関係あるかどうかはわかりませんがGDライブラリは使えます。
phpMyAdmnのPDF出力は文字化けするものの、ちゃんとPDFが生成されてますので全くPDF関係が使えないというわけではなさそうですが・・・。
0331nobodyさん
2009/06/08(月) 21:58:50ID:???$pos = array("row" => 12.1234 , "col" => 77.1234);
$pos2 = array($pos,$pos,$pos,$pos);
$
$js = array(
array("id" => "icon1" , "name" => "ID_1","pos" => $pos , "size" => 10),
array("id" => "icon2" , "name" => "ID_2","pos" => $pos2, "size" => 10),
array("id" => "icon1" , "name" => "ID_3","pos" => $pos , "size" => 10)
);
0332nobodyさん
2009/06/09(火) 00:02:44ID:H57jWlF/0333nobodyさん
2009/06/11(木) 11:36:52ID:???DBに格納されている日付(TEXT) 「2009-06-11 00:00:00」を
PHPで引っ張ってきて、この日付から例えば1ヵ月後の日付を求めたい場合は
どうすればよいでしょうか?
いろいろ探してみると、strtotimeを使えばよいと書いてあるサイトがありましたが、
>>3,5,7,10,12月の月末に実行すると、そのまま3,5,7,10,12月が返ってきてしまいます。
とのことで、mktimeの使用を推奨しているようです・・・。
0334nobodyさん
2009/06/11(木) 11:49:25ID:???翌月同日なんだとしたら、31日の1ヵ月後は翌月月末なのか翌々月になるのか
mktimeだと例えば6/31は7/1になるけれども
0335nobodyさん
2009/06/11(木) 11:51:38ID:???プラス30日とか、年月日の「月」だけが1加算されればいいとか、
例えば2009-01-31の一ヵ月後はいつになる?
0337nobodyさん
2009/06/11(木) 14:08:51ID:???お返事ありがとうございます。
とりあえず、レスした後にmktimeを使用した方法は出来ました。
>>334さんがおっしゃる通り、6/31は7/1になりますね。
恐らく>>334さんがおっしゃることと同様の事を皆様考慮して頂いていたようですが、
「約1ヶ月後」というアバウトな答えで今回は問題ないです。
ですので今回は、取得した日付に「+86400*30」で出すことにしました!
レス下さったのに、申し訳ないです。ありがとうございます。
>>336さんのDBでやらせたほうがいい、という件はどういう方法でしょうか?
DATA_ADD(now(), interval 1 MONTH)のことかなぁ・・・?
0338nobodyさん
2009/06/11(木) 15:09:23ID:???『DBに格納されている日付の1ヶ月後』ということだが
何年まで対応できればいいんだ?
このDBに格納されている日付って、2100年とか3000年とかは無いよね?
0340nobodyさん
2009/06/11(木) 16:40:30ID:???上にも書いたけど、気にしてるのは2038年ね。
DBに格納されている日付を2038/01/01にして、
それの1ヶ月後を正しく取得できればいいよ。
0341nobodyさん
2009/06/11(木) 16:40:53ID:???0342nobodyさん
2009/06/11(木) 17:09:00ID:???ごめんなさい。そういう意味で仰られていたんですね。
どうしてあげればいいのか私には検討つきません・・・。
0343nobodyさん
2009/06/11(木) 17:19:43ID:???0344nobodyさん
2009/06/11(木) 17:32:43ID:???0345nobodyさん
2009/06/11(木) 23:29:31ID:???受験数学とかで、たまに出るよね。
0346nobodyさん
2009/06/11(木) 23:38:44ID:???何でもかんでもPHPでやることはない。
0347nobodyさん
2009/06/12(金) 07:13:07ID:???そうでないものを別にわざわざDBでやる必要は無いだろ
PHPで+3 daysでできるんだし
0348nobodyさん
2009/06/12(金) 10:08:34ID:???「+3 days」って具体的に何を使うんですか?
strtotimeなどは2038年問題で駄目だし
PEAR Dateは一部int使ってるから68年以上の期間を扱えないし
php5.2以上ならDateTimeなんでしょうけど。
0349nobodyさん
2009/06/12(金) 10:11:24ID:???どんだけすばらしいプログラムだよ
0350nobodyさん
2009/06/12(金) 10:21:36ID:???もしその頃までPHPが存在してたとしても今のバージョン5が動作するサーバもOSすらもないんじゃないか?
PHP案件なんて納品さえできれゃいいんだよw
0351nobodyさん
2009/06/12(金) 10:27:54ID:???ニュースになってるのに、未だに2038年問題すら考えないでモノ作ってるのか?
別に2038年にならなくても、今でも未来日の計算とかするだろ?
0352nobodyさん
2009/06/12(金) 10:57:00ID:???今でも未来日の計算とかしないよ
0353nobodyさん
2009/06/12(金) 19:11:51ID:???0354nobodyさん
2009/06/12(金) 20:34:15ID:???お前らこういうの、答えられる?
0355nobodyさん
2009/06/12(金) 21:42:36ID:???0356nobodyさん
2009/06/13(土) 10:47:20ID:???0357nobodyさん
2009/06/13(土) 18:50:47ID:CPSa6yMKランダムの行目の一行だけを取り出すには、どうすればいいんでしょうか?
↓の場合に、$tempに$num行目のデータを入れたいです
$fh=fopen(sample.txt,"r");
$num=rand(1,999);
$temp=;
fclose($fh);
0358nobodyさん
2009/06/13(土) 18:58:15ID:???0359nobodyさん
2009/06/13(土) 19:09:16ID:CPSa6yMKさっそくのレス、どうもです。
file関数ですね。挑戦してみます。
0360nobodyさん
2009/06/14(日) 10:46:19ID:???0361nobodyさん
2009/06/14(日) 20:12:59ID:???0362nobodyさん
2009/06/16(火) 01:15:17ID:???<data info="foo">
"bar"|tr
</data>
このコードで、barをマッチさせたいのですが、
'foo"> "bar'
がマッチしてしまいます。
$regex = '/"(.*?)"\|tr/s';
$regex = '/"[^"]+(.*?)"\|tr/s';
この2つを試したのですが、うまくいきません、
どうしたらいいでしょうか?
■ このスレッドは過去ログ倉庫に格納されています