【PHP】下らねぇ質問はID出して書き込みやがれ 121
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/07/25(水) 21:30:09.38ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 120
http://kohada.2ch.net/test/read.cgi/php/1340275027/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0251nobodyさん
2012/07/30(月) 23:58:28.17ID:???0253nobodyさん
2012/07/31(火) 00:16:38.66ID:???0255nobodyさん
2012/07/31(火) 00:20:41.08ID:???0257nobodyさん
2012/07/31(火) 00:23:35.87ID:???0259nobodyさん
2012/07/31(火) 00:46:35.49ID:UbsDXBmVローカルでは動作に問題なかったのに
サーバにアップした途端
「Uncaught exception 'SmartyException' with message 'Unable to load template file」ってエラーが出ます。
パスも間違ってないはずなのに原因がわかりません。
バージョンは5.2です
誰かわかるかたいらっしゃいますか?
0260nobodyさん
2012/07/31(火) 00:47:26.03ID:???0261nobodyさん
2012/07/31(火) 00:53:13.74ID:???となるとやっぱパスを見直すべき
0262nobodyさん
2012/07/31(火) 00:55:25.84ID:UbsDXBmVやっぱりパスですかねー
もう一回見直してみます。
だめだったらまた明日来ます
0263nobodyさん
2012/07/31(火) 02:00:21.49ID:???0264nobodyさん
2012/07/31(火) 02:22:21.11ID:LUmYDoEH何のデータ入れるんだろう?
ってか未だにフロッピーって使ってるのかよ。
phpに関係ないけど。
0266nobodyさん
2012/07/31(火) 08:36:11.72ID:UbsDXBmVエラーが発生している場所は
smartyのdisplayメソッドでした。
でもやっぱりパスは間違ってません。
うーんお手上げなんですが何か他に原因調べる方法ないでしょうか?
0268nobodyさん
2012/07/31(火) 08:47:43.50ID:???例外を投げている箇所のコードを貼ってみたら誰か指摘してくれるんじゃないかな?
小さいメソッドなら全部貼り付けちゃえば?
0269nobodyさん
2012/07/31(火) 08:50:34.55ID:UbsDXBmVわかったぁ!
皆さん本当にお騒がせしてすいません。
j.tplっていう名前にしてたんですが、このテンプレートファイル名がJ.tplと今まで大文字にしてました><
パッと見気づきませんでした
windowsだとたぶん大文字小文字関係なく認識してくれるから今まで見れてたけど
サーバのOSは別のファイルと認識してしまってたんだと思います。
昨日10何時間も何やってたんだろ・・
皆さんありがとうございました!!!
0270nobodyさん
2012/07/31(火) 08:51:40.61ID:???それを地元の開業医に持って行って見せるのは普通
0271nobodyさん
2012/07/31(火) 11:47:43.25ID:Ey1BwLMQ【PHPのバージョン】5.3
【質問内容】 1GBぐらいあるタブ区切りのテキストデータを、全てダブルコーテーション付きのタブ区切りデータに変換したいのですが、方法を教えて頂けないでしょうか。
0272nobodyさん
2012/07/31(火) 11:54:47.97ID:???0273nobodyさん
2012/07/31(火) 13:23:26.98ID:???0274nobodyさん
2012/07/31(火) 13:56:13.95ID:???0275nobodyさん
2012/07/31(火) 14:30:37.58ID:???適当過ぎた上にエスケープされたタブ忘れてる。
1GBだとある程度細かく引っ張り出して追記してかんとダメね。
fopenしたあとfgetsして一行ずつ処理して保存先のファイルに押し込んでおけばOKよ。
0276nobodyさん
2012/07/31(火) 14:32:06.43ID:???0277nobodyさん
2012/07/31(火) 14:47:20.08ID:???1億人分の住所録とか
B5ノート100万ページ分のポエムとか
0278nobodyさん
2012/07/31(火) 15:01:18.58ID:???1行10億文字程度のタブ区切りテキスト
0279nobodyさん
2012/07/31(火) 16:03:20.99ID:???file_get_contents でちまちま読み込んで
逐次的に処理してファイルだかDBだかに
追加保存していけばいいんじゃね?
$filename = 'hoge.txt';
$use_include_path = false;
$context = null;
$offset = 0;
$maxlen = 768;
$dst = 'save.txt';
$content = '';
while( false !== ( $read = file_get_contents( $filename, $use_include_path, $context, $offset, $maxlen ) ) ) {
$converted = preg_replace( "/\t/u", "\"\t\"", $read );
$content .= $converted;
$offset += $maxlen;
}
$fp = fopen( $dst, 'w' );
fwrite( $fp, $content );
fclose( $fp );
maxlenを768バイトにしたのはあとで3バイト文字を評価する場合に備えてのことなのであまり気にしない。
0280nobodyさん
2012/07/31(火) 17:08:01.71ID:I5XcFi9O画像の縦サイズを取得したいんですが、getimagesize(base64_decode($row['image']))しても取得出来ません
縦横サイズを取得する方法ってありますか?
0281nobodyさん
2012/07/31(火) 17:13:47.89ID:???0282nobodyさん
2012/07/31(火) 17:22:29.86ID:???0283nobodyさん
2012/07/31(火) 17:24:11.06ID:???0284nobodyさん
2012/07/31(火) 17:24:57.38ID:???0285nobodyさん
2012/07/31(火) 17:29:12.88ID:???恨むなら糞仕様のPHPを恨め
0286nobodyさん
2012/07/31(火) 17:31:18.02ID:???>>285
鉄分か何か不足してると思います
スギ薬局に行くと良いサプリメントがありますよ
0287nobodyさん
2012/07/31(火) 18:30:28.76ID:???大量に画像扱うときなんかだと処理速度がだいぶちがう
0289nobodyさん
2012/07/31(火) 19:43:18.29ID:???0290nobodyさん
2012/07/31(火) 19:45:38.08ID:???0291nobodyさん
2012/07/31(火) 19:48:38.24ID:???0292nobodyさん
2012/07/31(火) 21:41:40.92ID:???第一は自分自身に対する不全感。
自分は非力で、無知で、まだまだ多くのものが欠けている。
だからこの欠如を埋めなくてはならない、という飢餓感を持つこと。
第二は、その欠如を埋めてくれる「メンター(先達)」を探し当てられる能力です。
メンターは先生でもお母さんでも、ネットの中の無名の人でもいい。
生涯にわたる師ではなく、ただある場所から別の場所に案内してくれるだけの
「渡し守」のような人でもいいのです。
自分を一歩先に連れて行ってくれる人は全て大切なメンターです。
第三が、素直な気持ち。
メンターを「教える気にさせる」力です。オープンマインドと言ってもいいし、
もっと平たく「愛嬌(あいきょう)」と言ってもいい。
「学ぶ姿勢」のある人は、何よりも素直です。
つまらない先入観を持たないから、生半可なリアリズムで好奇心を閉ざさない。
素直な人に聞かれると、こちらもつい真剣になる。知っている限りのことを、
知らないことまでも、教えてあげたいという気分になる。そういうものです。
以上、この三つの条件をまとめると、
「学びたいことがあります。教えてください。お願いします」
という文になります。これが「マジックワード」です。
これをさらっと口に出せる人はどこまでも成長することができる。
この言葉を惜しむ人は学ぶことができないのです。
学ぶ力には年齢も社会的地位も関係がありません。
>>287さんも、早く学ぶ力を身に付けてください。
0294nobodyさん
2012/07/31(火) 23:36:54.00ID:???0295nobodyさん
2012/07/31(火) 23:40:12.30ID:???馴れ合いたいなら自己紹介板にでもいけカス
0296nobodyさん
2012/07/31(火) 23:47:43.38ID:???0297nobodyさん
2012/08/01(水) 02:53:55.17ID:???0298nobodyさん
2012/08/01(水) 11:07:54.31ID:???0299nobodyさん
2012/08/01(水) 14:20:22.21ID:dqk18HWb$data = "hoge";
として、
$apple = 0;
if ($apple == $data) ・・・一致する
if ($apple === $data) ・・・一致しない
となります。==では型の相互変換をした後で比較とリファレンスにもありますが、
数値に変換されると"hoge"が0に変換されてるのでしょうか?
0300nobodyさん
2012/08/01(水) 14:38:16.27ID:???0301nobodyさん
2012/08/01(水) 14:44:06.93ID:???0302nobodyさん
2012/08/01(水) 14:54:52.88ID:???0303nobodyさん
2012/08/01(水) 14:56:04.31ID:???0304nobodyさん
2012/08/01(水) 16:24:49.12ID:7jlH6jTDpreg_match(正規表現, $text)で$textが全角文字または半角英数字で構成されていることを
チェックしたいのですが、どうしたら良いでしょうか
記号は一切排除したいと思っています
よろしくお願いします
(以前やっていた方法 preg_match('/^w+$/u', $text)があるときから全角文字をエラーで返すようになってしまい
対応できなくなってしまいました)
0305nobodyさん
2012/08/01(水) 16:46:15.22ID:???こっちで聞けっちゅうに
0306nobodyさん
2012/08/01(水) 17:25:53.54ID:dqk18HWb文字列"hoge"は数字じゃないからゼロを返すってことですかね
0307nobodyさん
2012/08/01(水) 17:39:05.26ID:???というよりも、文字列"hoge"は整数に変換すると0になる。
それ以上でもそれ以下でもなく、そういう仕様だってことでいいと思う。
phpが叩かれる理由のよくあるうちの一つが、こういった暗黙の了解が至る所にあって、
その了解の仕方が何となくだらしない感じがするってことじゃないかと。
このあたりのだらしなさがPHPっぽいといえばそうかも知れないな。
0308nobodyさん
2012/08/01(水) 17:59:30.07ID:???0309nobodyさん
2012/08/01(水) 18:44:36.25ID:???整数の1だろ
0310nobodyさん
2012/08/01(水) 19:10:59.62ID:???0311nobodyさん
2012/08/01(水) 19:41:33.33ID:???"1hoge"は文字列だが数値にキャストすると1になる
文字列 != 数字じゃないからゼロを返す
0312nobodyさん
2012/08/01(水) 19:51:36.21ID:???'0xa' == 0xa
'010' != 010
すてきな仕様w
0313nobodyさん
2012/08/01(水) 20:32:59.29ID:???'010' != '0xa'
'0xa' == 0xa
'010' != 010
0314nobodyさん
2012/08/01(水) 20:49:10.53ID:???PHPもだけど勝手に数値変換すんなと
0315nobodyさん
2012/08/01(水) 20:52:48.11ID:???0316nobodyさん
2012/08/01(水) 21:14:39.82ID:???0317nobodyさん
2012/08/01(水) 21:20:19.99ID:???>"1hoge"は文字列だが数値にキャストすると1になる
>文字列 != 数字じゃないからゼロを返す
文字列"hoge"は整数じゃない
文字列"hoge"は整数と比較する文脈では整数と評価される
文字列"hoge"を整数に変換すると0になる
文字列"1hoge"は整数じゃない
文字列"1hoge"は整数と比較する文脈では整数と評価される
文字列"1hoge"を整数に変換すると1になる
たったこれだけのこと。
0318nobodyさん
2012/08/01(水) 21:42:33.82ID:???ただのキャストを変換っていうんじゃねえよ
0319nobodyさん
2012/08/01(水) 21:53:58.69ID:???やばい!なんかその説明で一瞬わかったつもりがわからなくなった。
文脈ってなんだ?PHP的文脈ということ?
PHPの仕様だからそうですというだけか。
0320nobodyさん
2012/08/01(水) 22:01:26.66ID:???0321nobodyさん
2012/08/01(水) 22:09:41.93ID:???数字のみで構成された文字列なら
数値と比較するときは==使う
とかちゃんとした理由があって
比較演算子を厳密にするか否かを決めないと
0322nobodyさん
2012/08/01(水) 22:37:05.68ID:???おいおい大丈夫かよw
「ただのキャスト」ってなんだよ、「ただのキャスト」って。
キャストってのは「強制的な型変換」のことだろうが。
317でいう変換は詳細に書けば「自動変換」だ。
原文で言うと「automatic type conversion」だよ。
>>319
文脈ってのは言葉の連なりだ。当たり前だが。
原文で言うところの「context」だよ。
a variable's type is determined by the context in which the variable is used.
単に「文」として訳されているみたいだけど。
実際騒ぐようなことじゃないんだよ、確かに。
あっさり流そうぜ。
結局、PHPの言語仕様はとっても下品でだらしないんだよ。
だが、それがいいんだよwww
0323nobodyさん
2012/08/01(水) 22:40:42.25ID:???0324nobodyさん
2012/08/01(水) 22:41:35.19ID:???ちょっとPHPとずれてるかもしれませんが聞いてください。
クラスの時間割(6時間)を5日分DBに登録するとします。
これを一つのテーブルに登録すると30行になると思います。
後で水曜日の時間割が一時間増えたってなったとき、
挿入しようとしてもDBって末尾にしか追加できないから、
その追加した水曜日の1時間だけ31行目に追加されてしまい、
GUIベースで表示しくてれるツールでDBを見たときに汚くなってしまいます。
なので月〜金までのテーブルを5つ作ったほうが、
後から追加しやすくなるかなと思ったのですが、どっちがいいでしょうか?
最初の方法でもどうせ曜日で検索かければデータとしては取得できるのでいいかなと思ったのですが、
実際は皆どうやってるのかなーと思いまして。
アドバイスください
0325324
2012/08/01(水) 22:42:05.47ID:czvsIOAR0326nobodyさん
2012/08/01(水) 22:46:07.93ID:???> その追加した水曜日の1時間だけ31行目に追加されてしまい、
> GUIベースで表示しくてれるツールでDBを見たときに汚くなってしまいます。
気にしたらハゲ
曜日の順・時間の順で表示すればいい
曜日ごとにテーブルを作るのは無駄で愚の骨頂
0327nobodyさん
2012/08/01(水) 22:48:51.76ID:???0328nobodyさん
2012/08/01(水) 22:50:08.26ID:czvsIOARありがとうございます。
じゃあ基本的にDBって書き込まれてる場所はどこでもよくて、
見れるときにちゃんと見れればいいって感じですか?
0329nobodyさん
2012/08/01(水) 22:50:47.18ID:???http://toro.2ch.net/test/read.cgi/db/1341061787/
ほれ
はやってないけどageればすぐ答えつくからこっちで質問しなさい
0330nobodyさん
2012/08/01(水) 22:52:54.85ID:czvsIOARありがとうございます。
こっちに移動しますね。。
0331nobodyさん
2012/08/01(水) 22:54:18.06ID:???それに思いっきりスレチだわな。
とはいえこの場合は一つの方法として時間割のテーブルと科目のテーブルを分けて、
それらの関係を表現するテーブルでつなげるってのがよくあるパターンだろうな。
時間割のテーブル:time_tables
id
class_id
weekday
科目のテーブル:courses
id
name
時間割 has many 科目:time_tables_courses
id
time_table_id
period
couse_id
みたいな感じか
0332nobodyさん
2012/08/01(水) 22:56:32.66ID:???0333nobodyさん
2012/08/01(水) 23:01:52.30ID:czvsIOARテーブル繋げたことないのでさっぱり分かりませんね。。
とりあえずレスコピらせて勉強させてもらいます><
あざっす!
0334nobodyさん
2012/08/01(水) 23:16:21.27ID:???0335nobodyさん
2012/08/01(水) 23:19:38.06ID:???0336nobodyさん
2012/08/02(木) 08:08:31.92ID:Ly1SsDN+そのデータを受けるPHPのコードを書いたりめんどくさいです。
何かいいツールないんですか?
それとも皆さん毎回ガリガリhtmlでフォーム作ったり、PHPのコード書いてるんですか?
0337nobodyさん
2012/08/02(木) 08:22:04.89ID:???0338nobodyさん
2012/08/02(木) 08:34:23.33ID:???0339nobodyさん
2012/08/02(木) 08:42:39.63ID:Ly1SsDN+それともガリガリが普通なのであれば頑張れといってください
0340nobodyさん
2012/08/02(木) 08:44:47.64ID:???まぁフレームワークわかりませんって泣きつかれても困るんで
頑張れ
0341nobodyさん
2012/08/02(木) 08:48:25.67ID:Ly1SsDN+ありがとうございます
さっそくダウンロードさせてもらいます。
0342nobodyさん
2012/08/02(木) 09:14:55.86ID:???0343nobodyさん
2012/08/02(木) 11:27:48.74ID:???パスワードを暗号化してクッキーに保存して、
後からそのクッキーを読み込んでパスワードがあっていれば、ログイン後のページを表示するっていうのがあったんですが、
これってどうなんですか?
暗号化しててもパスワードをクッキーに保存するのってあり?
0344nobodyさん
2012/08/02(木) 11:55:42.70ID:???サイトなら別にいいんじゃない?
あとは暗号化の方法にもよると思うけど
ユーザーが他のクリティカルなサイトのパスワードと
同じものを登録していた場合
パスワードが漏れて大変なことになることもあるかもしれない
0345344
2012/08/02(木) 11:59:27.75ID:???>>343
の方法ってクライアントサイドでパスワードが
あってるかどうか判定するってことでいいのかな?
そのログイン後のページに入ろうと思えばいくらでも方法がありそうだよ
どちらにしろやめたほうがいいような気がするな
0346nobodyさん
2012/08/02(木) 12:00:04.69ID:???やめときます
ありがとうございますた
0348nobodyさん
2012/08/02(木) 12:57:49.98ID:JyNjR/5H【PHPのバージョン】5.3
【連携ソフトウェア】
【質問内容】
文字数でソートを行いたいのですがそういった関数はありますか?
昇順降順といったなかでいくつか種類はありますが文字数でのソートがありませんでした。
そういった関数があるようなら教えていただけないでしょうか。
宜しくお願いします。
0349nobodyさん
2012/08/02(木) 12:59:16.07ID:Ly1SsDN+0350nobodyさん
2012/08/02(木) 13:12:01.59ID:???$l = array("aaaaaa","bbbb","cc","ddd","eeee","fff","g");
usort($l, function($a,$b){$al=strlen($a);$bl=strlen($b);if($al==$bl)return 0;else return $al<$bl?-1:1;});
print_r($l);
■ このスレッドは過去ログ倉庫に格納されています