【PHP】下らねぇ質問はID出して書き込みやがれ 110
質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 109
http://hibari.2ch.net/test/read.cgi/php/1311803617/ ◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
6 :
nobodyさん :2011/08/30(火) 22:03:39.24 ID:DvU7LE2b
8 :
6 :2011/08/30(火) 22:50:00.34 ID:DvU7LE2b
ClassA を継承したClassB の中で ClassCのメソッドを、ClassA内で定義することなしに呼ぶ方法はないでしょうか。 ClassA extends ClassB, ClassC とできればよかったのですが、できないらしいので…。 今までは、ClassA内にClassCのインスタンスを持って、 ClassA内でClassCのメソッド全てを定義して メソッド内部でClassCのメソッドを呼び出すようにしていました。が、非常に面倒です。
$Hantei(判定)って変数使ったら、 依頼主 が「変数$Hentai(変態)ってどういうことじゃワレ」 って抗議の電話入れてきてワロタ。
14 :
nobodyさん :2011/08/31(水) 02:29:06.59 ID:5FGQSxlf
このスレっていい年こいたジジイが多そうwww 30代でただのプログラマー(笑)で年収500万とかだろ?w 負け確定じゃん 結婚相手はそこらのブス。食事はスーパーの惣菜とかか??? この上なく惨めだな。
$変態は使えないのか。
>>14 年収が高くて、嫁が美人だと幸せと思っているのか?
低くて不細工よりは幸せだろうな
年収500万で負け組とか世間知らずもいいところ
年収500万は明らかに負け組みだろw 子ども手当の所得制限だって960万だよ
>>14 負け組みはスーパーの惣菜なんか買わないから。
割高の惣菜買うより自炊が基本だろ。
960万っていうけど 日本人で年収1000万超えてるの何%だと思ってんの? 男で8.3%、女で1.1% ちなみに500万以下は 男で62.4%、女で91.1% 500万が負け組っていうなら日本人の半数以上は負け組 どうせニートなんだろうが世間知らずも大概にしろ
負け組を年収で定義することはできない
>>17 自分が金持ちでイケメンでも、相手に浮気される不安はあるんだぜ
>>11 次からID出せよ
PHP 5.4 でいいなら traits、そうでないならマジックメソッド
# traits
trait Hoge { public function hogehoge() { echo __METHOD__; }}
class A { use Hoge; }
$a = new A();
$a->hogehoge();
# magic method
class Fuga { public function fugafuga() { echo __METHOD__; }}
class B {
public $fuga;
public function __call($name, $args) {
if (!method_exists($this->fuga, $name)) {
throw new RuntimeException();
}
return call_user_func_array(array($this->fuga, $name), $args);
}
}
$b = new B();
$b->fuga = new Fuga();
$b->fugafuga();
頭が悪いんだな
>>19 のツッコミであって
流れをよめば
>>21 が年収で判断してるとは到底読めない
「500万の年収では今では負け組とは言えぬ。なぜなら6割もの人が500万以下だから。」
が
>>24 の主張。
→「だから500万は負け組ではない」と言ってるわけではない。
→「500万が低いと言う奴は世間知らず」と言ってるだけ。
>>24 を「だから『負け組の基準を300万に下げろ』と言ってる」と受け取ってしまう奴は不幸な奴。
日本語でおk
また自演荒らしか。
ニートはだまってろよ 俺はニートだから普段は静観してるが ニートがしゃしゃり出るのは我慢ならん
|| ★ 荒らしは放置されるのが一番苦手なの || → ウザイと思ったらそのまま放置して。 || ▲ 放置された荒らしは煽りや自作自演であなたのレスを誘うのよ。 || → 釣られてレスしたらその時点であなたの負けだよ。 || ■ 反撃は荒らしの滋養にして栄養であり最も喜ぶの。 || → 荒らしにはエサを与えちゃだーめ。 || ☆枯死するまで孤独に暴れさせておくのが一番よ。ふふ。
言っとくけど勝ち組以外は全員負け組みなんだけどな。 年収960万以上が約10%だとして、そいつらが勝ち組だとすれば 残りの90%は全員負け組みってこと。 階層はミラミッド構造なんだから負け組みが多いのは当然だろ。
じゃあもうカルロス・スリム以外負け組でいいよ
>>37 自分を中流と称して満足したいのかも知れんけど実態は負け組みだから
こういう負け組だの勝ち組だのニートっぽいこというやつに 給与明細うpとかいうと黙りこむんだよな
40 :
nobodyさん :2011/08/31(水) 20:47:48.64 ID:iafVzHoI
くくく、私の年収は216万です。 たまんねーよ。定時帰りよ。もう徹夜はいやなんだ。
41 :
nobodyさん :2011/08/31(水) 20:50:12.85 ID:iafVzHoI
おれをなんとののしろうといい。 負け組でもいい、結婚できなくてもいい。 でも7時には帰って、11時には寝たいんだ
43 :
nobodyさん :2011/08/31(水) 21:57:53.21 ID:iafVzHoI
いやだ。9時〜18時で帰る。 残業はしても1時間まで
リーマンショックで本社移転して 新卒内定取り消しで今年ひさびさに新卒が入ってきた 取引先とか同業者もあんまり思わしくないらしい 出向先も暇そうだった 特にここ1年半は定時上がり多いよ 仕事がなくて新人教育や待機な時も前より多いし 残業も全然ないね 給料はそんな変わってないけど多忙だった昔が懐かしい
残業が減ったのに給料変わらないのか
残業手当は減ったけど基本給が上がったんでしょ
俺は日没と共に寝て日の出と共に起きるようになった。 収入は残業時代の2/3。
アメブロのようなブログサービスで 新しく自分のページを作成する技術はphpで可能なのでしょうか? ググる時は何でやったらいいのですか?
ググる検索ワードまで他人に聞くようじゃ終わってる
51 :
nobodyさん :2011/09/01(木) 03:22:08.70 ID:nMRjMifQ
アメブロのようなブログサービスで 新しく自分のページを作成する技術はphpで可能なのでしょうか?
52 :
nobodyさん :2011/09/01(木) 05:20:58.18 ID:0nj8hYKu
すみません $a が空でなく $aと $bが同一で$nが10以下の分岐をまとめて書くとどうなりますか? if ( 1 && !($a !== '' && $a === $b && $n < 10) ) { } ↑これで合ってると思うのですが、たまに失敗してしまいます。。
53 :
nobodyさん :2011/09/01(木) 05:27:28.70 ID:0nj8hYKu
ああ大切な事忘れてました $a が空でなく $aと $bが同一で$nが10以下の場合を除外したいのです if を分けられない状況でまとめて書きたいです
これでいいだろ。超スッキリだ。 if( check($a, $b, $n) ) { } function check($a, $b, $n) { 中身かけ }
55 :
nobodyさん :2011/09/01(木) 05:49:02.18 ID:0nj8hYKu
>>54 どうしても関数はダメなんです
なんとか教えて下さいー> <
>>52 10以下なら $n <= 10 な
あとは !($a !== '' && $a === $b && $n <= 10) をド・モルガンの法則にならって展開するだけ
if ($a === '' || $a !== $b || $n > 10) {
}
57 :
nobodyさん :2011/09/01(木) 06:22:08.27 ID:0nj8hYKu
>>56 できました。ありがとうこざいます!
初めて聞きましたドモルガンの法則 勉強になります
勉強になってないだろw
phpを使って、メールで送った文章と画像をDBに登録(画像はディレクトリに)するといった作業を行っています。
メールのデコードにはPEAR::Mail::mimeDecodeを使っているのですが、iPhoneで送ったメールだけ上手く処理されません。
具体的には、iPhonei.softbank.jpドメインから画像を添付してメールを送信すると、bodyが取得されません。
画像を添付せずに、本文だけだとbodyは取得されます。
また、PCからの一般メール、ドコモ、au、softbank.ne.jpからのメールは問題ありませんでした。
i.softbank.jpはメールの仕様が他のとは違うのでしょうか?
ググって、
ttp://d.hatena.ne.jp/oinusama/20110829/p1 このページは参考にしましたが、そのページを見る限り問題なさそうですが・・・。
よろしくお願いします。
61 :
nobodyさん :2011/09/01(木) 12:17:15.38 ID:3e3oRDh/
nl2br関数が動かないです。 stripslashesは動くんですが。。 自分でググってみてもわかりませんでした。 どういった理由か教えていただけませんか?
echoなりなんなりしてないとかじゃないの
前にnl2brの第二引数に<br>にするfalse指定をしたら エラー出て動かないサーバがあったな falseとっぱらったら動いたから htmlなのに<br />が混在するソースになったが機能的には問題ないから気にしないことにした 原因の調査まではしなかったけどfalse入れてんならとってみ
65 :
64 :2011/09/01(木) 12:33:09.26 ID:???
自己レスすまんが
>>64 の原因分かったわ
5.3.0 オプションの is_xhtml パラメータが追加されました。
って書いてあった
5.3未満のシステムじゃ第二引数使えないんだな
66 :
nobodyさん :2011/09/01(木) 13:11:45.57 ID:P+Ejz7VY
>59 です。 すいません。チェックを外すのを忘れていました。
>>66 各端末からどういうデータが送られてきているか見てみたら?
68 :
nobodyさん :2011/09/01(木) 13:45:20.10 ID:P+Ejz7VY
>67 送られてきたメールを書き出して比べてみましたが、i.softbank.jpから送られてきたメールも ちゃんとmultipartになっていて、別段不審な点はありませんでした・・・。 PEAR::Mail::mimeDecodeがどういうデコードをしているか確認したいのですが、CLIのPHPでstdinでメールを受け取っているので、どうやって出力したものか・・・。 何か良い方法はないでしょうか?
PEARなんて使うからよ 自分でコード全部管理できないと問題が起きたときかえって時間がかかる
そうね 俺も主導でメール本文や添付ファイルを取得するコード書いたことあるけど 大した手間じゃないよ
72 :
nobodyさん :2011/09/01(木) 14:44:05.08 ID:P+Ejz7VY
解決しました。 デコードされたオブジェクトを確認したところ、i.softbank.jpから送った場合のみ、 別のノードにbodyが入っていました。ドメインを判別して個別にやればなんとか解決出来そうです。 有り難う御座いました。
いいってことよ
multipartのときに全部のパート見ない処理してるの? textでplainなのとそうでないのとかどうやってるんだろう。
最近はどうか知らんが、昔、携帯メール添付のファイルを抜き出すスクリプトを書いたとき、 変な拡張子の仕様がイパーイあったな なんとかメロディとか
76 :
nobodyさん :2011/09/01(木) 20:08:15.37 ID:DzsTU180
質問です クラス内変数の定義を、変数を使って行うことはできないでしょうか。 こんな感じのことがしたいのですが、エラーになるようです。 class aaaa{ var $statusList = ( '有効', '無効' ); var $validate = array( 'status' => array( 'rule' => array('inList', $statusList), …
77 :
nobodyさん :2011/09/01(木) 20:20:56.20 ID:DzsTU180
var $statusList = array( '有効', '無効' ); だった
変数じゃ初期化できないので、$validateは コンストラクタで初期化してあげてください。
79 :
nobodyさん :2011/09/01(木) 21:04:09.71 ID:JaLsRVpC
php5.2.16を使っています session_start()すると以下のようなエラーが起きるようになりました >PHP Warning: Unknown: Node no longer exists in Unknown on line 0 何が原因で、どうしたら解決するんでしょうか とりあえずセッションを全部破棄してみようと session_destroy(); session_start(); としたんですが、今度は以下のようにエラーがでました PHP Warning: session_destroy() [<a href='function.session-destroy'>function.session-destroy</a>]: Trying to destroy uninitialized session in /var/www/html/index.php on line 19 PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Node no longer exists in /var/www/html/index.php on line 20 すみませんがどなたかご意見ください よろしくお願いします
80 :
nobodyさん :2011/09/01(木) 21:54:38.67 ID:XICvz9rJ
ニコニコ動画のようにページ遷移せずにコメントできる掲示板をつくりたいのですが PHP以外に何を学ぶべきですか? 検索ワードだけでも教えていただけると助かります。
82 :
79 :2011/09/01(木) 22:41:06.93 ID:JaLsRVpC
>>81 ありがとうございます
ググってみたら外国の質問サイトばかり引っかかって困ってたんですが
やはりセッションに入れてるものが変ということのようです
しかし、大半がXMLobjectが云々といわれていますが自分はそんなもの入れた覚えありません
とりあえずセッションを破棄する必要があるのではと思うんですが
セッションを完全にクリアするにはどうしたら良いでしょうか
書いたように、session_destroy(); session_unset();してもそれがエラーになってしまい他に自分は思いつかないのですが…
その質問に対しての答えじゃないんだが、セッションになんらかのオブジェクトを入れると、セッション始まる前にクラス定義がロードできないもんだからエラーが出るって事はあったが、何かオブジェクト入れてない? セッション破棄するなら、ブラウザのクッキーを削除してサーバ側のセッションと無関係にするとか、設定見て/var/tmpなどのセッション情報を書き込むところを探し出して削除するとか。 他のPCがあるなら、そっちから操作してみて様子をみるとか。
84 :
79 :2011/09/01(木) 23:00:50.27 ID:JaLsRVpC
>>83 たしかにオブジェクト入れています
でも先日まで無事に動いていたのに、何が原因でこうなったんだろう
/var/tmp中のセッションの記録を削除だと、本質的な解決にならないですよね?
参ったなー。でも色々試してみます。ありがとうございました
88 :
nobodyさん :2011/09/02(金) 00:21:29.54 ID:CT3IcR3c
$word = htmlspecialchars($_GET['w'],ENT_QUOTES); $word = mb_convert_encoding($word, "UTF-8", "auto"); とした場合、 うんこと言うワードをポストすると ?w=%82%A4%82%F1%82%B1 shift_jis ?w=%a4%a6%a4%f3%a4%b3 euc-jp ?w=%E3%81%86%E3%82%93%E3%81%93 utf-8 同じうんこというワードで上記のようにポストされた文字コードによって 3つのページが存在する事になると思うのですが、 運営上なにか不都合が起こる可能性はあるでしょうか?
89 :
nobodyさん :2011/09/02(金) 00:50:58.04 ID:jo0rZNQx
foreach ($result[$i]['response']['docs'][0] as &$doc) この文で$docの左についている&はどういった意味でしょうか? なんという文法で調べたらでてきますか?
90 :
nobodyさん :2011/09/02(金) 00:56:56.26 ID:LQP9HTJ6
91 :
nobodyさん :2011/09/02(金) 01:06:03.21 ID:jo0rZNQx
ありがとうございます。 助かりました。
マニュアルの文法のところは一通り読もうな
>>89 のためにマヌアル見てたら、やきそばUFOの時間がオーバーして伸びてた
>>88 う○ことかち○ことか下品な言葉を使うのはやめてください。
>>84 そもそもSimpleXMLElementはセッションに保存すると
シリアライズできねーぞと怒られるはずなんだがな
誘導されてきました。 本当にくだらない質問なのですが、pixivのようなサイトを効率的に 構築するにはどの言語が一番適しているのでしょうか? プログラミング初心者なので右も左もわからない状態です
>96 この板に来てるって事は答えが出てるんじゃないの? それとスレタイ
98 :
nobodyさん :2011/09/02(金) 15:29:37.20 ID:kDQgGgWz
<input type="checkbox" name="lang[0]" value="PHP">PHP <input type="checkbox" name="lang[1]" value="Perl">Perl <input type="checkbox" name="lang[2]" value="Java">Java <input type="checkbox" name="lang[3]" value="C#">C# <input type="checkbox" name="lang[4]" value="C++">C++ <input type="checkbox" name="lang[5]" value="Basic">Basic を for ($i = 0; $i < 6; $i++) { $lang[$i] = htmlspecialchars($_POST['lang'][$i], ENT_QUOTES);} で変数$lang[$i] とした場合、htmlでlang[0]〜lang[5]を全て選択した場合はエラー が出ませんが、lang[0]とlang[4]つまり、PHPとC++にチェックしたときは Notice: Undefined offset: 0 in C:\xampp\htdocs\check_question.php on line 20 Notice: Undefined offset: 1 in C:\xampp\htdocs\check_question.php on line 20 Notice: Undefined offset: 3 in C:\xampp\htdocs\check_question.php on line 20 Notice: Undefined offset: 5 in C:\xampp\htdocs\check_question.php on line 20 というエラーがでます。このプログラムが載ってる本ではエラーが出てないみたいです。 とりあえず、動いてますが、このエラーはどうにかなりませんか?
すみませんでした、PHP専門の質問スレでしたねorz
>>98 エラーは配列にそんなキーはねぇよと言ってる
var_dump($_POST); してみればエラーが出る理由も判るだろう
エラー制御演算子をつければ黙らせられる
$lang[$i] = @htmlspecialchars($_POST['lang'][$i], ENT_QUOTES);
あとその糞本は捨ててしまおう
まあnoticeだし、error_reportingで隠すだけでいいんじゃない。
>>102 まじか
未定義のnoticeなんて潰さないかんだろ
error_reporting()でまるごと握りつぶすなんて腐ったコードを保守する時だけだな
>84 もしクラス定義が無い為のエラーだとしたら、PHPのアップデートが行われて設定ファイルが上書きされてしまった、とかの線が濃いかね。 ちょうど先日PHPが不具合でfixされたとこだし。 で、もしそうだとしたら、セッションのオートスタート関係を見てみると何か分かるかもしれん。 (チト、マヌアルが無いのでパラーメータ名分からんでスマソ)
初心者はxampp使うな
107 :
nobodyさん :2011/09/02(金) 20:31:21.72 ID:kDQgGgWz
皆様ありがとうございました。
>>106 Mysqlをインストールしようとしたとこは全然分からず、
phpとmysplがセットなったxamppをインストールしました。
単品でxamppのインストールができませんでした。
中級者はxampp使うな
>>107 面倒臭がってphp.iniの設定内容をちゃんと身につけないからこういうことになるんだよ
身にしみたらxamppはやめようね
上級者はxampp使うな 誰もxampp使うな
皆様ありがとうございました。 あんたらに相談した私が馬鹿でした。 xampp+jaxaは最高だと思います。
jaxa って何? 独立行政法人宇宙航空研究開発機構?
推奨NGワード jaxa ajax
全部見えない
レスしたせいで見えちまってるじゃねーか。 使うなもNG入れとけよ。
i,don't know
120 :
nobodyさん :2011/09/03(土) 13:51:27.27 ID:SwCo5hkV
今まで32bit版のWindows、LinuxでPHPを弄っていたのですが、最近どちらも64bitにしました
しかし思ったのですが、Linuxはまだ試していないのですが、Windowsの方は64bit版のPHPはありますか?
http://windows.php.net/download/ 32bit版だけなのかなと思いました
Windows、Linux共に64bitに対応させるにはどうしたらいいのでしょうか?
124 :
nobodyさん :2011/09/03(土) 18:40:18.20 ID:WbWKNxaY
質問 PHPで携帯サイトを作るときPC版と何が違うの? ページサイズを携帯サイトは小さくするの?
125 :
nobodyさん :2011/09/03(土) 18:41:01.52 ID:WbWKNxaY
質問 PHPで携帯サイトを作るときPC版と何が違うの? ページサイズを携帯サイトは小さくするの?
PHPで、ツイッターとまったく同じようなサイトを作ることは、可能ですか?
JAXAがないと無理
128 :
nobodyさん :2011/09/03(土) 21:08:11.79 ID:h61EC95x
a.txt 123 12 1 $path ="./a.txt"; $file = @file($path); $hoge = rtrim($file[0]); $fuge = $hoge*2; echo $hoge."<br>".$fuge; とやっても$hogeは123なのですが、$fugeは246にならず0になってしまいます 文字列のままなのかと思い $hoge = rtrim($file[0]); $hoge = intval($hoge); と入れても同じように0になってしまいます a.txtの文字コードはUTF-8、このphpが書かれてるphpファイルは <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> となっています 何が原因なのかさっぱりなんですが、何か間違ってる所があったりするんでしょうか?
やってみたら 123 246 になったよ
132 :
nobodyさん :2011/09/03(土) 21:41:05.82 ID:h61EC95x
>>129 で気付いて
echo var_dump($hoge);
とやってみたら6になってました
1行目の123は6
2行目の12は2
3行目の1は1
どうやら最初の1行目だけ無駄な文字列が3文字ついてるようです
>>132 「$hogeは123なのですが」って言ってなかったっけ?
PHPで、ツイッターとまったく同じようなサイトを作ることは、可能ですか?
135 :
nobodyさん :2011/09/03(土) 21:48:39.12 ID:h61EC95x
>>133 表示されるのは123と表示されるのですが
文字数を調べてみたら6文字でした
不思議です
1行目だけに存在する視認できない文字列 BOMだ。間違いない
あたま3文字けしてしまえ。substr($hoge, 3);
>>135 var_dumpでstring(6)だったってこと?
var_dumpで6でしたと言ったら普通にとらえると変数の中身が6だよ
PHPで、ツイッターとまったく同じようなサイトを作ることは、可能ですか? 無視しないでください
140 :
nobodyさん :2011/09/03(土) 21:53:23.45 ID:h61EC95x
>>138 すみません・・・。
正確にstring(6) "123" というべきでした
>>136 >>137 どーやらそれっぽいです、頭に3文字付くのがBOMなんですね。ありがとうございます
BOM回避ってUTF-8Nのテキスト使うのと 普通のUTF-8のテキスト使って最初の3文字削るのとどっちがいいんだろ? 俺のテキストエディタだとUTF-8N使ってるからそっちでやってたんだけど
PHPで、ツイッターとまったく同じようなサイトを作ることは、可能ですか? 無視しないでください
BOMってtrimでも取れないのか。
PHPで、ツイッターとまったく同じようなサイトを作ることは、可能ですか? 無視しないでください
ああすまん、あまり使わない表現だからBOM付きがNかと思った BOM付き使うメリットって何かあるの?と聞きたかった
BOMが無いと何か不具合でも発生すんのかな? UTF-8Nなんて使った事ないし
>>149 んだからBOMってあっても不具合の質問多いじゃん?謎の文字化けとか
>>128 とか
それだったらUTF-8Nの方がBOMがない分優れてるわけだから普及すると思うんだけど
UTF-8が主流なのはそれなりの理由があるのかなと
すまんそう言うことか。 おれはBOM無し使ってるしそれが主流かと思ってたなあ
普及しない最大の理由は「メモ帳にない」コレじゃね?
みんなは、テキストエディタは何を使ってるの?
主流になってるUTF-8はBOM無しだよ
>>155 お前の主張は一切根拠がないから。
お前の中で主流だろうが知ったこっちゃないし。
とりあえず俺のVISTAについてるメモ帳はUTF-8でBOMがついてるw
世界的にどっちが使われてるか知らんのかw
UTF-8につけてる時点でバイトオーダーじゃねーしな。
160 :
nobodyさん :2011/09/04(日) 00:51:47.75 ID:pwoY8pY7
PHPで、ツイッターとまったく同じようなサイトを作ることは、可能ですか? 無視してください
いいえ、無視しません
メモ帳とか使ってるカスがいんのかよwww 開発環境はeclipseだろ普通
163 :
nobodyさん :2011/09/04(日) 03:54:34.70 ID:rsDOX+wr
phpのエラーメッセージを装飾する方法を教えて下さい 今までのサーバーでは <b>Warning</b>:〜<br /> こんな感じで見やすかったのですが 新しいところでは改行もされず見づらくて困っています
コンパイル前にコアいじらないとだめなんじゃない?たぶんだけど
出来ればeclipse使いたくない。 デバッグするのに仕方なく使ってる
PHPで、ツイッターとまったく同じようなサイトを作ることは、可能ですか?
140字制限のミニブログという意味ならイエスだろ
やはり、ツイッターのような他のwebサービスより特殊なものは PHPでは作れないんですかね?
つくれない
>>170 技術的な観点から教えてもらえないでしょうか?
172 :
170 :2011/09/04(日) 08:43:08.93 ID:???
いや、つくれる
ここまで自演
test
ちゃんと機能するかは置いといて 作るだけなら作れるでしょ しょせん掲示板に毛が生えたようなもんだし DBだって別にいらんがな 情報さえ保存できればテキストファイルだってなんだって
コード付きの望む回答が引き出せたのでもうレス不要
名前空間もないような言語で 作れるわけがないだろうw
>>180 名前空間もないような言語とはどういう意味ですか?
javaなら、ツイッターのようなサイトを作れるのでしょうか?
もうレス不要だったんじゃないの?
ツイッターってどこが特殊なの
くだらねー雑談はよそでやってくれ
名前空間って言いたいだけだろw
名前空間へひきずりこめ
それはマクー空間だ おっさん 蒸着してろ
さてはお前もおっさんだな と言っても俺はまだ30代だが
javaなら、ツイッターのようなサイトを作れるのでしょうか? 本当に無視しないでください、まじで真面目にきいているのです
スレタイをお読みの上
>>1 を読んだ後お引き取り下さい
NGにしてるから見えない
193 :
nobodyさん :2011/09/04(日) 14:12:17.29 ID:5sGNMMWA
テンプレートファイル template.html に <html> <head> %head% </head> <body> %body% </body> ってあって、その%head%、%body%に変数$headと$bodyを代入するスマートな方法はないですか? 実際にはもっと変数があるので、一個ずつ置換するよりいい方法があれば助かります。
smartyの中身とか見てみたら?
>>189 すいません
おれも30代のおっさんでした
>>193 正規表現で全部置換すればいいじゃん
%*%を<?php echo $%; ?>に
>>196 それじゃ新たなPHPファイル生成じゃんw
そのまま変数代入でいいんだろうね。
>>197 え?テンプレートってそういうもんだろ?
じゃあ便乗して。 phpとmysqlだけでFacebookのようなサイトが作れますか?
201 :
nobodyさん :2011/09/04(日) 15:32:36.47 ID:5sGNMMWA
>>197 そのまま変数代入てやっぱり$bodyとかってことですか
202 :
nobodyさん :2011/09/04(日) 15:50:56.54 ID:afczjulm
とあるサイトのデータを取ってきて、変数に格納して色々とデータをいじりたいので、 PHPのfile_get_contents関数でページのソースをとりあえず取ってきました。 しかし、その狙ったデータがFlashで表示されたテキストだったため、ソースにテキストが書いて無く、うまく取得できません。 Flashに埋め込まれた文字データはPHPで取得することは可能でしょうか?
203 :
nobodyさん :2011/09/04(日) 16:01:24.88 ID:zROIxkXa
有料レンタルサーバーを使用しているのですが、サブアドレスってレンタルサーバーの HPのユーザーページからでしか作れませんか? phpで操作して作れますか?作れるとしたらやりたいのですがロジックが浮かびません・・・。
205 :
nobodyさん :2011/09/04(日) 17:11:10.98 ID:4p7QA/V2
セッションを使うとセッションIDがクッキーにセットされますが php.ini等設定ファイルを変更せずにクッキーを使わないようにするにはどうすればいいですか? 変なこと言ってたらすみません
206 :
nobodyさん :2011/09/04(日) 17:13:34.17 ID:CiTGt3ii
// 保存データ $data = array($pdate,$pprice,$star,$lang[0],$lang[1],$lang[2],$lang[3],$lang[4],$lang[5],$job); // 保存ファイル名 $filename = 'uploads/question.csv'; // appendモードで開く $handle = fopen($filename,'a'); // 排他的ロック flock($handle, LOCK_EX); // CSV書き込み fputcsv($handle, $data); // 閉じる fclose($handle); でcsvファイルにデータを保存すると保存したcsvファイルの文字コードがUTF-8Nになりました。 UTF-8で保存したいのですがどうするのですか? csvファイルの文字コードの指定の方法を教え下さい。
>>205 セッションIDをクッキー保存でなくて、
URL埋め込みにしたいってこと?
セキュリティ上問題あるから、やめたほうがいいよ。
208 :
205 :2011/09/04(日) 17:52:12.67 ID:4p7QA/V2
URLというか生成するHTMLのフォームに埋め込む用としてセッションIDを使いたいです でクッキーにはセットされなくてもいいので可能ならクッキーを触らないでおきたいなと 無理ですか?
>>208 別にできなくはないけど、生のセッションIDをそのまま使うのは関心しないねー
いったんmd5等に通して、別の文字列にしてから、
その変更済みの文字列を送り出す方式にしたら?
210 :
205 :2011/09/04(日) 18:06:19.43 ID:4p7QA/V2
はい そうします php.ini等設定ファイルを変更せずにクッキーを使わないようにする方法を教えてください
211 :
nobodyさん :2011/09/04(日) 18:37:18.20 ID:23AXMV0z
セッションIDは、 クッキーに格納するか、あるいは、 URLに埋め込むかの、 2択じゃね?
213 :
nobodyさん :2011/09/04(日) 18:52:24.76 ID:4p7QA/V2
別にできなくはないわけではないんですか? やっぱり無理ってことですか?
>>205 ini_set('session.use_only_cookies', false);
ini_set('session.use_trans_sid', true);
session_start();
>>209 自分で何言ってるか理解できてる?
まったくセキュリティの対処となってないし
MD5にしたことでセッションIDが衝突するんだけど
215 :
nobodyさん :2011/09/04(日) 18:57:42.45 ID:4p7QA/V2
>>214 どうもありがとうございます
ためしてみます
>>150 BOMがあるとマイクロソフト社製のアプリケーションでも読み書きできる
それだけ
218 :
nobodyさん :2011/09/05(月) 15:33:49.57 ID:Fsj9uc36
LAMPで動くナレッジベースでいいのあったら教えてください。
自作する
220 :
nobodyさん :2011/09/05(月) 21:20:44.36 ID:Fsj9uc36
221 :
nobodyさん :2011/09/05(月) 21:30:11.36 ID:v0EZ9jPi
phpで得た変数を画像の横幅の長さに代入して、グラフを作りたいのですが $A = 40 <img src="○○.gif" width="$A " height="20" ; /> としてもうまくいかないです どうすればいいでしょう?
>>221 最後のスラッシュの前に、
セミコロン「;」っているっけ?
224 :
nobodyさん :2011/09/05(月) 21:36:53.22 ID:qaRRboDa
>221 マヌアルのPHPへのトツニューだか辺読んでみそ? HTMLとPHPは同居できないから、<?php ?>とかのいわゆるPHPタグが必要な訳だ。
226 :
nobodyさん :2011/09/05(月) 21:48:07.63 ID:v0EZ9jPi
>>222 あ・・いらないですね
>>225 それは知ってますけど
<img src="○○.gif" width="<?php $A ?> " height="20" />
みたいなことはできないですよね?
あとマヌアルのPHPへのトツニューって何ですか?ググっても出てきません
<?php $a = 20; ?> <img src="hoge.gif" width="<?php echo $a; ?>" height="20" /> 基礎知識がかなり不足してるようだからどっか入門サイト一通り読んだ方がいいよ。 トツニューはおれも分からん
228 :
nobodyさん :2011/09/05(月) 22:08:06.10 ID:csgCXOKw
simplexml_load_file()で複数ファイル読み込む方法を教えて下さい。
229 :
nobodyさん :2011/09/05(月) 22:17:20.45 ID:v0EZ9jPi
>>227 おお、ありがとうございます
一通りは読んでるのですが、実際身につかないみたいで
習うより、慣れろ感覚でやっています・・
プログラミング未経験でこれから勉強するんですが おすすめのリファレンス本ありますか?
貼ってある広告に会員登録したってわかるプログラムはありますか?
234 :
nobodyさん :2011/09/06(火) 00:44:22.26 ID:gceU0FPv
リア充になりたい。 中途半端なプログラミングスキルしかないからオレはリア充じゃないのか? php極めたらリア充になれますか?
むしろもっとオタク化する。 リア充になりたければコミュニケーションスキルを磨いて 他人にプログラムを書かせる様になるべし
236 :
nobodyさん :2011/09/06(火) 01:29:17.84 ID:gceU0FPv
php極めたらオタク化するのか。 あーあ、3年くらい浪人して医学部いけばよかった。 もう二十ピー歳だから無理だな。phpを極めるぜ。
>>236 今の俺の年齢から見れば20代ならまだ間に合う。
30歳で大学入って40歳で医者とか弁護士になったって人生まだ先がある。
php極めるとか言ってるのが金持ってるとは思えんし医学部は無理だろ 金さえあればなんでもできるのが真理
「なんでも」でもない。 大事なことのほとんどは金ではできない。
>>240 デバッガ⊇eclipse
デバッガ⊆eclipse
∴デバッガ=eclipse
242 :
nobodyさん :2011/09/06(火) 17:59:26.46 ID:KitxG8Oz
アップローダを作ったんですが、アニメーションgifのアップがうまくいきません アップした後、元のサイズのまま保存するものと、 gdで中央正方形切り抜き&縮小したものの2種類を作ってるんですが 後者のサイズ変更を加えたものがアニメしなくなっています これはどうしようもないんでしょうか? gdのバージョンはbundled (2.0.34 compatible) でPHPは5.3.8です
どうしようもないです imagick(ImageMagick)なら出来ないこともないけど
>>241 eclipseで出来る機能はすべてデバッガに含まれるってことだよね。
ついでにデバッガが高機能なのか、eclipseが低機能なのかをはっきりさせてくれないかw
eclipseにデバッガも内蔵してるだけだろw
デバッガはeclipseの内臓です
247 :
nobodyさん :2011/09/06(火) 19:41:59.16 ID:zwduU6OE
EUCコードで書かれたプログラムに UTF-8のプログラムを 文字化けせずにrequire で読み込ませることは出来ますでしょうか? test.php : EUCコード ├ form_dir ├ form.php :UTF-8 <? #test.php ・・・・・・ require "/....../form_dir/form.php"; ・・・・・・ ?> コードを一致させればよいのですが、ともに複雑なプログラムでして... form_dir/.htaccess を煽ってみましたが駄目でした php_value default_charset EUC-JP php_value mbstring.detect_order auto php_flag mbstring.encoding_translation Off php_flag mbstring.func_overload Off php_value mbstring.http_input auto php_value mbstring.http_output EUC-JP php_value mbstring.internal_encoding UTF-8 php_value mbstring.language Japanese
>>247 英数字だけなら文字化けの心配はないだろ
EUCに変換できない文字が使われてたらどっちみち終わりだし。
とりあえず変数に読み込んでmb_convert_encodingでUTF-8に変換してevalに掛けてみたら?
逆だ。「EUCに変換して〜」だった eval(mb_convert_encoding(file_get_contents("./form_dir/form.php"), "EUC-JP", "UTF-8"));
それで動くなら、テキストエディタで文字コード変えればいいだけの話っすな。 mb関数のあたりとか preg_あたりの uオプションやら formだと入力される文字のコードだとか 中見ないとわかんないね。
一致させるのが楽じゃね
252 :
247 :2011/09/06(火) 21:12:09.08 ID:???
語弊がありました。 form.php(UTF-8)はフォームでありまして、 test.php(EUC)上でデータ(文字列)を処理します。 実際は、test.php(EUC)、form.php(UTF-8)共にDBを使用してて処置が複雑です。 form_dir/.htaccessの記述で行ければよかったのですが、、、
はぁ? requireは何なの?
>>247 コードを一致させることが出来なかった理由を書いてみるといいかも。
煽ってみたって、弄ってみたの間違い?
>>253 フォームの項目を定義したクラスが書いてあるのかもしれない。
>>252 読み込まれるスクリプト側で exit してたら使えないが
ob_start(function ($contents) { return mb_convert_encoding($contents, 'EUC-JP', 'UTF-8'); });
require "/....../form_dir/form.php";
ob_end_flush();
257 :
247 :2011/09/06(火) 23:08:55.31 ID:???
>>255 さん。 ありがとうございます。 残念ながらexitしてました。
.htaccess で駄目っぽいので、
>>251 さんの一言「一致させるのが楽じゃね 」
が、やはり正論なのでform.php側をEUC-JP化にチャレンジします。
JavaScriptも使われてましたし...
今晩、徹夜になりそう.
駄目なら、Iframe...?(涙
nkf
259 :
nobodyさん :2011/09/06(火) 23:43:40.27 ID:85XX7ERU
PHPスクールの講師ってもうかるの?
行きたいと思う人は儲かるだろと思うが、 行く必要ない人は、儲かんないだろと言う。
261 :
nobodyさん :2011/09/06(火) 23:54:50.91 ID:KitxG8Oz
262 :
nobodyさん :2011/09/07(水) 00:29:42.13 ID:5/O/tq8F
php勉強してる人で情報交換の場って2chとmixi以外でないですか?
PHPユーザー会のメーリングリストもあるけど、最近は閑古鳥みたいだな 昔はネタの宝庫だったがw
266 :
nobodyさん :2011/09/07(水) 03:47:55.32 ID:gSrigZwF
function hoge($a=true) { if ($a) { return "Hello"; } else { return "World"; } function hogeA() { return "Hello"; } function hogeB() { return "World"; } 上と下どっちにするか迷ってるんですが、 関数の数が多ければ多いほど遅くなるという事情がない限り、 条件文が必要な上のほうが遅くなると思っていいでしょうか? 処理が増えれば増えるほど、下のほうが有利だけど、 ファイル容量(文字数)が多くなるって感じでしょうか?
処理の重さとかではなく関連性で決めるべき ちなみに俺は後者にする
>>241 ホントどうでもいいけど、この式の矛盾がわかりません
Eclipse=デバッガは真じゃないよね
269 :
nobodyさん :2011/09/07(水) 11:20:35.95 ID:QafQSKw+
apacheを入れ直した時に PHPもビルドしなおさないといけない境界ってどこですか? 2.2.19→2.2.20 にしても問題なく動きましたが 2.1→2.2や2.0→2.2でも動くのでしょうか? さすがに1.3は無理だと思いますが
apacheに2.1はないんですね・・ --with-apxs2=/usr/local/apache2/bin/apxs このapxsが変わらない限りイケると思いますが この書き方だと2.0→2.2でもいけるのかな?
2.0系と2.2系は別物と思った方がいい
274 :
nobodyさん :2011/09/07(水) 16:28:09.82 ID:5/O/tq8F
最近、ツイッター、mixi、フェースブックをphpで作れるかって 質問が多いから次スレからテンプレにしようぜ
普通はフェイスと書くんじゃなかろうか 公式ではフェースなのか?
276 :
nobodyさん :2011/09/07(水) 16:41:38.18 ID:vFCl2P/p
「フェースブック」でも伝わるだろ ケツの穴の小さい奴だな。
そんな適当さだからバグ満載してんだよクズ
278 :
nobodyさん :2011/09/07(水) 16:57:27.79 ID:vFCl2P/p
>>277 お前は1から10まで全部教えないと、仕事出来なさそうだなww
>>278 お前は1を教えてるつもりで@を教えてそうだな
281 :
nobodyさん :2011/09/07(水) 17:09:28.99 ID:vFCl2P/p
(・∀・)ジサクジエンおつwww
(・∀・)ジサクジエンおつwww
まあファイスブックでもfacebockでも伝わるなら好きなように言えばいいよ
お前ら、ケツの穴の小せぇガキだな
2chってなんで退廃的でネガティブなの? 独自のスラングもあるし 喧嘩売ってくるし 言葉遣い悪いし このスレもそういった2chらしさの典型例
裸の人間模様だから
2chねらーもmixiみたいに絵文字 若者スラングとか使えばいい そうすれば明るく健全になるよ おまえらって、mixiでは絵文字と若者スラング使ってるくせに なんで媒体によって口調を使い分けてんだよ?
荒らしに餌あげないでね。
>287 2chなんて一般人には悪の巣窟扱いされてるやん。 フジテレビでは目の敵にされて、薬物の売買されてるとか言われたり。 一般人には事件が山のように起きているgreeとモバゲーが健全サイト。 2chは不健全サイト扱いだからな。匿名掲示板だから出会い厨とか リア充はこないから暗いイメージなんだろう。
294 :
nobodyさん :2011/09/07(水) 21:32:33.35 ID:k+iAolBu
CMSなどの既存のプログラム:Aに、汎用的に組み込めるプログラム:Bを作成してます。 AがMysqlを使用して場合、接続ID = mysql_connect で処理を行ってる途中に BのMysqlの処理を組み込む場合 Aの mysql_connectで得られる接続ID(link_identifier)を B側で得る方法はありますでしょうか? A 既存 ↓ $id_a = mysql_connec ↓ mysql_ query などの処理 ↓ →→→→→→→→→ ここに B の処理 require │ ↓ $id_b = mysql_connec mysql_ query(・・・・・・,$id_b) │ ↓ │ ↓mysql_close($id_b) ←←←←←←←←←←←←←←← ↓ 再びmysql_ query --- A側で mysql_ query(・・・・・・,$id_a) となっていれば問題がないのですが、多くは接続IDが設定さてません。 B側で Aの接続ID(link_identifier)を取得する方法はありますでしょうか? B側の最初に @mysql_query("SELECT CONNECTION_ID()") で取得を試みましたが、$id_aとは違うIDでした
クラスタの事を言っているんじゃなければ、サービスとして考えるしか無いんじゃね? データベースがなぜデータそのものじゃなくて、コネクションID、リザルトIDを返すのか?
そんな不安定なことするな。 別にオープンしろよ。 それが普通。 それでできないなら設計を間違えている。
お前らに設計が間違ってるとか言われたくないんですけど。 お前みたいな奴は回答しなくていいよ。消えろ。
そんな「お前ら」に教えて貰おうとした奴が偉そうにw
違うIDだと、何が困るのでしょうか。
はぁ?何が困るのでしょうかじゃねぇよ。困るに決まってんだろ普通。
>>294 無い
なぜA側が持つコネクションプールの仕組みを利用しないんだ
302 :
nobodyさん :2011/09/08(木) 03:48:37.24 ID:1EKMvzAq
PHPのバージョンアップに関連して、 生成するlibphp5.soのファイル名を変えたいのですが(旧ファイルを上書きしないように) --program-suffix を指定しても、CLI版のphpのファイル名が変わるだけで libphp5.soの名前は変わりません。 インストール時にこれを指定することはできないのでしょうか?
ただでは教えない
できないようですね
>>303 有料で答えるスレでも立てとけや包茎
>>302 libphpの複数バージョン同居を考えているのならやめておいたほうがいい
>>305 同居というか、いつでも戻せる形にしつつ移行しようと思っているのです
今までバージョンごとにディレクトリ分けたりしてなかったので
環境づくりがなかなか大変・・・
リネームでもしとけ
他人の悪口に包茎なんて言う奴は間違いなく当人が包茎なんだろうなぁ・・・ 包茎にコンプレックスでもなければ最初の悪口に包茎なんて言わないよな、普通
>>309 幼稚な人間のにおいがしたので包茎だと思ったのです
私は普通にずるむけですよ^^
カントンさん
幼稚と包茎は関係ないと思う。俺はずるむけだけど幼稚だもん。
包茎と皮が剥けてないことの違いをPHPを用いて説明せよ
313 :
nobodyさん :2011/09/08(木) 16:40:59.50 ID:lN41AcWH
他者がデータベースに入力したURLをリンクに置換して描画するようにしているのですが、 実態参照でない&を&に書き換える関数みたいなのはありますか?
>>306 それならconfigureのprefixでよくね
316 :
nobodyさん :2011/09/08(木) 19:29:01.83 ID:KM9XgX/E
パスワード付きで、jpg、gif、pngに対応するデータ保持が 5千くらいの画像うpろーだーってphpでプログラマーに作って もらうとどれくらいの金額になるのですか?納期はどうれくらいで できますか?
画像数はたいして関係ないな 色々デバッグやら調整込みで10日もあればいけるだろう 金額は10万円 調整とか必要なく作るだけでいいってなら2・3日で2・3万円ってところか
>画像数はたいして関係ないな そんなこたぁないぜ? flickerのようなのが10万でできると思うかい? まぁ、表示にどんなに時間かかろうがOKとかいうなら、画像数は関係ないだろうな
そのへんのよく見るアップローダじゃねえの? そりゃJavaScriptやFlash使ったバリバリのUIものなら10万じゃ無理だ
320 :
nobodyさん :2011/09/08(木) 20:06:56.23 ID:KM9XgX/E
>>319 そうです、その辺にある単純なアップロードの話です。
10万円って高いのか安いのかわかりませんが、10万ですか。
皆様ありがとうございました。
サーバー代+8万くらいじゃない?
>>316 雑になら答えられるけど、「対応するデータ保持」の詳細などによって割と変わるよ
大体こういう感じっていうのを提示するのが楽
>>320 1万/日は安いよ。
月給が20万の人に任せたいならいいけど。
324 :
nobodyさん :2011/09/08(木) 20:15:07.11 ID:KM9XgX/E
>>322 データ保持は、
0001〜5000の画像が保存できアップロードした人と管理人が
削除しない限り消えない。5001番目の画像がアップロードされると
0001番が消え、5002番目の画像がアップロードされると0002番目の
画像が消えるという仕様を想定してます。
だいたい蔵が仕様まとめきれないから プロトタイプ見せながら作ることになって 時間はかかるは修正要求はされまくるわで どんなに簡単なアプリでも開発日数は増えるんだよな
画像は本当に消しちゃうのか、残しておくのか(アーカイブするか)とか。 ログも5000件のみ残して順次古いのは削除するのかとか。 jpg gif pngの判定精度はどうするのかとか。 ヘッダだけ見て判断していいか、偽装や壊れてるのを検出するかとか。 まぁ予算示してその範囲内でやってもらうってのが一番いいと思うけど。
そんな難しそうなプログラムがPHPで作れるとは驚き。 それを作れる人がいるというのも驚き。
∧,,∧ (;`・ω・) 。・゚・⌒) 予算内で作るよ!! / o━ヽニニフ)) しー-J アッ! 。・゚・ ∧,,∧ て 。・゚・。・゚・ (; ´゚ω゚)て // / o━ヽニニフ しー-J 彡 ∧,,∧ ショボーン ( ´・ω・) c(,_U_U ・゚・。・ ゚・。・゚・ 。・゚・ ━ヽニニフ よしバレてない クルッ ∧,,∧ ミ(・ω・´ )つ サッサ c( U・ ゚U。彡・ 。・゚・ ━ヽニニフ ∧,,∧ 。・。゚・。 ゚・。゚・ できたよ〜 ( ´・ω・)つ\・゚・ 。・゚・・/ 予算に無理にあわせたRapid開発の現状を表現してみますた
てかその仕様満たしたうpローダー無料で配ってるだろw
著作権表示がいやなんじゃね
PHP5.3にしたら表示がまともじゃない ログにもエラーらしきものはない という謎現象に悩まされたがショートタグが無効になってたからだった まじファック ショートタグ使えなくするメリットなんてほとんどねーだろ
残ったショートタグが解釈されずコードが丸見えになるリスク >>>> XMLと混同されるリスク PHP作ってるやつまじあほ
334 :
nobodyさん :2011/09/08(木) 21:23:29.05 ID:179MIfwx
質問です。 Notice: Undefined index: id in /opt/lampp/htdocs/samples/chapter2/2-6/intval.php on line 34 って出るんですけど、"id"って定義されてないですか? 9行目のは定義じゃないんですか? 1 <html> 2 <head> 3 <title>SQLコマンドに数値のみを反映する</title> 4 </head> 5 <body> 6 <?php 7 // intval()関数による変換 8 $temp_sql = "SELECT * FROM t1 WHERE id = %s"; 9 $id = isset($_POST["id"]) ? intval($_POST["id"]) : ""; 10 $result_sql_intval = sprintf($temp_sql, $id); 11 12 // sprintf()関数による変換 13 $temp_sql = "SELECT * FROM t1 WHERE id = %d"; 14 $id = isset($_POST["id"]) ? $_POST["id"] : ""; 15 $result_sql_sprintf = sprintf($temp_sql, $id); 16 ?> 続く
335 :
nobodyさん :2011/09/08(木) 21:23:44.33 ID:179MIfwx
17 <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>"> 18 <table> 19 <tr> 20 <td>ID:<input type="text" name="id" 21 value="<?php echo $_POST["id"] ?>"> 22 <input type="submit" value="作成" name="sub1"> 23 </td> 24 </tr> 25 <tr> 26 </tr> 27 <tr> 28 </td> 29 </tr> 30 </table> 31 </form> 32 </body> 33 <?php 34 echo "<p>入力値:" . $_POST["id"] . "</p>"; 35 echo "<p>作成されたSQL(sprintf):" . $result_sql_sprintf . "</p>"; 36 echo "<p>作成されたSQL(intval):" . $result_sql_intval . "</p>"; 37 ?>
34行目の配列のインデックスidは定義されていない つまり$_POST["id"]が定義されてないってことだろ つうかそのエラーが出ないように9行目のような処理してんだろ? 34行目は$idを出力しなさい
337 :
334-335 :2011/09/08(木) 21:29:39.98 ID:179MIfwx
しかも、このPHP走らせると、既にID: を入力するところに <br /><b>Notice</b>: Undefined index: id in <b>/opt/lampp/htdocs/samples/chapter2/2-6/intval.php</b> on line <b>21</b><br /> というのが入っています。 枠の外なら分かりますけど、枠内ですよ?
338 :
334-335 :2011/09/08(木) 21:36:31.23 ID:179MIfwx
>>336 ありがとうございます。
そのとおりにすると、枠外のエラーは消えました。
ただ、枠内のエラーが消えていません。
今はこんな感じです:
ID: <br /><b>Notice</b>: Undefined index: id in <b>/opt/lampp/htdocs/samples/chapter2/2-6/intval.php</b> on line <b>21</b><br />
入力値:
作成されたSQL(sprintf):SELECT * FROM t1 WHERE id = 0
作成されたSQL(intval):SELECT * FROM t1 WHERE id =
あ!じゃあ、枠内のも・・・
21行目のも$idにしたら消えました!
正常に動作します!
・・・あのー、これって累計10万部超えた11刷目の本のサンプルコードなんですけど?
これってバグですよね???
21行目も同じことだろ
バグっていうかエラーの種類があって Noticeは一番軽いエラーで 一般的な環境だと出力が制御されて表示されない Noticeでもなくすべきっていう思想の人ならでないように9行目のような処理を入れる ていうか9行目の処理をわざわざいれてるのに$_POST["id"]を出力するのは意味不明 あとhtmlspecialcharsをしてないのも意味不明
341 :
334-335 :2011/09/08(木) 21:41:25.34 ID:179MIfwx
>>339 そのとおりでした。
2006年に初版が発行されてもう5年も経っているので
少し内容が古いかと思ったのですが、アマゾンでは好評だったので買いました。
ただ、今までのところでも deprecatedな使い方やStrict Standardsなんていうのが沢山出ています。
スーパーサンプルってこんなもんですか?
バグ潰しながら進んでいかないといけないんですか???
PHPほど、ひどい本の多い言語もあるまい。
343 :
334-335 :2011/09/08(木) 21:46:47.65 ID:179MIfwx
>>340 バグではないんですね・・・自分にとっては警告も気になりますね。
一つ間違ったらエラーになるかもって気がしますから。
ヒヤリハットが大事故に繋がるみたいなものです。
>>342 これは酷すぎます。
5年も経ってて第二版も出しててこれですか?
累計で10万部売れてるんですから、そのうちの1%でもバグ報告してたら、こんなことにはならないでしょう?
まだ第二章ですよ?
刷数が若いとバグも多いだろうと思ってわざわざ新品を買ったのに・・・。
さすがにこれはクレームつけたくなりました・・・。
厳密に言えばNoticeってのはエラーでは無い。 この場合だと、定義されていない変数使ってるからいいんかい?って警告くらいのもんだよ。 最新のマヌアルを読みこなせるような人ならそんな本要らないし、そんな事で文句も言わん。 ・・・が、読みこなせるような奴が居ないから好評なんだろね
345 :
334-335 :2011/09/08(木) 21:54:52.34 ID:179MIfwx
>>344 > ・・・が、読みこなせるような奴が居ないから好評なんだろね
見事に納得しましたw
それがファイナルアンサーでしょうねw
これが最初の本なんですよ。
こんな調子なのでまた質問することになると思います。
気を取り直して勉強に戻ります。
ありがとうございました!
PHPは、 本を書く方も、 本を読む方も、 両方ともコミュ障だから、 バグがあっても報告しない、 報告を受けても対応せずに無視する、 こういう連中なので慣れるしかない。
>>343 > 累計で10万部売れてるんですから、そのうちの1%でもバグ報告してたら、こんなことにはならないでしょう?
まったくもってそのとおり。
> 刷数が若いとバグも多いだろうと思ってわざわざ新品を買ったのに・・・。
そうそう。
> さすがにこれはクレームつけたくなりました・・・。
え、報告しないんだw
非プログラミング言語が比較対象かよw
html、CSS、プログラミングの初心者向けの本ってとりあえず 最初に書いとくのは文字コードだろうがって思う。 文字化けするだろうがカス。そして誤植が多いし、動かないだろが ってプログラミングがいっぱいある。マジで校正が甘すぎる。 大学でphpもcgiも習わないから独学するオレのような大学生が すんげー困る。自分のブログで〜の本のphpプログラミング動かねーから その対策とか誤植情報とか載せてる。
その本読んでないから知らんけど 要するにそのページ(あるいは章、節)の主題と直接関係がない箇所だから サンプルコードでNoticeが出ようが関係ない、ってことなんだろうな。 初心者にとっては不親切なわけだけど、著者側からすれば揚げ足取るな、って感じなんだろうな。
352 :
nobodyさん :2011/09/08(木) 23:56:55.63 ID:GnAoDzU0
すいません headfirstphp&mysqlで、勉強はじめました メール送信に関する設定をしています php.iniを、開けません 書類 php.ini を開くために必要なデフォルトアプリケーションが指定されていません。と、出ます。 どうしたらよいでしょうか? 環境 mac 進行状況 XAMPPをインストールして、 apachと、mysqlを、起動させるところまで よろしくお願いします
4の頃の本だろー 4の頃なら何にも出なかったから文句言うやつもいなかったわけでw
>>352 それはXAMPPというよりmacが出してるエラーじゃないの?
php.ini(テキストファイル)を開く標準アプリケーションが設定されてないんでしょ
>>352 php.iniはテキストファイルだから、メモ帳とかで開いたら
開ける。
テキストエディット だな。 右おして情報を見る このアプリケーションで開くで ソレでどーだ。
358 :
352 :2011/09/09(金) 00:18:39.86 ID:ANnoOIHP
>>357 できました!
ありがとうございます!
他のアドバイスくれた人も、
ありがとう!
>>359 mac使ったことないが、windowsのメモ帳に相当する
ものがあるだろうと思った。
360 :
nobodyさん :2011/09/09(金) 01:27:25.64 ID:ANnoOIHP
361 :
nobodyさん :2011/09/09(金) 01:37:36.76 ID:ANnoOIHP
本で、 ファイルを、phpのインストールしたwebサーバーに、アップロードしろという XAMPPを、ダウンロードした これに、どうやったら、アップロードできますか?
jpgをうpするならxampp1.7.4ならC:\xampp\htdocs\に あらかじめuploadsのフォルダを作っとく。 upload.htmlの記述 <form action="upload_image.php" method="POST" enctype="multipart/form-data"> <input type="file" name="filename" size="50"> <br> <input type="submit" value="アップロード"> </form> upload_image.phpの記述 <?php //ファイルの取り出し $file_name=$_FILES['filename']['name']; //一時ファイル名の取り出し $temp_name=$_FILES['filename']['tmp_name']; // 保存先のディレクトリ $dir = 'uploads/'; // 保存先のファイル名 $upload_name = $dir.$file_name; // JPEG形式、GIF形式のファイルをアップロードする // アップロード(移動) $result = move_uploaded_file($temp_name, $upload_name);//これがないと失敗 echo ($result)?'アップロード成功':'アップロード失敗'; ?> <img src="<?php echo $upload_name; ?>"> こんな感じ。考えるな感じるんだ。
363 :
nobodyさん :2011/09/09(金) 01:52:26.44 ID:ANnoOIHP
ありがとうございます 実験してみます
>>363 分かってるの思うが、
>>362 の記述は<html></html>の
<body>から</body>の間に記述だぜ。
同じように、htdocに、アップロードようフォルダを作ってやってみる 夜やるから、夜結果報告する。
>>362 なんとなく、うっすらと、だけど。
ローカルマシンでphpスクリプトを作成し、リモートのWebサーバに
作成したスクリプトをアップロードせよって話の気がする。
つまり、htdocs配下にコピーすればおk、というものの気がする。
ってか
>>362 をコピペするだけだから2分以内でできる。
>>369 ローカルサーバにスクリプトなりファイルなりをアップロードするのは5秒もあればできる
371 :
nobodyさん :2011/09/09(金) 15:25:38.05 ID:qgGY9iV0
cakephpなんですが、fooテーブルの項目date(dateの形式)の日付が3ヶ月前までなら、という条件式を 'condition' => array( 'Foo.date >' => date('Y-m-d', strtotime("-3 month")) ) と書いたんですが3ヶ月以上前でも全部表示されてしまいます なにが問題なのかお教えいただけたらさいわいです
知らんね
とりあえずconditionsだったと思う あと、CakePHPのスレがあっからそっちで質問の方がいいんじゃね?
CakePHPっていいの?
中規模以上のシステムだとフレームワーク使わないと効率悪すぎる。 フレームワークを何使うかは人それぞれ好みが分かれる。
50万の中規模システムをサクラエディタ(設定やプラグインもいれずメモ張程度の機能しかない)のみで作成した俺って天才じゃね?
エディタ関係ないし
IDEと混同したんだな
50万って単位はなに?
人月だよもちろん
パーフェクトPHP・6章のひとこと掲示板で、 ロジックとビューを分けた後、どこにheader()を書けばいいのか どなたか教えてたもれ〜
header()はだいたい先頭 最初に echo か print がでてくる前に書けばいいんでない?
>>377 補完機能も動的デバッグもなくて大変なんだぜ?
まぁしょうがなかったんだわ
メモリ512MBの糞PCで開発させられてたからIDEなんて入れられなくてな
あ、フレームワークと関係ないっていいたかったんだね まぁ大変さを強調したかっただけだからスルーしてくれ
>>381 サクラエディタ使ってピラミッドでも建てたのか?
テキストエディタで十分
>>384 文脈を考慮しなくていい(ただのキーワードマッチ)補完ならVimでできるし、さくらと大してメモリ消費量も変わらないんでないのかな
389 :
nobodyさん :2011/09/09(金) 21:02:39.93 ID:g+bZZ5lK
$array = array('aaaa', 'bbbb', array('cccc', 'dddd'), 'eeee' ); などとある時に、array内のarrayの要素数まで含めたトータルの要素数をcountする関数ってありますか
391 :
nobodyさん :2011/09/09(金) 21:22:30.23 ID:g+bZZ5lK
>>390 COUNT_RECURSIVE を使うと正しい結果が出ないので、使えないのです
例えば
>>389 の配列だと5と出て欲しいのですが、配列自体も含めてしまうので6となってしまう
countのユーザーノート見ればいくつかあるだろ
393 :
361 :2011/09/09(金) 22:48:31.16 ID:ANnoOIHP
>>362 氏
やりました!
htdocに、upload_image.phpと、htmlを、いれました
それを、ブラウザで、開けました
ありがとうございます!
前より理解できました
分かったこと
・htdocに、置くと、アップロードしたことになること
・ブラウザでhtmlファイルの、ボタンを押すと、phpファイルが、動くこと
これから、本を読み進めていきます
394 :
1/3 :2011/09/09(金) 22:50:13.91 ID:???
<?php function count_array($array) { $i = 0; $j = 0; $keys = array_keys($array); foreach ($keys as $key) { if (is_array($array[$key])) { $j += count_array($array[$key]); } else
395 :
2/3 :2011/09/09(金) 22:51:30.09 ID:???
{ $j++; } $i++; } return $j; } $array = array( 'hoge' => 'aaaa', 'bbbb', 'cccc' => array( 'cccc',
396 :
3/3 :2011/09/09(金) 22:52:46.87 ID:???
'dddd', array( 'eeee', 'piyo' =>6, 'gggg' ), ), 'hhhh' ); $count = count_array($array); echo $count . "\n"; ?>
間違えた、変数$i はもういらない
398 :
361 :2011/09/09(金) 23:24:41.44 ID:ANnoOIHP
htmlは、ブラウザで、 ボタンなどで、表示されます。 そのボタンを押して、phpファイルを動かそうとすると、 文字だけの、ソースコードの画面になってしまいます。 どうしたら、phpファイルを、出力できるでしょうか?
ミスった、 C:\xampp\htdocs\ybhujnindex.html でなくC:\xampp\htdocs\upload.htmlってブラウザのurl欄に 表示されてるんじゃない?
402 :
nobodyさん :2011/09/09(金) 23:54:31.88 ID:z7az+EcJ
MySQLのデータを読み出してドロップダウン・メニューを生成するだけのコードですが、文字コードがうまく変換されないので文字化けします。 1 <html> 2 <head> 3 <title>選択リストをデータベースから生成する</title> 4 </head> 5 <body> 6 <?php 7 // 接続設定(サーバ/データベース/ユーザ/パスワード) 8 $sv = "localhost"; 9 $dbname = "testdb"; 10 $user = "root"; 11 //$pass = "********"; 12 $pass = ""; 13 14 // 文字コード 15 //$enc_disp = "EUC-JP"; 16 //$enc_db = "EUC-JP"; 17 $enc_disp = "UTF-8"; 18 $enc_db = "UTF-8"; 19 20 // データの文字コードを変換する関数 21 function cnv_enc($string, $to, $from) { 22 // 文字コードを変換する 23 $det_enc = mb_detect_encoding($string, $from . ", " . $to); 24 // if ($det_enc and $det_enc != $to) { 25 if ($det_enc != $to) { 26 return mb_convert_encoding($string, $to, $det_enc); 27 } 28 else { 29 return $string; 30 } 31 }
403 :
nobodyさん :2011/09/09(金) 23:56:27.89 ID:z7az+EcJ
33 // データベースに接続する 34 $conn = mysql_connect($sv, $user, $pass) or die("接続エラー"); 35 mysql_select_db($dbname) or die("接続エラー"); 36 37 // データを取り出す 38 $sql = "SELECT id, nam FROM prod ORDER BY id"; 39 $res = mysql_query($sql, $conn) or die("データ抽出エラー"); 40 41 // 取り出したデータを表示する 42 echo "<select name=\"menu1\">"; 43 while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { 44 echo "<option value=\"".$row["id"]."\">". 45 // cnv_enc($row["nam"], $enc_disp, $enc_db)."</option>"; 46 cnv_enc($row["nam"], "UTF-8", "UTF-8")."</option>"; 47 } 48 echo "</select>"; 49 50 // 接続を解除する 51 mysql_close($conn); 52 53 ?> 54 </body> 55 </html> 24行目のcnv_encのandは間違いですよね? コメントアウトして自分なりに直してみましたが、それでも結果は変わりません。 アドバイスをお願いします。
>>403 23 $det_enc = mb_detect_encoding($string, $from . ", " . $to);
って
23 $det_enc = mb_detect_encoding($string, $from, $to);
じゃないの?
え
もうその本窓からステなよ
>>394-397 dです。
ちなみにこのように書き換えて使うことにしました。動作確認おkのようです。
function count_array($array)
{
$count = 0;
foreach ($array as $elem){
if (is_array($elem)){
$count += count_array($elem);
}
else{
$count++;
}
}
return $count;
}
408 :
403 :2011/09/10(土) 01:37:07.17 ID:dFxJuFkm
>>404 ああ、確かに訳の分からない連結してますね。
そこを直しましたけど変わりないですね。
>>406 4,000円もしたんですよ?
まず、ここ
24 if ($det_enc and $det_enc != $to) {
が正しいかどうか答えてくださいませんか?
自分は生まれてこの方こんなコード見たことないです。
まさか、($det_enc and $det_enc)がTRUEで$toがFALSEだったら真、ということは・・・ないですね。
>>408 ×答えてくださいませんか?
○教えて頂けないでしょうか?
「お前、客かよ!」なんかイラッとしたw
このスレの住民は「そんな本捨てろばっかだな」 おまいらいい年したオッサンなんだから、php初心者〜上級者 小学生〜中年まで対応したphpの解説したwebサイト作ってくれよ。
PEARって使ってる?
414 :
361 :2011/09/10(土) 07:15:55.24 ID:b1uhXqiv
>>400 >>401 ありがとう!
そのようにしたら、
できた!
ブラウザのURL欄は、
file:///Applications/XAMPP/xamppfiles/htdocs/upload.html この表示の時、できなかった
http://localhost/upload_image.php この表示の時、できた
サンクス
XAMPP,apach,ローカルホストは、ただで、
webページ貸してくれるけど、いままで、webページ借りるのに、金払ってたから、悪い
あと、localhostに表示されると、すごい文字化けする。どこをなおしたらよいでしょうか?
>>411 本家マニュアルよりもphpプロがおすすめ
これから入門するならね
416 :
361 :2011/09/10(土) 07:54:39.58 ID:b1uhXqiv
UTF-8,Shift-JIS,EUCで、実験しましたが、駄目でした
417 :
361 :2011/09/10(土) 08:08:13.23 ID:b1uhXqiv
失礼しました Shift-JISにしたら、なおりました。
418 :
nobodyさん :2011/09/10(土) 08:26:08.57 ID:9mHd+BwL
mb_convert_encodingが必要なのは、 外部の記憶領域(ファイル、セッション、DB)から、 変数を取り出したり書き込んだりする時だけでいいんですよね? 例えば同じファイルに書いて、 <?php $a="こんにちは"; echo mb_convert_encoding($a,'UTF-8','auto'); ?> なんてのは無意味ですよね? ちなみに上のスクリプトの動作は、SJISで保存してようが、UTF-8で保存してようが、 文字化けせずにUTF-8でこんにちはを出力してくれます。
php.iniでmbstring.internal_encoding='SJIS'だとしてもそうなるのかな。
>>408 データベースに接続する処理のあとにmysql_query("SET NAMES UTF8");
をいれてみて
>>420 の追記
解決したかもしれないけど
$det_enc and $det_enc != $toは
$det_encが真かつ$det_encがtoでないって意味だと
422 :
403 :2011/09/10(土) 10:28:31.95 ID:dFxJuFkm
ありがとうございます。
まだ未解決です。
>>420-421 mysql_query("SET NAMES UTF8");
を入れてみると、最初のは
PHP?泣?潟??????
と表示されるようになりました。
この?は、黒い菱形で"?"を囲んだ特殊な文字です。
同じ変数をandで比較して存在してるかどうか調べているんですね。
それでいて後半部分は$det_encが$toと一致しない、と…
やはり正しく表示されませんね…。
どうすればいいでしょうか?
423 :
403 :2011/09/10(土) 10:36:20.45 ID:dFxJuFkm
>>420-421 あーっ!ブラウザ(上でIEと書きましたがFireFoxでした…)の文字コードを"UTF-8"にしたら
正しく日本語で"PHPサンプル集"と表示されました!!!
ありがとうございます!
ただ、F5を押すと自動判別されてまた"PHP?泣?潟??????"に戻ります…。
自動判別を解除すると、もちろん"PHPサンプル集"と表示されるんですけど、
一般の方はきっと自動判別に設定していますよね…。
なぜ自動判別だとEUC-JPになってしまうのでしょうか?
何を基準にして自動判別しているのでしょうか?
424 :
403 :2011/09/10(土) 10:46:30.68 ID:dFxJuFkm
>>420-421 追記です。
文字コードを"UTF-8"にすると"PHPサンプル集"と表示されますけど、
今度はタイトルが文字化けします。
文字コードを"自動判別"にすると"PHP?泣?潟??????"と表示されますけど、
タイトルは「選択リストをデータベースから生成する」と正しく表示されます。
でも、PHPコード内のタイトルのところで文字コードなんて指定していないですよね?
自動判別がおかしいのはmetaタグで指定してやればよさそうだけど 根本的に、文字コードを何で出力すればよいのか設計があやふやではないかい? 少なくとも、設計の時点で、 ・データベース ・ソースコード ・HTML出力 を何の文字コードで管理すべきかは決めておかないと、どこで何の文字コードに変換すべきかわからなくならないか。
32行より↑の <html>〜<body>間に↓入れてる? <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
428 :
403 :2011/09/10(土) 10:56:47.67 ID:dFxJuFkm
>>425 そのmetaタグというのを具体的に教えていただけませんか?
PHP始めてまだ一週間程度の自分にそれを言われても困ります。
というか、この本スーパーサンプルがそれについて言及するべきだと思います。
日本語でデータベースを扱うのはこの本ではこれが最初です。
まだ右の左も分からない人間でもほぼそのまま実行できるサンプル、
っていうのが売りのはずの本なんですけどまったくのデタラメですね。
>>428 だから捨てろっていってんのに、困りますって言われてもこっちも困りますねー。
どっちかっていうと、分かってる人が思い出すのに使えるかなっていうところ。
いわゆるセキュリティとか丸ごと無視してるし。そういうの分かっている人じゃないと。
*初心者*がそういう引っかかるところを網羅してちゃんと使える本は無いんじゃないかな。
分厚くなりそうでちゃんと書くとかえって読みづらいし。
430 :
403 :2011/09/10(土) 11:08:15.13 ID:dFxJuFkm
>>426 自動判別で"UTF-8"が選択されるようになりました。
が、しかし、タイトルは文字化けしたままです。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > ←(2)
<title>選択リストをデータベースから生成する</title>
</head>
<body>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > ←(1)
<?php
// 接続設定(サーバ/データベース/ユーザ/パスワード)
挿入した箇所は、まず(1)に挿入して自動判別で"UTF-8"が選択されることを確認し、
次にタイトルも正常に表示されないだろうかと(2)に挿入してみてダメでした。
タイトルもUTF-8にする方法というのはありますか?
ソース自体の文字コードが違うのかな?
432 :
403 :2011/09/10(土) 11:16:33.70 ID:dFxJuFkm
>>431 ちなみに
>>428 を書く前に
上で教えてもらったiconvを使ってソースコード自体をUTF-8に変換しました。
ブラウザで開こうとするとダウンロードするかgeditで開くか訊かれて
geditで開くとブランクで何も表示されませんでした。
多分、テキストということすら認識されていないと思います。
>>430 (1)は意味ない
(2)でうまくいかないのはよくわからない
EUC-jpになるならEUC-jpに統一してみては?
434 :
403 :2011/09/10(土) 11:24:59.05 ID:dFxJuFkm
>>433 ありがとうございます。
なるほど、ということはデータベースからすべてEUC-JP、ということですね?
今日は他にもやることがあるので、後で試してまたレスします。
いやいや、 (2)ではうまくいってるじゃない。 titelのところに書いてある文字(ソース自体のコード) が違うんだって iconvはどうやったかよく分からないけどたぶん駄目だから 文字コード変えて保存できるエディタ使うべき。
UTF-8に統一に一票
php.iniのmbstring. http_output = のコード違いかね・・・
438 :
403 :2011/09/10(土) 11:37:12.01 ID:dFxJuFkm
>>435-436 グッドジョブ!!やっっっっと両方とも正常に表示されました!!!(嬉し泣き
geditで別名保存→"現在のロケール(UTF-8)"を選択してブラウザで実行しました。
こんなに大変だとは思ってもみませんでした。
>>427 さんのサイトを少し読んでみましたが、かなり深そうですね。
PHPの文字化けについて勉強してみようと思います。
答えてくださった皆さん、ありがとうございました!
マルチバイト関数を使う時は変換元エンコードを必ず指定する癖を付けておくのが重要なのである。
文字がマルチバイト文字ならな 不用意に使うのもいたずらに遅くなる
metaタグを知らないとか、PHP以前にHTMLから勉強しろよ。
443 :
nobodyさん :2011/09/10(土) 18:02:55.50 ID:8J+b/p28
phpってjQueryみたいなプラグインあるのオッサン?
>>443 >>1 ◆質問する時の注意
・ 質問者として、態度をわきまえること。
445 :
nobodyさん :2011/09/10(土) 18:33:26.13 ID:b1uhXqiv
すいません mysqlターミナルを使ってMySQLサーバーにアクセスしたいです どのようにするとよいでしょうか? 環境 mac XAMPPを、インストールして、MySQLの動作を確認しました。
meta要素でContent-Type指定っていつの時代だよ
そう簡単に、html5非対応のブラウザを使ってるユーザーを切捨てる事なんて出来ないだろ
449 :
nobodyさん :2011/09/10(土) 19:25:22.80 ID:8f05fZx5
(strpos($_SERVER['REQUEST_URI'], 'stage:') のstageの後の:て何を表しているんでしょうか?
html5関係ねぇ
>>449 :は文字列'stage:'の一部であって意味なんかないだろ
>>452 ありがとうございます。勘違いをしていました。
あと一つ質問があります。
$_SERVER変数の中身で
["QUERY_STRING"]=>
string(39) "type=book&seq=4097360221&seq_review=320"
["REQUEST_URI"]=>
string(36) "/book/feed/4097360221/320?stage=ques"
["SCRIPT_NAME"]=>
string(25) "/book/feed/4097360221/320"
というものがあります。
これらからどうにかして
/book/feed/4097360221を抜き出したいです。
320の部分は変数で渡していて定数ではないので320を消す
とかでは無理そうです。どうすればよいでしょうか?
454 :
nobodyさん :2011/09/10(土) 19:59:00.23 ID:8f05fZx5
追記で /4097360221の部分も変数で渡していて 文字数などが変化します。
>>453 最後の/(スラッシュ)以降を削除するという考えであればこれでいけんじゃね?
preg_replace('/\/[^\/]*/', '', $_SERVER["SCRIPT_NAME"]);
>>455 間違えた
preg_replace('/\/[^\/]*$/', '', $_SERVER["SCRIPT_NAME"]);
458 :
nobodyさん :2011/09/10(土) 22:20:49.07 ID:8f05fZx5
>>457 ありがとうございます!
おかげさまでできました!
metaタグとか全く関係ないし
460 :
nobodyさん :2011/09/11(日) 00:18:05.37 ID:5ZyXBnRO
phpにはjavascriptのjQueryやPrototypeに相当するライブラリは あるのですか?
462 :
nobodyさん :2011/09/11(日) 04:09:45.23 ID:5ZyXBnRO
if($lang[$i] == '')という記述は$lang[$i]に値が入ってるかを 判定するのですか? ''というのは$lang[$i]の値が数値と文字列の 両方を表しているのですか?
<?php $lang = array ('a', 1, 'abc', 123, ''); $n = count($lang); for ($i = 0; $i < $n; $i++) { if ($lang[$i] == '') { echo 'nothing' . "\n"; } else { echo $lang[$i] . "\n"; } } ?> この場合、$lang[$i] に、値(文字列や数値)が入っていないか判定し、値が入っていなければ 'nothing' を表示する。 $lang[$i] に値が入っている場合は、その値を表示する。
>>462 $lang[$i]の中身が文字列の場合、右辺の文字列''(この場合は空文字列)と比較する。
$lang[$i]の中身が数値だった場合、右辺の文字列''が数値に型変換されて 0 と評価されてから比較される。
(数値と文字列の比較では文字列が数値に型変換される。例:'123'→123、'ABC'→0)
よって、if($lang[$i] == '') は、$lang[$i] の中身がが空文字列''であるか、数値 0 の場合に真になる。
文字列比較はstrcmp()を使えっていうあれは何なん?
>>465 strcmpはあくまで「文字列」比較だから==や===と同等ではない。
strcmpの引数に数値(int型等)を代入すると文字列型に変換して比較する。
よって比較する変数の型が文字列でなくてもtrueとなることもある。
==では逆に文字列の方が数値(intだったりfloatだったり)に型変換して比較する。
===では型キャストせず、型も同一かどうかを検査する。
用途によって使い分ければいい。
しらずにif(strcmp($a,'')==0)とかやってた。 if($a=='')でいいじゃん。 ばかみたい。
>>468 $a=0 のときtrueでもいいならね。
そりゃ困る。 0と""は同じじゃねぇだろ。だれが考えても。
じゃぁstrcmpか===で比較しとくんだな。
>>473 emptyでも $a=0 のときtrueだよ
empty()でも$x=0でtrueじゃん。 0と""は同じじゃねぇ。
まぁそれがPHPの仕様ということで。 知らずに==で比較してると意外な落とし穴があるかもだけど、 大抵の場合は比較する変数にどんな値が入り得るか自分でわかってるだろうからあまり問題ない。
こんなことをいちいち知ってないと一流でないというプログラマは大変な仕事じゃん。
あんな表を全て暗記してたら天才だろうけど、なんとなく覚えてて必要なときに見て確認すればいい
PHPって複数のクラス継承できないの? クソじゃん
>>472 こういうのって結局、変数に型がないから
演算子の方でがんばろうかってなっちゃって
複雑になってるんだよな。
型があればこんなに演算子は必要なくなるのにね。
481 :
nobodyさん :2011/09/11(日) 12:43:09.14 ID:5ZyXBnRO
>>479 Java知らないの?
言語に文句言う奴って
たいがい無知なだけだよね。
a) if ( $a === '' ) b) if ( '' === $a ) a) と b) の違いを教えてください。
くだらない質問なんですが このスレでID出すにはどうすればいいのでしょうか。 専ブラはBathyScaheです
>>484 名前欄にfusianasanって書くと出るよ。
>>479 多重継承こそクソだと思うけどな
まぁPHPはそんなクソなものでも実装しかねないのが面白いところ
将来的にもしかしたら実装されるかもな
>>487 C++知らないの?
言語に文句言う奴って
たいがい無知なだけだよね。
C++でさんざん多重継承について叩かれてるだろ 人を無知呼ばわりする前に コミュニティに参加しろよ
>>490 それは値に型があるのであって、
変数に型があるって話じゃないでしょ。
全く違う話。
492 :
nobodyさん :2011/09/11(日) 16:42:50.58 ID:5ZyXBnRO
php可のHPスペースって有料ならどこでも同じようなものですか? なんか2chのおすすめはありますか?
>>493 自分が使ったことがあるのだけ
おすすめしてくださいね。
495 :
nobodyさん :2011/09/11(日) 17:05:58.94 ID:5ZyXBnRO
>>493 とりあえず、金がないのでFC2のライトプラン月250円
にしようと考えてまがBig-severの方がいいのでしょうか?
先に、何を使うとか決めてからサーバー決めた方がいいんじゃね? CMSのコミュ見てっと、サーバー借りたけど、○○CMSがうまく動かせません、っつよーな質問が結構ある。
497 :
nobodyさん :2011/09/11(日) 17:34:56.65 ID:TcayCkxL
if ($result = $mysqli->query("SELECT title FROM tbReview WHERE seq = ".$_GET['seq_review'])) { if ($result->num_rows > 0) { $row = $result->fetch_array(MYSQLI_NUM); $result->close(); } } この文の一行目で Fatal error: Call to a member function query() on a non-object in というエラーが出ます。 mysqlにSELECT title FROM tbReview WHERE seq = 903;などで 打ち込むとちゃんと値が取れるのですが、 エラーはどうすれば解消されるでしょうか?
ロリポップ最強伝説
ユーザーエージェントで判別してiPhone、Android、ipod用に広告を出力したいのですがどうすればいいのでしょうか? 旧携帯のdocomo用は下のような感じで出力しています。 $agent = $_SERVER['HTTP_USER_AGENT']; if (preg_match("/^DoCoMo/i", $agent)) { srand((double)microtime()*1000000); $ad_list1 = file("ファイル); $ad_key1 = array_rand($ad_list1, 2); $ad1 = $ad_list1[$ad_key1[0]]; // 表示 echo $ad1; >if (preg_match("/^DoCoMo/i", $agent)) { ここのユーザーエージェント部分を変えればいいだけなのかと 単純にif (preg_match("iPhone|Android|iPod", $agent)) { と入力しても出力されませんでした。 わかる方お願いします。
iif (preg_match("/iPhone|Android|iPod/", $agent)) にすればいいんじゃない?
>>497 $mysqliってどこで宣言してんの?
502 :
nobodyさん :2011/09/11(日) 18:10:38.23 ID:rcvtLkju
>497 $mysqli変数がnullになってるよん。 queryメソッドを呼び出す前を辿っていって、ちゃんと$mysqli変数にオブジェクトがセットされているかを確認すべし。
504 :
nobodyさん :2011/09/11(日) 18:15:33.75 ID:rcvtLkju
>479 php5.4からだけど、trait(scalaのぱくりかな?)が使えるようになる。 ようするにmix-in。 まぁそれがいいか悪いかは別として、便利だから使うと思う。
>>503 勉強になります。ありがとうございます。
507 :
nobodyさん :2011/09/11(日) 20:06:35.97 ID:H0qzNaRx
simplexml_load_file関数で複数のサイトのxmlを読み込む方法を教えて下さい。
たしかに改名したほうがいいよなw
$a=simplexml_load_file('site1'); $b=simplexml_load_file('site2');
511 :
nobodyさん :2011/09/11(日) 20:43:49.71 ID:vvss0p+f
【OS名】FreeBSD 7.1 【PHPのバージョン】5.2.17 【連携ソフトウェア】MySQL 【質問内容】 実行に15分くらいかかるphpを一日一回定期実行させたいのですがどのような方法がいいでしょうか ・phpファイルはさくらのレンサバにある ・cron使ったら当然のごとくkillされた ・ブラウザ上でなら普通に完走する ・使用PCはOS X Lion あと,別の軽いphpもcronで動かしてみたのですが稀にkillされます こっちもいい方法ないでしょうか? よろしくお願いします
さくらに直接聞けよ。
>511 >・cron使ったら当然のごとくkillされた >あと,別の軽いphpもcronで動かしてみたのですが稀にkillされます さくらでcronでkillされるなんて聞いたことないな。 killされたことをどうやって判断してるの?
514 :
nobodyさん :2011/09/11(日) 22:18:00.84 ID:vvss0p+f
>>513 killされる度にCron Daemonさんからメールが来るよ
どっかに1分以上動かしてたら怒るよって書いてあったと思う
手動で毎日アクセスする 金払って第三者に毎日アクセスするように頼む 後者がおすすめです
俺も事情あってcron使えないところはUWSCで自動ブラウザ起動してアクセスしてる
Android持ってたらtaskerでやる
>>513 金があれば上位プランに変える
金がないなら怒られない範囲に処理を分割する
519 :
nobodyさん :2011/09/11(日) 23:24:30.70 ID:fFrzDoDT
インストールオプションで --with-intl=shared としてもそれらしきshared objectが作られないのですが intlはsharedにすることはできないのでしょうか?
CRONでプログラムを直接キックするんじゃなくて file_get_contentsとか使ってURL経由でキックすれば ブラウザ出動作させたときと同じ条件にならないかな
>>520 file_get_contentsが終了するまで結局cronのプログラムが実行されたままにならないか?
>>521 あーそうか
結局は1分縛りの無い別サーバから叩かないといけないか
デスクトップやAndroidから叩くよりはいいと思うけど、いまいちやね。
いまいちつーか、単に自分の技術力がないだけじゃね? 今は月500円以下でroot権限もてるVPSが 借りられるんだからさ。
他のサーバーを借りる前提ならいくらでも方法はあるだろ。 現在のサーバーの制約内でどう解決するかって話じゃないのか。
月500円は技術力なんだよw
Twitterbotを作りたくて勉強しようと思うのですが、完全な初心者にもわかり易いサイトってどこでしょうか?
527 :
526 :2011/09/12(月) 01:54:51.04 ID:uM4EX7+a
あ、IDが出てなかった・・・
「php twitter bot」でググれ
529 :
519 :2011/09/12(月) 04:19:30.32 ID:???
見る場所が間違ってただけでありました てゆうかpeclでインストールした方がはやかった ピックルピックル
530 :
511 :2011/09/12(月) 08:50:24.72 ID:kBzzbu41
結局自PCからルーティンワークさせるのが現実な手段か root権付きVPSに乗り変えるのも面白そう。他にも出来ること増えるし サンクス
お安い御用です。
532 :
nobodyさん :2011/09/12(月) 15:02:49.71 ID:WoFdKos4
正規表現というかちょっとわからない所が $hoge ="abcdefgijk" を正規表現で"de"がマッチしたら"<br>「defg」が含まれています"を追加して $hoge ="abcdefg"."<br>「defg」が含まれています" と$hogeに追加されるようにしたいのですがいい方法とかありますでしょうか?
意味がよくわかんないけど、 検索して見つかった位置から検索文字数+2文字分とりだすのと 先頭からその位置まで取り出せればいいんじゃない?
535 :
nobodyさん :2011/09/12(月) 15:30:27.25 ID:WoFdKos4
preg_matchとかpreg_replaceとかはわかるんですが 検索して、マッチしたらマッチした部分を取り出すというのがどうも見当たらなくて それにreplaceじゃ置き換えてしまうので、追加するという形にはできませんし、もう何が何やら
>>535 $hoge ="abcdefgijk";
if(preg_match("/(de)/",$hoge,$match)){
$hoge .= "<br>「".$match[1]."」が含まれています";
}
538 :
nobodyさん :2011/09/12(月) 15:39:02.18 ID:WoFdKos4
>>536 >>537 ありがとうございます
$matchに格納するやり方もあるんですね、助かりました!
replaceで() マッチしたのは \1で使えるよ
540 :
nobodyさん :2011/09/12(月) 15:54:00.55 ID:+PNH4AO0
お小遣いサイトやASPの自動認証ってどういう仕組みですか?
>>540 ASPと契約すればユーザーを識別できる情報を貰えるよ
542 :
539 :2011/09/12(月) 16:15:12.18 ID:+PNH4AO0
>>541 その先の話です
サイト訪問者がASPからもらったURLを踏んで広告主のサイトに行って登録した場合、
広告主からASPになにかデータを送って成果が反映されるのか
ASP側が追跡プログラムでも作って登録されたのを確認するのかってのがしりたいです
543 :
540 :2011/09/12(月) 16:15:52.24 ID:+PNH4AO0
>>543 当然、広告主しかわからないので広告主が承認/非承認を選択する
悪質な競馬とかの広告主は全部非承認にしたりする問題もあるけどねw
>>542 このスレには素人しか居ないからここで聞いても無駄。
546 :
540 :2011/09/12(月) 17:05:13.75 ID:+PNH4AO0
お安い御用です。
>>545 じゃぁお前が答えてやればよかったのに。
どうして答えてあげないの?ねぇ?ねぇ?
サイトによるだろ、OAuthとかの話?
552 :
nobodyさん :2011/09/12(月) 18:59:43.32 ID:pRrcUQ0Y
他人からアクセスされないようにログファイルのディレクトリを
public_html(公開ディレクトリ)よりも上位のディレクトリの直下に置こうとしていて、
PHP側でそのディレクトリがない場合はmkdirするようなコードを書いたら
Warning: mkdir() [function.mkdir]: Permission denied in /path/file.php on line N
と言われました
どうすればいいですか?普通はどうするものですか?
あらかじめ作っておくものですか?PHP側で作ることは無理ですか?
https://forums.ubuntulinux.jp/viewtopic.php?id=5744 の回答者が言っているような
> 遅い返信ですが、ユーザディレクトリ以下に何かファイルを書き出すとかしたい場合には apache2-suexec-custom パッケージを入れて mod_suexec を有効にしないとダメかと。
ですか?
PHPでアクセスして予め作れるようならOKだが、それが出来ないからPermissionなんたら言われるんやと思うけど。 とりあえず、そのPHPファイルを置いているディレクトリにさえPHPからファイルを作れないのか?を調べてみると何か分かるかもしれん。 そのディレクトリには書けるってーのなら、最悪mod_rewriteでそのディレクトリを隠しちまえば要件は足りるし。
//以下は毎時0分〜2分の間に実行(3分未満の範囲で遅い場合) if(date("i") <= 2){ $response = $eb->postRandom("data.txt"); } //以下は毎時58分〜0分に実行(3分未満の範囲で早い場合) if(date("i") == 0 || date("i") == 59) 0 || date("i") == 58){ $response = $eb->postRandom("data.txt"); } これを一つの文でまとめるにはどうしたらいいんでしょうか?
555 :
554 :2011/09/12(月) 22:07:49.42 ID:uM4EX7+a
IDが出てなかったです、すいませんよろしくお願いします
if(date("i") <= 2 || date("i") >= 58 ) {
557 :
nobodyさん :2011/09/12(月) 22:17:25.76 ID:uM4EX7+a
ありがとうございます!
>>552 そもそもディレクトリのアクセス権がないとかないよね
chmod 777でもダメかチェックな
あとは、ルートディレクトリ以下じゃないと、ディレクトリ生成できない設定になっているサーバもあるので、そのときはphp.iniとかいじって設定帰る必要がある
よくあるところでは、Plesk使ったサーバだとデフォルトでこの設定
php.iniいじる権限が無いなら、553のいうとおり、ディレクトリ毎に設定書いて対応
559 :
552 :2011/09/12(月) 23:21:02.69 ID:???
>>553 ,558
レスどうもありがとうございます
「/public_html/foo.php」から
「/」に「bar」ディレクトリを作ろうとしています
「/bar」みたいな感じです
自分で「/bar」ディレクトリを作って適切なパーミッションにすれば
そこにphp側からファイルを作成できることは確認しました
「/public_html」以下ならPHP側からディレクトリの作成もできます
設定を変更するphp.iniのディレクティブはなんて名前でしょうか
560 :
552 :2011/09/12(月) 23:35:26.33 ID:???
doc_root・・・ですか?
561 :
nobodyさん :2011/09/13(火) 00:05:09.40 ID:BoQFAc7C
>>561 うん、そう
Shift JISとかBOM付きUTF-8でハマるのはFAQ
あと、テンプレみろって
>>559 「/」に「bar」ディレクトリを作るってことは、「/」ディレクトリにPHPからの書き込み権限がないと駄目ってことですよ。
自分で「/bar」ディレクトリを作る場合は自分のログイン権限で作るわけだけど、
PHPから作る場合はnobody(other)とかに書き込み権限を付与しとかないといかんね。
564 :
nobodyさん :2011/09/13(火) 09:03:56.54 ID:OYhF5wpw
例えば、数字を入力して計算をしてくれるcalc.phpがあって、それにAさんとBさんが同時にアクセスしていて、 $aに結果を代入するようにしているとして、Aさんが結果を出力しようとした寸前にBさんの計算結果 が$aに代入され、Aさんの結果がBさんの結果になるのでしょうか? $aはAさんもBさんも同じアドレス空間?の$aを使っているのでしょうか?
>>564 そんなことが起こったらまぁ大変。
銀行の口座取引もオンラインゲームも使えませんね。
PHP以前にコンピュータのプロセスについて勉強しましょう。
>>559 public_htmlの上は自分のHOMEディレクトリだから
ここをPHPに自由にさせるのはダメだし、root権限無いとできない。
その下に、何かディレクトリ作ってパーミッション設定すれば
そのディレクトリの下はphpでどうにでもできるように設定できる
>>564 そんなんだったら変数ごとに排他処理かけないとならなくなって、
頭がウニになるぞw
サーブレットを組んだときにサーブレットのインスタンス変数が まさか共有されるとは知らず書き換えられまくったのはいい思い出。
569 :
nobodyさん :2011/09/13(火) 10:41:55.00 ID:OYhF5wpw
>>565 >>567 レスありがとうございます。変数ごとにファイルのような排他ロックしないといけないのかな
とか思いました。
>1つのプログラムの実行をプロセスと呼び、プロセス識別子が付与される。
>プロセスは、複数のプログラムを並列処理できるが、同じプログラムを並列して処理することはできない。
AさんプロセスとBさんプロセスは同じcalc.php(プログラム)である。
>OSから見たプロセスはメモリーの管理単位となる。
AさんプロセスとBさんプロセスそれぞれにメモリーアドレス空間が割り当てられる。と解釈して、$aは
メモリー上に2つできるのか。
強引に解釈しました。
でも、ファイルへ読み書きだとAさんBさんのphpスクリプトは並列処理されて排他処理なんかしないと
いけないな。
>>569 プログラムはOSレベルやウェブサーバーの子プロセスとして並列処理されるので変数とかは気にしなくていいけど、
データファイルへの読み書きなどは共通のファイルにアクセスするのでflock 関数などでロックするのが当たり前。
572 :
nobodyさん :2011/09/13(火) 12:13:11.86 ID:OYhF5wpw
プロセスhttpdがphpモジュールをロードしてそのphpモジュールがcalc.phpを 読みこんでるんだよ。
PHPがそうだということなのになんかWebのサーバー側は すべて同じみたいな語り方はやめたほうがいいと思うなー。
サーバーの世界でのプロセスとかインスタンスとかよくわからない おしえてたもれ
【PHPのバージョン】5.3(xampplite) 【連携ソフトウェア】MySQL 【質問内容】 掲示板を作成をするシステムを作りたいです。 ファイルがひとつのシステムなら以下のテンプレートファイルを元に作れました。 $template=file_get_contents('./template.php'); file_put_contents('./$num.php',$template); しかしファイルが複数あるシステムの場合どうやって作ればいいのか思いつきません。 どなたか知恵をお貸しください。
>>578 失礼しました。
【PHPのバージョン】5.3(xampplite)
【連携ソフトウェア】MySQL
【質問内容】
掲示板を作成をするシステムを作りたいです。
ファイルがひとつのシステムなら以下のテンプレートファイルを元に作れました。
$template=file_get_contents('./template.php');
file_put_contents('./$num.php',$template);
しかしファイルが複数あるシステムの場合どうやって作ればいいのか思いつきません。
どなたか知恵をお貸しください。
580 :
577 :2011/09/13(火) 14:33:46.03 ID:YYmgJRoW
>>579 あれ?なんでsage入ったんだ?
【PHPのバージョン】5.3(xampplite)
【連携ソフトウェア】MySQL
【質問内容】
掲示板を作成をするシステムを作りたいです。
ファイルがひとつのシステムなら以下のテンプレートファイルを元に作れました。
$template=file_get_contents('./template.php');
file_put_contents('./$num.php',$template);
しかしファイルが複数あるシステムの場合どうやって作ればいいのか思いつきません。
どなたか知恵をお貸しください。
それは作ったうちに入らないから作れないんだと思う。
ここはサポセンじゃないのよ システムもわからないのにコード出されても回答不可 作った人に聞けとしか
583 :
577 :2011/09/13(火) 15:10:44.29 ID:YYmgJRoW
質問の仕方が悪かったみたいです。 システムは全部自分で作ってます。 コードは書きましたがそこは本題ではなく本題はひとつのファイルを量産させることはできたが 複数のファイルがあるフォルダを量産させることができないということです。 テンプレートファイルというのはtemplate.phpで、この掲示板のテンプレファイルをもとに掲示板を量産しています。 $num.phpに数字をいれて、例えば577.phpというファイルを新しく作って量産させることができました。 ただファイルが複数入ったフォルダでひとつの掲示板システムになっているものを量産させるやり方がわからないので どういう方法があるのかわからないので教えてくださいということです。
javascriptから外部PHPファイルを呼び出したいのですが
PHP側での処理をどう書くかがわかりません。
例えばRSSを表示させる場合に
【HTML側】
<script type="text/javascript" src="js.php"></script>
【PHP側】
<?php
$url = "
ttp://gigazine.net/news/rss_atom/ ";
$xml = simplexml_load_file($url);
$text = $xml->title;
header("Content-type: application/x-javascript");
echo "document.write($text)";
?>
では駄目なようで、この場合どのように書いたらいいのでしょうか。
>>583 複数フォルダを作って中身をコピーすれば済むじゃん
'./template.php' これを固定値にするからいけないんだろ 変数にしてどっかに外部ファイルに保存しとけ
>>584 最終的に何がしたいのかわからんが、「駄目なようで」ってどう駄目だったの?
document.write($text) までちゃんと実行されたの?
そりゃだめにきまってる 変数展開して良く考えてみろよ パースエラーだろフツーに
590 :
577 :2011/09/13(火) 15:40:17.08 ID:???
>>585 ありがとうございます!
新しい名前のフォルダを作って、その中にテンプレフォルダに入ってるファイルをコピーしていれるってことですよね?
たぶんできそうなんで自分で調べてやってみます!
>>587 ありがとうございます!
ただ変数名にして外部ファイルに入れるってどういうことですか?
勉強不足すぎて自分にはわからないです。。
>>591 $text をスタティックテキストに入れ替えてやってみたりした?
スレタイに従ったら教えてやるよ
>>590 cp -rpすればいいだけなんだけど、量産するのはめんどくさいからPHPでやってるってことだと思うんだけど、
それをPHPでやる意味がわからない
595 :
577 :2011/09/13(火) 15:52:28.43 ID:YYmgJRoW
おれはID出さないとレスもらえなかったのにいいなあ。みんなやさしくて。
>>592 意味がわかりません。
>>593 はぁ、意地悪ですね。一言で解決できるんでしょ?
もういいです。他で聞きます。
>>595 途中からIDなしでもレスついてんだからやさしいもんだろ
>>596 生成されたJSのパースエラー
レンタル掲示板をやりたいだけだったりな
>>595 まあ、タイミングとか内容の答え易さとかなw めげるなww
こっからMySQLがどう絡んでくるかが見ものだよ。
601 :
584 :2011/09/13(火) 16:03:37.24 ID:/ZsOeR7E
すみません。
忍法帳に引っかかってやり直した時に何故かsageが入っていました。
面倒な人に関わりたくないんですが
>>591 と
>>596 は偽物です。
echo "document.write(\"{$text}\")";
で出来ました。
template.phpから固有の掲示板IDを作成、出力して 掲示板(ID:A) 掲示板(ID:B) → PHP(掲示板読み書き) →SQL 掲示板(ID:C) みたいなのじゃダメなのかね・・・
もういいです。他で聞きます。
604 :
577 :2011/09/13(火) 16:20:32.43 ID:YYmgJRoW
>>594 cp -rpってUNIXコマンドってやつですか?
cpがファイルやディレクトリをコピーするコマンドで-rpはオプションって書いてあったんですが、これってどうやって使うんですか?
とか聞いていいんですか?
PHPというかプログラム自体最近始めたので何がわからないのかがわからない状態です。
知ってるのがPHPだけなので基本PHPで書こうとしてるだけです。
system() exec()
そもそも大元の仕様から間違ってる気がする
>>604 じゃあ、Windowsだとして、フォルダを丸ごとコピーすれば満たせる仕様なの?って話。
要領を得ない下手糞な質問にこれだけ応対しているんだ やさしいだろ これ以上やり取りしても 「とりあえずの解決」にはたどりつけるかもしれないが 肝心なところはどうにもならないな エスパー伊藤がこの場にいない限りは
>>604 システムは自分で全部作ってるって
>>583 で書いてるじゃないか。
linuxのコマンドも知らないで何言ってんの?
>>577 path/to/template にBBSのファイルを一式置いておく
function copy_dir($src, $dest, $mode = 0777) {
if (!file_exists($dest)) {
mkdir($dest, $mode, true);
}
$dir = opendir($src);
while ($name = readdir($dir)) {
if ($name == '.' || $name == '..') {
continue;
}
$src_file = $src . DIRECTORY_SEPARATOR . $name;
$dest_file = $dest . DIRECTORY_SEPARATOR . $name;
if (is_dir($src_file)) {
copy_dir($src_file, $dest_file);
} else {
copy($src_file, $dest_file);
}
}
closedir($dir);
}
copy_dir('path/to/template', 'path/to/deployment');
最初にxamppliteって書いてありますよww linuxのコマンドwwwは勘弁してあげてくださいねwwwww
612 :
552 :2011/09/13(火) 21:01:47.35 ID:???
>>563 ,566
レスどうもありがとうございます
つまりphp.iniで設定すればどうにかなるというものではないということでしょうか
従来どおり?に「/public_html」以下にディレクトリを作らせるか
または自分で「/」にディレクトリを作るかしようと思います
どうもありがとうございました
お安い御用です。
>>608 只の知ったかだろ
半角数字とか学生の分際で早くも理系気取りかよ
>>615 学生が羨ましいだけだろw
大丈夫。お前は入学できないからww
616 :
nobodyさん :2011/09/14(水) 11:03:19.45 ID:b50MO3sw
>>615 学生が羨ましいだけだろw
大丈夫。お前は入学できないからww
>>618 学生が羨ましいだけだろw
大丈夫。お前は入学できないからww
>>618 学生が羨ましいだけだろw
大丈夫。お前は入学できないからww
>>617 学生が羨ましいだけだろw
大丈夫。お前は入学できないからww
あまりのキモさに回答者一同が引いた。。。 最近の学生って、こんなキモい奴ばっかりなんかい?
これはヒドイ キモい
句読点がキモいからってスペースで代用する奴はもっとキモいw
php5.3のnamespaceの仕様きもすぎるぞなんで\なんだ
句読点を使わない書き込みを投稿してる人は、 「句読点を打てないバカをサマージャンボする俺」氏から バカにされますよ?
625 :
nobodyさん :2011/09/14(水) 21:43:13.58 ID:/y4wsPc1
PHPを動作させる環境を作るのがうまくいかず困っています。
osはwindows 7です。
http://techblog.ecstudio.jp/tech-tips/amazon-api-ranking.html のサイトを参考に、あまのランキングを取得したいと考えています。
xamppは無事インストールできました。
しかし pear install -a HTTP_Request2-alpha をプロンプトで入力すると
WARNING:channel "pear.php.net"has updated its protocols,use"channel-update pear.php.net" to update
とでてうまくいかないので指示通り
pear channel-update pear.php.netと入力しました。
626 :
nobodyさん :2011/09/14(水) 21:45:17.86 ID:/y4wsPc1
アップデートはうまくいったみたいなので また pear install -a HTTP_Request2-alpha を入力すると エラーメッセージは表示されなくなったのですが、 サイトのようにHTTP_Request2-0.5.1.tgzがダウンロードできません。 2-0.3.1.tgzはダウンロードできました。 そのため環境を構築できず困っています。 いろいろぐぐってみたのですができませんでした。 (pear upgrade PEAR installer などやっても変わらず) よろしくお願いします。
これは、ヒドイ!キモい?
>>625-626 >>1 【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
2ch×GEEKって要素が重なり合って 独特の陰湿さ性悪さが醸し出てるスレだなwww 学校でギークが虐められる理由がわかった気がしたwww
2chねらーってだけでもアレなのに それに加えて技術者でもあるからね もう暗さ、陰湿さがMAXなわけよ で、そういう奴らが集まるのがここなわけだから
Geekて Welcome to Undergroundとか囁いてそうだな
海外にあるPHPのフォーラムは人間的にまともなんだよ みんな丁寧で優しく和やか でも2chって独特の陰湿さや罵り合いがあるから そのくせ、技術レベルは低くないのが腹立つw
>>632 丁寧でやさしく和やかな回答し続ければそうなるよ。
そんなこと書いてないでさ。
技術レベルが低くない? MLのひとつでも見てればここが最下層って事くらいわかるだろ
RTFMレベルな質問者がそんな事わかるわけないだろ
>>634 お前のその態度・口調がまさに2ch的なんだよ
すぐに反論してくる攻撃的な感じw
他の媒体はこんなに殺伐としてないよ。
2chで2ch的とは。 それが日本的なんだよ。というのと同じ。
どんな口調だろうとIDさえ出せば回答もらえる方がどう考えても優しいな
きちがい初心者の精神攻撃にやられて回答者側も病んでくるのがこの手のスレのお約束 さらに別のきちがいが回答者の態度に難癖つけて荒れるのもお約束 全部テンプレ
「きちがい」って言葉自体リアルの会話では使わないだろ・・・ やっぱ2chっておかしい人が集まるのかな? 中学の同級生に2chねらーがいたっけな 学年で一人だけ不登校だった(笑)
実社会でもそうだが常識的は何の役にもたたんよ。
まだガキが粘着してんのか
641が何を言いたいのか素で分からん
毒にもならんものは薬にもならんということ。
突出した価値観を毒とか薬とすれば、常識って健康な体みたいなもんだろ。 641はそれを否定してるように見えるからさ。毒だけじゃ死ぬだけだ。
君は幸せな人だ。
>>640 お前は、自分が2ちゃんねらーじゃないと思ってるの?ww
if(date("G") == 7 && date("i") <= 2 || date("i") >= 58 ) { $response = $eb->postRotation("0700.txt"); } else if(date("G") == 12 && date("i") <= 2 || date("i") >= 58 ){ $response = $eb->postRotation("1200.txt"); } else if(date("G") == 15 && date("i") <= 2 || date("i") >= 58 ){ $response = $eb->postRotation("1500.txt"); } else if(date("G") == 19 && date("i") <= 2 || date("i") >= 58 ){ $response = $eb->postRotation("1900.txt"); } else if(date("G") == 22 && date("i") <= 2 || date("i") >= 58 ){ $response = $eb->postRotation("2200.txt"); } else if(date("w") == 5 && date("G") == 12 && date("i") <= 2 || date("i") >= 58 ){ $response = $eb->postRotation("kitanama5.txt"); } else if(date("w") == 5 && date("G") == 17 && date("i") <= 2 || date("i") >= 58 ){ $response = $eb->postRotation("kitanama5.txt"); } else if(date("w") == 5 && date("G") == 19 && date("i") <= 58 || date("i") >= 35 ){ $response = $eb->postRotation(15,"kitanama2.txt"); } else if(date("w") == 5 && date("G") <= 22 || date("G") >20 && date("i") <= 2 || date("i") >= 58 ){ $response = $eb->postRotation("kitanama3.txt"); } else if(date("w") == 5 && date("G") == 23 && date("i") <= 58 || date("i") >= 35 ){ $response = $eb->postRotation("kitanama4.txt"); } ちょっと長いですが、これって文法的に合ってるのでしょうか?
651 :
650 :2011/09/15(木) 18:56:28.78 ID:WpYk8Ao3
ID出してなかったです・・・ 手動で動かしてみると投稿するメッセージはありませんと出てくるのですが
せめてもうちょっと書き方どうかなるだろ
if(date("G") == 7 && date("i") <= 2 || date("i") >= 58 ) が 7時の0分、1分、2分 もしくは (時間関係なく)58分、59分 という意味でよければ。 文法は合ってるけど、やりたいことと違うんだと思うよ。
654 :
nobodyさん :2011/09/15(木) 19:10:45.19 ID:WpYk8Ao3
あぁ、そういう命令になるんですね txtの前にcronとして2,を指定して、 if(date("G") == 7 && date("i") <= 1 || date("i") >= 59 ){ $response = $eb->postRotation(2,"0700.txt"); } とすれば、時間内に1回のpostしろという形になりますか?
cronとして2とか、時間内に1回のpostしろという形になりますか?とかの意味がわからんが、 cronつかってるなら素直に1時間に1回の設定で必要なスクリプトを走らせればいいんじゃね?
656 :
nobodyさん :2011/09/15(木) 20:45:27.55 ID:WpYk8Ao3
ん〜・・・なんて説明すればいいのか・・・ 普段は時報のようにして、毎週金曜日は特殊なメッセージを出したいんです で、cronのズレを考慮してあのような書き方になったんですが、これをもっとスリムにするにはどうしたらいいのでしょうか?
スクリプトの起動時のオプションで動作を変えたら? 月曜〜木曜、土日はオプション無しでスクリプトを実行して 金曜だけは起動オプション付けて実行するとか。
<form action="sample04.php" method="get"> <label for="my_name">お名前:</label> <input id="my_name" type="text" name="my_name" size="35" maxlength="255" value="" /> <input type="submit" value="送信する" /> </form> 上記で名前を入力し <?php print('お名前: ' .htmlspecialchars($_GET['my_name'],ENT_QUOTES)); ?> で名前を画面に表示したいのですが 上手くいきません 何がちがうのでしょうか
660 :
nobodyさん :2011/09/15(木) 23:58:45.26 ID:bXkV862H
661 :
nobodyさん :2011/09/15(木) 23:58:59.53 ID:AcdP6Eeb
すみませんでした <form action="sample04.php" method="get"> <label for="my_name">お名前:</label> <input id="my_name" type="text" name="my_name" size="35" maxlength="255" value="" /> <input type="submit" value="送信する" /> </form> 上記で名前を入力し <?php print('お名前: ' .htmlspecialchars($_GET['my_name'],ENT_QUOTES)); ?> で名前を画面に表示したいのですが identify なんちゃらがでます。書籍のとおりに打ってるはずなのですが。。。 何がちがうのでしょうか
>>661 >>1 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
663 :
nobodyさん :2011/09/16(金) 00:09:04.78 ID:/o/7CNA/
PHPを64bitのlinuxにソースからインストールしたのですが、64bit版としてインストールされているという確信が持てません 理由は/usr/local/lib64ではなく、/usr/local/libに入っているからです 32bitとして入っているんじゃないかと思うのですが、どのようにして確認をすればいいのでしょうか? また、./configure時に64bit版としてインストールする際になにかオプションを指定しなければいけないのでしょうか? ./configure --helpでは64bitに関する記述は見当たりませんでした
664 :
nobodyさん :2011/09/16(金) 00:10:02.61 ID:G4oVoh0/
書籍名とエラー番号を教えて
665 :
663 :2011/09/16(金) 00:12:55.84 ID:/o/7CNA/
ちなみに ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-freetype-dir=/usr/local/lib --with-gd --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-zlib --with-xsl=/usr/lib --enable-mbregex --enable-mbstring --enable-bcmath --with-mcrypt --disable-posix-threads --enable-bcmath と指定しました
666 :
nobodyさん :2011/09/16(金) 00:15:01.89 ID:L2+iA3AA
>>664 書籍名「よくわかるPHPの教科書」P47
エラーは
Notice: Undefined index: my_name in C:\xampp\htdocs\sample04.php on line 2
お名前: ?>>
と出てきます
667 :
nobodyさん :2011/09/16(金) 00:17:16.34 ID:G4oVoh0/
668 :
663 :2011/09/16(金) 00:22:51.12 ID:/o/7CNA/
669 :
nobodyさん :2011/09/16(金) 00:22:58.65 ID:G4oVoh0/
未定義のNoticeはもうFAQだな テンプレに入れてもいいんじゃないかと思う
671 :
nobodyさん :2011/09/16(金) 12:38:28.01 ID:SzjyHjuW
$a = array(array(1,2),array(3,4)); $pdo->bindValue(":hoge", $hoge); $pdo->bindValue(":fuga", $fuga); foreach ($a as $value) { $hoge = $value[0]; $fuga = $value[1]; $pdo->execute(); } こういうコードがあって、問題なく動作します。 $hogeと$fugaは、bindValueのところで初めて出てきてるのですが、 このコードの前に、 $hoge = null; $fuga = null; みたいな処理はいれたほうがよいでしょうか?
null入れても bindValue はそのときの値 になっちゃうのでforeachが無意味に。 bindParamなら、変数の参照渡すので executeの前で変数書き換えたのが有効。
673 :
nobodyさん :2011/09/16(金) 13:45:34.50 ID:SzjyHjuW
>>672 ありがとうございます。
ではnullで初期化してbindParamを使うことにします。
>>673 いやだからnullで初期化しようがforeach内で書き換えてるので意味ないだろ
変数宣言するかしないかの話だろ
foreach内で初期化するんだから事前にnullで初期化(宣言)するのは無意味だろ
foreachスコープ内の変数ならそうだけど bindParamはスコープ外に定義されてんじゃん
PHPはそんなブロックスコープはございません(確か
>>672 で答えは出てるんじゃないか
勤勉な馬鹿になりたくなかったらマニュアルぐらい読もうぜ
PDOStatement#bindValue() 値渡し
PDOStatement#bindParam() 参照渡し
680 :
nobodyさん :2011/09/16(金) 20:16:19.12 ID:YVm7EOhj
内部文字コードがUTF-8のPHPから、 日本語が混じってるファイル名をそのままの名前で他ディレクトリにコピーして、 コピーしたものをimg srcで表示するという処理をしたのですが、 Windowsだとうまくいかなかったので、試行錯誤したのち、ファイル名をSJISに変換したところうまく行きました。 しかし本番環境のFreeBSDでこの処理を入れると、今度は本番環境がうまくいかなかったので、 SJISにする処理をなくす、またはUTF-8に変換する処理を入れたらうまくいきました。 こういうサーバOSや環境に強く依存する問題はどのようにして解決すればいいでしょうか?
>>680 原則としてファイル名は英数字記号だけ(日本語等を含まない)にするのが無難。
683 :
nobodyさん :2011/09/16(金) 22:37:47.22 ID:S4gH2ufw
>>669 そのページを読んでもわかりません
<form action="sample04.php" method="get">
<label for="my_name">お名前:</label>
<input id="my_name" type="text" name="my_name" size="35" maxlength="255" value="" />
<input type="submit" value="送信する" />
</form>
上記で画面にボックスが出てくるので名前を入力し、送信ボタンを押すと
「sample04.phpを開くか、または保存しますか?」と聞いてきます
で、保存したものを実行すると
Notice: Undefined index: ny_name in C:\xampp\htdocs\sample04.php on line 2
とでてきます
どうすれば、名前が画面に表示されるようになるんでしょうか
>>683 > Notice: Undefined index: ny_name in C:\xampp\htdocs\sample04.php on line 2
意訳: 配列の存在しない ny_name にアクセスしてんじゃねーよ、ボケ! 省略\sample04.php の2行目
>>683 669の何がわかってないのかが全然わからん
686 :
nobodyさん :2011/09/16(金) 23:38:07.55 ID:G4oVoh0/
apache入ってないからさ、確認できないんだけど、linux電源いれるのも 面倒なんで、 $name=htmlspecialchars($_GET['my_name'],ENT_QUOTES); echo $name; でなんて出る?
っつか、apache動いてなくて、スクリプトそのものをダウンロードしちまってるんじゃね? ダウンロードしたファイルを実行してエラーでてるってのが、実のとこサーバー側で実行したエラーが表示されたのか、ローカルで実行したエラーが出てるのか紛らわしくてわからん。
688 :
nobodyさん :2011/09/16(金) 23:54:06.83 ID:G4oVoh0/
689 :
nobodyさん :2011/09/16(金) 23:54:10.76 ID:Fvw/ngrd
>>684 >>配列の存在しない
ここがすでにわかんないです
みなさんは、PHPを勉強し始めたとき、どんな本を使いましたか?
>>685 「sample04.phpを開くか、または保存しますか?」と聞いてきます
これを実行しても、エラーがでるとこがわかりません
どんな初心者糞本でも配列ぐらいちゃんと説明してるだろw
>>686 <?php
$name=htmlspecialchars($_GET['my_name'],ENT_QUOTES);
echo $name;
?>
上記で
Notice: Undefined index: my_name in C:\xampp\htdocs\sample04.php on line 2
と画面に表示されます
>>687 apacheは大丈夫です
(´・ω・`)
692 :
nobodyさん :2011/09/17(土) 00:17:51.85 ID:FVinoNH2
sample04.phpがあるということはsample03.phpもあるの? ソースすべてさらして。
693 :
nobodyさん :2011/09/17(土) 00:45:13.87 ID:FVinoNH2
sample04_inputに名前を入力してみて
694 :
nobodyさん :2011/09/17(土) 00:56:36.90 ID:FVinoNH2
いや、エラー出てるからそれとはケース違うだろ
>>683 それphpがサーバーで実行されてないよ
ファイルの保存がでないようにしなくちゃ
そしたらそのエラーは消えるから
697 :
nobodyさん :2011/09/17(土) 01:08:38.57 ID:FVinoNH2
sample04_input.htmlにアクセスできているかがわからん。
下らねぇ質問をするのはやめろ!
699 :
nobodyさん :2011/09/17(土) 01:12:51.44 ID:FVinoNH2
>>678 <?php
error_reporting(E_ALL);
$a=array(1,2);
$b=0;
foreach($a as $v){
$c=5;
$b++;
}
if($b==2){
$c=9;
$d=5;
}else{
$e=7;
}
echo $c;
echo $b;
echo $d;
echo $e;
ほんとだね
まぁそれでも外側に定義しておきたいな俺は
下らねぇ
$a; $b; $stmt->bindParam(1, $a); $stmt->bindParam(2, $b); $a = 1; $b = 2; $stmt->execute(); $a = 3; $b = 4; $stmt->execute(); foreach ($foo as $bar => $baz) { $a = $bar; $b = $baz; $stmt->execute(); } これでいいよ
703 :
nobodyさん :2011/09/17(土) 07:40:23.29 ID:AloIftgE
SimpleXMLElementを触っていて思ったんですが、これはPHPの実装レベルで作られたものですか? (つまり、デフォルトのPHP5.3を使って、このようなクラスを自作することはできますか?) XML文字列を引数として、new SimpleXMLElement($xmlstr); などとすると、 XMLの全ての要素がSimpleXMLElement型のオブジェクトになるわけですが、 それらのオブジェクトを直接echoすると、XML要素の中身が表示される、というのはデフォルトのPHPの機能で可能なんでしょうか。
>>702 > $a; $b;
変数定義のつもりか知らんが少しは確かめて書かないと恥をかくだけだぞ
>>704 PHPしかやらない人はよく言うんですよ
配列自体はBASICの時代に勉強したなー。 10 DIM A$(10) みたいなの。 連想配列や多重配列はさすがにPHPからだが。
708 :
nobodyさん :2011/09/17(土) 09:23:43.46 ID:AloIftgE
>>705 こんな機能があるのですね。どう調べたらいいのかわからず苦労していました。
ありがとうございます!
お安い御用です。
710 :
nobodyさん :2011/09/17(土) 15:46:04.55 ID:vN1UOsqe
ソートすればいいじゃない
それすらわからないから丸投げしたんだろ
マジかよ!それでプログラマかよ!! 信じられねぇ
715 :
nobodyさん :2011/09/17(土) 18:05:51.33 ID:k361AY0Y
phpを大学で勉強しないから独学しているのですが、 会社の面接で「phpを独学して画像アップローダー 作りました」とか言ったいいものなんでしょうか? どんな感じにアピールしたらいいですか?
SNSならわかるけど画像アップローダーは恥ずかしいからやめたほうがいい はじめて1ヶ月で作れるものをアッピルしてもワロタされるだけだ なんか資格とったほうがいい
717 :
511 :2011/09/17(土) 18:14:59.47 ID:t86LpLYc
>>715 PHPが出来るぐらいなんのアピールにもならないと思うけど,
書類に使用可能コンピュータ言語みたいなの書かされることがあるから
そこに加えられる…ぐらいじゃね
正直恥ずかしい
718 :
nobodyさん :2011/09/17(土) 18:21:53.04 ID:k361AY0Y
>>716 資格とはプログラム関係の資格ですか?
基本情報技術者とかですか?
>>717 phpって評価されないのですか。
SNSを自作できるレベルだと自己アピールできると
考えていいですか?
PHPが出来ますと言って喜ばれるのはデザイナーまでだしな マで他の言語の経験がない、できない奴とは仕事したくない
>>718 基本情報とかでもいいけど
PHPの基礎がわかれば比較的簡単にとれる
JAVAのSJC-Pとかもおすすめ
企業入ったらPHPメインでやってるとことかあんまないから
最近はモバイル分野盛んだし
悪い事は言わない
PHPでSNSなんか作るより
アンドロイドかiPhoneでどうしようもないクソアプリでも作ったほうが
評価される
721 :
nobodyさん :2011/09/17(土) 18:53:03.25 ID:k361AY0Y
そうですか、時代は携帯アプリですか、 グリーとモバゲーのようなクソゲーが大ヒットする 世の中ですからね。 phpの他に、javascript、c++、C言語やってますが、 ケータイアプリ作るのって難しいですか?
かんたんかんたん phonegapで
スマホなくても動作確認できる?
なんで言語にこだわるのか 要はモノを作れるかどうか それだけ
725 :
nobodyさん :2011/09/17(土) 19:44:24.30 ID:FVinoNH2
後はサーバー関連じゃないか。 apacheなんかのインスコをxampででなくてできるようにするとか どうやってインターネットが接続されているのか。 TCP/IPの基本はしっておくといいぞ。
初心者なんだけどprintとechoの違いを教えて下さい
728 :
726 :2011/09/17(土) 21:02:36.71 ID:5PxKr6EW
730 :
nobodyさん :2011/09/17(土) 21:05:48.81 ID:G5DTtQeZ
どちらも同じように書けるけど、 わりと多くのソースを見るとecho使う人は echo 'hoge'; ていう感じの記述をして print使う人は関数風に pirnt('hoge'); って記述をしていると思う
733 :
nobodyさん :2011/09/17(土) 22:50:59.89 ID:2L4Ba2bQ
フォームのsubmitボタン連打による2投稿防止のベストプラクティスは何ですか?
734 :
nobodyさん :2011/09/17(土) 22:51:51.48 ID:2L4Ba2bQ
2重投稿です。すみません
セッション
printとかechoとか気にするな 気にするだけ時間の無駄
画面表示がprint文なのはbasic以来の伝統 echoとか市ね
738 :
nobodyさん :2011/09/18(日) 00:54:43.56 ID:aXXfuI0S
>>730 今頃解決とか....
お前ちゃんと本読んでいる?
まあ、おんなじところでつまづいている人間がほかにも
いるということは不親切なんだろうけど......
確かぐぐったら3人いたな。同じところ書いていた人。
あんたらと違って実生活が忙しいのでPHPの本なんて読む暇は殆どありません
740 :
nobodyさん :2011/09/18(日) 01:02:50.64 ID:aXXfuI0S
741 :
nobodyさん :2011/09/18(日) 01:04:52.63 ID:aXXfuI0S
じゃあPHPをやらなきゃいい。 一生デザイナーだけやってろ。
>>741 お前ら一生PHPやるつもりなの?www
俺はW3CとPHP信者だから……
いいかげんAj.axに移行しろよ PHPなんてやってても将来はないよ
最近見ないと思ったら まだこのスレにいたのかwww
Ajaxくんで初めて笑ったわw お前が居る限りPHPスレは平和だ
Ajaxに移行ってなんでやねん
Ajaxは万能なんだよ!サーバサイドでも使えるんだよ!
質問です。 会社で作るツールの設計を依頼されているのですが、 前提条件として以下があります。 1.社員情報を管理するのですが、旧字体の名前の人がいるので、phpファイルをutf8で作りたい 2.Unixのサーバ(FreeBSd)で、jvimで普通にファイルを作成すると、eucで作成される。 このよに、utf8のシステムを作りたいのに、サーバがeucという場合、考え方として、 1.旧字体の利用をあきらめる 2.utf8のサーバーを用意する。 などが考えられますが、 どのようにするべきでしょうか? 長文質問すいません。
ubuntuを使う
jvim使わない 若しくは.vimrcのスケルトンを設置しておき基本文字コードをutf8にする 既に作成されたユーザには.vimrcを配布するか カスタマイズしてる人には文字コード設定してもらう
業務システムならJavaがいいと思う
>>748 Ajaxって言語じゃなくて技術のことをさしてるんじゃなかった?
みんなyii frameworkやろうぜ Ajax(JQuery)簡単に使えるし、Ruby on Railsのパクリ要素満載で簡単にWEBアプリ作れちゃうぜ
PHPってコンパイルできないの?
できるよ
じゃぁやれば?
うん
できました。
お安い御用です。
762 :
nobodyさん :2011/09/18(日) 19:55:53.15 ID:n9xCpy+Z
>>740 便利なページの紹介ありがとうございます
763 :
nobodyさん :2011/09/18(日) 21:07:31.42 ID:yb5GOCyK
質問です 重いファイルをアップロードさせて「現在アップロード中です」と表示させるにはどうしたら良いでしょうか?
764 :
nobodyさん :2011/09/18(日) 21:46:30.77 ID:aXXfuI0S
phpで作ったSNSやブログサービスを始める場合は 何か許可や資格が欲しいのでしょうか? 他人のメールアドレスなどの個人情報に扱うは どのようになってるのですか?
766 :
nobodyさん :2011/09/19(月) 01:22:30.65 ID:fUsyWJMl
phpで作ったSNSやブログサービスを始める場合は 何か許可や資格が欲しいのでしょうか? 他人のメールアドレスなどの個人情報に扱うは どのようになってるのですか?
荒らすなよカスが
許可や資格なんぞ不要。 仕様ソフトによって使用許諾は異なる。それぞれのソフトのドキュメント読め。 5000件以上の個人情報を扱う場合は、個人情報保護法の刑事罰の対象になる。
>>768 分かりました許可とかはいらなかったんですね。
SNSはプロパイダーにあたるので総務大臣の許可が必要
こいつ最高にアホ
個人情報漏れは損害賠償されてもカスみたいなもんだからな どんどんやっちゃえ
どうどう
お安い御用です。
775 :
nobodyさん :2011/09/19(月) 21:51:32.08 ID:eFmgnthE
ピリオドはOS間で挙動異なるのか? そんな定数ないとおもうが
ピリオド? なんのことだ?と思ったが ./a.txt とか ../a.txt ってな感じのピリオドのことだろう だとしたらまったくの見当違いだ 答えてやりたいところだがもう少し悩んでいるがいい
エスパーすげえな
ピリオドはピリオドなのでそのまま使いなさい
そういうことではなくて、ピリオドを示す定数が知りたいのですが
>>780 ない
パスの区切り文字、ディレクトリの区切り文字、改行コードetcetc
お前の言うピリオドの「役割」はなんなんだよ
/の定数があるのは \ と / がwindowsとmacで違うからであって .はどれも同じ . の定数があったらAの定数も必要になるだろ
定義済み定数なんて知ってどうするんだろうか PHPマニアだからPHPのことは隅々まで知らないと 気がすまないとでもいうのだろうか?
そりゃ定数あるなら定数使うに越したことはない 突込み所は'a'を表す定数があるかと聞いているに等しいって所だろ
PHPの勉強をしたいのですが、パソコン内部で文法があってるかどうかチェックする方法ってないですか? レンタルスペースにいきなり乗っけて間違えたとして、万が一他の方の迷惑になるのは避けたいと思いまして・・・
PHPのインストール
788 :
nobodyさん :2011/09/20(火) 11:58:30.75 ID:Y5iB+vf4
あ、ID出してなかったですね 改めて・・・ PHPの勉強をしたいのですが、パソコン内部で文法があってるかどうかチェックする方法ってないですか? レンタルスペースで記述を間違えてしまって、万が一他の方の迷惑になるのは避けたいんです でもこの質問ってここでいいんでしょうか? 違いましたら誘導お願いします
文法が違っていればプログラムは動かせない バグは自分でテストしないと見つけられない (プログラムはプログラマが書いたとおりに動くもので、 プログラムの動きが正常な動作かバグであるかは人間が判断するものだから) そして、バグがないことを証明する方法はない(悪魔の証明)
>>788 構文チェックだけならphp -l path/to/hoge.php
無限ループだとかすさまじく重いだとかは事前のチェックは無理
791 :
nobodyさん :2011/09/20(火) 12:25:27.23 ID:Y5iB+vf4
>>789 それは実際にやるしか方法がないってことですか?
>>790 凄まじく重い・・・
ツイッターでEasyBotterを使いたくて、その前にチェックしたいのが目的です
これくらいだったら大丈夫なのでしょうか?
自分のPCで動かせよ。そしたら文法ちがっても迷惑かからない。
デバッガのことを聞いてんじゃないの?
>>788 レンタルスペースと同じ環境を作ってテストする。
仮想マシンも無料。OSもどうせ無料のLinuxとかFreeBSDでしょ?
795 :
nobodyさん :2011/09/20(火) 12:46:44.92 ID:Y5iB+vf4
お応えいただいた方々、ありがとうございます(一括でスイマセン) まずもっと基本からの勉強が必要なようですね・・・ 正直生活は今キツイですが、雑誌でも買って基本から勉強するとします
797 :
nobodyさん :2011/09/20(火) 12:55:21.09 ID:Y5iB+vf4
>>796 ありがとうございます!
これで迷惑かけずに勉強できそうです
構文ミスなど致命的なエラー(fatal error)の場合はプログラムの実行が中止される エラーだけどプログラムの実行はつづけられる場合はerror_reporting()関数の設定で warning やnoticeというエラー文が表示される これはローカルのテスト中は表示させておくのがいいが、 実際の運用ではエラーメッセージを一切表示させないようにする (セキュリティ上問題がある内容が外部に表示されてしまうのを防ぐため) その場合のエラー報告はサーバのログで確認する 無限ループは、PHPの設定ファイルでプログラムの実行時間が限定されているため、 それをオーバーするとプログラムの実行が止まるが、 それに頼らず、無限ループをしないようにプログラム内できちんとチェックしておく
無限ループは美しい!
10 goto 10 とか 10 run を思い出した
10 CLS 20 DIM A$(10) 30 FOR B$ = 1 TO 10 40 PRINT B$, 50 NEXT
802 :
nobodyさん :2011/09/20(火) 19:39:30.21 ID:lfjrrv56
phpで <?php echo 'Hello, world!'; exit; ?> とかやるときexit;とか入れてなかったんですが 入れたほうがいいんでしょうか? 最後に入れてないと何か問題発生したりするんでしょうか?
>>802 入れたらそこでスクリプトが終了する。
入れなかったら最後まで実行(解釈)される。
好きにしろ。
例えばrequireで読み込まれるスクリプトの最後にexitが入ってたらそこで終了しちゃう。
あるいはデバッグのため途中にわざとexitを入れてテストすることもある。
処理の最後に入れる必要があるかということならねーな。
805 :
nobodyさん :2011/09/20(火) 19:51:11.83 ID:lfjrrv56
んなるほど、ありがとうございます
ただ、exitを入れない場合、?>の後に改行とかスペースが入ってると それを出力しちゃうから、それを避けるために敢えてexitを入れることはある。
807 :
nobodyさん :2011/09/20(火) 20:02:57.03 ID:lfjrrv56
あんま気にしなくていいって事ですね メモリとかの問題で最後にいれないとヤバイのかなと不安になってました、あざっす
808 :
nobodyさん :2011/09/20(火) 20:21:30.09 ID:+cR/U5eK
Perlの場合は他のWebサイトからコンテンツ(特にHTML)内容を取得して保存とか出来るようですけど、PHPの場合ってそういうの出来ますか? コマンドモードがあるにせよ、PHPは基本はブラウザからの挙動が主な反面、Perlはスクリプトからそういうの作れると思うのですが、PHPではどうなのでしょうか?
ネットにつなげないなら、ウェブ言語と言えない。ただのスクリプト言語だろ。 ネットにつながるからスクリプト言語から昇格するんだ。
ウェブ言語とか、言葉を勝手に作るなボケ!
Webプログラミングでは、サーバ側で動作するプログラムとクライアント側で動作するプログラムの両方を開発しなければならない。 ]それぞれの側のプログラムで利用される技術は異なり、さらにAjaxを採用するプログラムであれば、 サーバ側・クライアント側のプログラムが複雑に連携して機能を実現するので、それぞれの側のプログラムを別々に開発することが難しく、 プログラマには両方の側で用いられる技術を深く習得することが求められる。 サーバ側でのプログラミングは、ウェブサーバ上で動くプログラミング言語を用いて行われる。 このプログラミングは「サーバ・サイド・プログラミング」とも呼ばれる。 例としてサーバサイトにつかう言語と環境としてCGI + PerlやPHP、Ruby、 Java Servlet + JSP + Enterprise JavaBeans + Spring Framework + Apache Struts(Java EE)、.NET(ASP.NET(C#,VB.NET))などが挙げられる。 Webプログラミング - Wikipedia
813 :
808 :2011/09/20(火) 20:58:23.64 ID:???
ありがとうございます ではPHPとPerlの違いはWebのプログラムでは差異はないということですね Linuxでのインストールとかで使われるスクリプトではPerlに分があるようですが
お安い御用です。
815 :
1/2 :2011/09/20(火) 23:59:28.45 ID:LY2lMq1E
やってみた
少し前に話題に上がった、echo と print どっちが早いのか
シングルクオーテーションと、ダブルクオーテーションでは、どっちが早いのか
ソース及び結果をグラフ化した画像:
ttp://www.dotup.org/uploda/www.dotup.org2047559.zip やったこと:
コマンドラインより print_and_echo.php を実行
結果:
echo でシングルクオーテーションを使って表示したのが1番早い。
但し、その差はとても小さい。
(グラフ print_and_echo.jpg)
816 :
2/2 :2011/09/21(水) 00:00:17.79 ID:???
実行環境: Pentium4 2.8GHz HT対応(古くてスマンw) debian squeeze を実機にインストールし、php (version 5.3.3-7+squeeze3)をインストール デスクトップ環境はインストールせずに、phpスクリプトをコマンドラインより実行 ソース内容: 以下の4つのパターンを使用して、アルファベット a-z を 1万回表示 1. echoを使って表示、アルファベットをシングルクオーテーションで囲む 2. echo ダブルクオーテーション 3. printを使って表示、アルファベットをシングルクオーテーションで囲む 4. print ダブルクオーテーション 実行する順序によって、実行速度が変わる可能性を考慮し、上記パターンをランダムで実行する。 さらに繰り返し実行する事により、実行速度が変化するのかを確かめる為、上記を100回繰り返し実行する。 グラフを見ると、実行速度が跳ね上がる(遅くなる)箇所が有る。何故この様な事が起こるのか?
何を今更って感じだわ
>>815-816 その実験結果よりもその実験に費やした時間が無駄だわw
俺の時間じゃないからいいけど
何を今更って感じだわ
>>740 P131の本文1〜2行目(2刷りにて修正)
誤:Fig2 のように横軸を「列」、縦軸を「行」などと呼びますが、
正:Fig2 のように横軸を「行」、縦軸を「列」などと呼びますが、
これって元がどうなんだろ。
図に記載されてる横軸と縦軸がすでに逆ってことだろうか
質問 コマンドラインで実行中スクロールバーをマウスで動かしてるとプログラムが停止するけど おかしくないですか?
>>813 インストールに使われるスクリプトならpythonに分があるように思わないか
>>813 ずっとperl使ってたが、PHPすげー便利じゃん。
これからはPHPを使う。
825 :
nobodyさん :2011/09/21(水) 11:00:29.26 ID:8+iCvqLi
ファイルの変数$_FILESについてですが、いろんなサイトを見ていたら $_FILES[パラメータ名]['name'] だったり $_FILES[パラメータ名][name] だったりとまちまちです どっちを使ったら良いんでしょうか? というか、プロパティ?は''で囲むべきですよね?
囲むべき
おっと被ったスマン
被ったままは不潔です
毎日煮沸消毒してるから大丈夫。
一回煮沸すればもう剥けた状態で固定されそうだがw
古典の鼻を茹でる話を思い出した
834 :
nobodyさん :2011/09/21(水) 12:58:59.95 ID:8+iCvqLi
お安い御用です。
芥川って古典でならうっけ?
お絵かきサイトから画像をとって表示しようと思った場合どうすればいいんですか? HTML文取ってきて正規表現でURLの部分とるとかですか? あとログインが必要なサイトの場合はどうすればいいんでしょうか
phpサーバー機能ってなんだ? 素直にサーバーいれて動作チェックすればいいじゃん。
エスパーさん、こっちこっち
841 :
838 :2011/09/21(水) 18:23:40.45 ID:???
ごめんなさい正式名称を調べてませんでした
http://php.net/manual/ja/features.commandline.webserver.php のビルトインウェブサーバー です
php -S localhost:80 -t "C:\_MyProgram\php\docRoot"
で立ち上げています。このマニュアルには
>>URI リクエストにファイルが含まれない場合は、指定したディレクトリにある index.php あるいは index.html を返します。どちらも存在しない場合はレスポンスコード 404 を返します。
とあるのに、index.phpしか存在しないディレクトリに
http://localhost/ でアクセスした時、コンソールには
PHP 5.4.0beta1 Development Server started at Wed Sep 21 18:19:36 2011
Listening on localhost:80
Document root is C:\_MyProgram\php\docRoot
Press Ctrl-C to quit.
[Wed Sep 21 18:19:38 2011] ::1:54834 [200]: /index.php
[Wed Sep 21 18:19:38 2011] ::1:54835 [200]: /index.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
[Wed Sep 21 18:19:38 2011] ::1:54836 [200]: /index.php?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
[Wed Sep 21 18:19:39 2011] ::1:54838 [404]: /favicon.ico - No such file or directory
[Wed Sep 21 18:19:40 2011] ::1:54843 [404]: / - No such file or directory
[Wed Sep 21 18:19:40 2011] ::1:54844 [404]: /favicon.ico - No such file or directory
と、表示され
Not Found
The requested resource / was not found on this server.
とブラウザに表示されます
842 :
838 :2011/09/21(水) 18:25:08.27 ID:???
>>841 のコンソールに表示されるテキストは
PHP 5.4.0beta1 Development Server started at Wed Sep 21 18:24:14 2011
Listening on localhost:80
Document root is C:\_MyProgram\php\docRoot
Press Ctrl-C to quit.
[Wed Sep 21 18:24:15 2011] ::1:55038 [404]: / - No such file or directory
[Wed Sep 21 18:24:15 2011] ::1:55039 [404]: /favicon.ico - No such file or directory
の間違いでした。
>>841 は
http://localhost/index.phpを指定した時の物でした
843 :
nobodyさん :2011/09/21(水) 18:51:25.69 ID:WzjWBGg6
画像アップロード時の画像ファイル名が半角英数字や記号以外に日本語などを使っているときにエラーメッセージを出したいです。 正規表現で弾けばいいのかなと思ったんですが、こういうときってどういう正規表現を書けばいいんですか? 日本語正規表現で検索してもこれだっていうのがなかったのでどなたか教えてください。 ちなみに文字コードはUTF-8でデータベースには文字化けしないでファイル名が入るんですが 日本語のファイル名だと画像ディレクトリに送ったファイルが文字化けしてしてしまいます。 また正規表現で弾く以外に解決法があれば教えて下さい。 環境はPHP 5 mysql windowsXPです。 XAMMPでローカルでやってます。
844 :
nobodyさん :2011/09/21(水) 19:29:03.72 ID:X6W74pr3
いつもお世話になっております
見よう見まねでページャを作ってみました。以下ソース
for($n = 1; $n <= $pages; $n++ ) {
if($n == $page){
$link .= '<li><div class=""><div class="">'.$n.'</div></div></li>';
} else {
$link .= '<li><div class=""><a href="'.$script.'?page='. $n .'">'.$n.'</a></div></li>';
}
このままだと50ページあったら1〜50までダーッと表示されてしまいます。↓
123456789101112131415161171819202122232425...
これを、任意の数までしか表示されないようにするにはどうすればいいでしょうか。こんな感じです↓
12345 5ページ目まで行くと 34567
このように、ある程度まで行くと中心に現在のページがくるようにもしたいです。つまるところのxvideosのページャです
xvideos →
http://www.xvideos.com/ よろしくお願いします
>>836 芥川の元ネタな
芥川のリメイクより古文のオリジナルを習う方が多いんじゃないかなぁ
#スレチすまそ
>>844 $first_page = $pages - ($pages - 1) % 50;
$last_page = $first_page + 49;
for($n = $first_page; $n <= $last_pages; $n++ ) {
・・・
}
>>837 DOM使うと楽
文法違反のサイトなら読み込む時だけエラー抑制
ログインは普通にログインして取ればいい
>>843 半角でもURLに使えん文字はあるよ。 [^URLに使える文字] で弾けば?
もしくは文字コード揃えてパーセントエンコーディングするか
848 :
nobodyさん :2011/09/21(水) 20:46:54.04 ID:WzjWBGg6
>>847 ありがとうございます!
("/[^-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]/")
とりあえず上のように書いたら、日本語ファイル名は弾かれて、普通の半角英数字のファイル名はアップロードできるようになりました。
>>848 半角ピリオドや括弧がエスケープされてないぞ
850 :
nobodyさん :2011/09/21(水) 22:06:38.59 ID:X6W74pr3
>>864 うーん...できないですね
とりあえず試行錯誤して頑張ってみます
もし他の方法があったら教えて下さい
<?php echo $a; ?> と <?php echo $a ?> ってどっちがいいですか?
>>848 それ予約文字から何でもかんでも入ってるじゃん
("/[^-._~a-zA-Z0-9]/")
853 :
nobodyさん :2011/09/22(木) 00:26:27.94 ID:3wgxkSpf
【OS名】Windows7 【PHPのバージョン】5.35 【連携ソフトウェア】XAMMP 【質問内容】 PHPでユーザログインのシステムを作成中です。 重複したユーザ名が登録された時、はじく仕組みを作りたいのですが、 mysql_query()で取得した結果があるかないかを判定する関数はあるのでしょうか? mysql_result()などを使うと、存在しない場合はエラーが出てしまいます(存在しない行を参照するため) 何かいい方法、適当な関数があればご教授願います。よろしくお願いします。
>>853 mysqlのクエリでcount()を使う
>mysql_result()などを使うと、存在しない場合はエラーが出てしまいます(存在しない行を参照するため) fetchでぶんぶん回すのが一般的じゃね? イテレーターのインターフェースだとカウントなんて基本考えない。 (postgresだが、石井さんの本にも確かカウント数えるのにぶんぶん回して$i++とかやってるのあったよーな。) ほんとにレコード数が欲しいだけなら、SQLのcount()を使う。 (と、いう事を覚えておけば、ORMとか見ると合点いくところあるんじゃないかねぇ?)
856 :
nobodyさん :2011/09/22(木) 00:49:51.04 ID:4MH/JO69
空要素の削除って検索すると2つあったのですが $piyo_array = array_diff( $hoge_array, array( "" ) ); $out = array_merge(array_diff($in, array(""))); どちらがいいのでしょうか?
857 :
853 :2011/09/22(木) 00:52:35.29 ID:3wgxkSpf
>>854 >>855 回答有り難うございました。count試してみます。
fetchを使うと行数が長くなるのでスマートな書き方があるのかな?
と思って質問させて頂きました。
>>855 カウントするのがメインでぐるぐる回してたのなら石井さんがトチ狂ったんだろうと思う
でも石井さんはトチ狂わないので
>>855 が何か勘違いしている
>>858 一致するレコードがあるかどうかを総当たりする以外に方法はないと思うので、ぐるぐる回しはやむを得ないのでは?
>>859 それは石井さんがやってたやつの話?
今回のであれば、回す必要などなかろ
862 :
nobodyさん :2011/09/22(木) 12:41:44.45 ID:4MH/JO69
お安い御用です。
864 :
nobodyさん :2011/09/22(木) 14:57:56.86 ID:wgnnkyS+
教えてください。 PHPで絵文字対応の日記サイトみたいなのを作っています。 携帯からも投稿出来るようにしており、携帯のウェブフォームから入力するときに、絵文字は[[hare]]みたいな感じに変換して PC上ではそれに対応した画像を表示するようにしています。 携帯のメールでも日記が書けるように対応したのですが、絵文字関連で困っています。 メールを送ったら日記が登録出来る部分は完成したのですが、絵文字を入れてしまうと絵文字の部分が「(太い)=」(ゲタというのかな)になってしまいます。 携帯Webフォームと携帯メールでは絵文字の送出コードが違うのでしょうか? ちなみにWebサイトはUTF-8で作っており、絵文字コードもUTF-8を使っています。
>>864 回答できなくてもうしわけないんだけれど
> 携帯Webフォームと携帯メールでは絵文字の送出コードが違うのでしょうか?
これに関しては、そこで保存されてるデータを見れば分かるんじゃないですか
867 :
nobodyさん :2011/09/22(木) 17:17:56.46 ID:GYZEFe+R
if(strstr($_SERVER['HTTP_USER_AGENT'],"iPhone|Android|blackberry")){ こういう風に複数個指定したいのですが↑これではエラーになります。 どういう風に記述したら良いんでしょうか?
if(strstr($_SERVER['HTTP_USER_AGENT'],"iPhone") || strstr($_SERVER['HTTP_USER_AGENT'],"Android") || strstr($_SERVER['HTTP_USER_AGENT'],"blackberry")){
869 :
nobodyさん :2011/09/22(木) 18:00:11.60 ID:wgnnkyS+
>864です。 ありがとうございます。 あれから色々調べてみましたが、どうもドコモとSBではPC宛のメールで絵文字が使われていた場合、絵文字を「=」に変換してしまうそうで、 完全に絵文字に対応させる事は出来なさそうですので、あきらめました・・・。 絵文字は奥が深いなぁ・・・。
ガラパゴスのクソ仕様ね
871 :
nobodyさん :2011/09/22(木) 18:38:32.54 ID:GYZEFe+R
>>868 やはりそれしかだめですか・・・
ありがとうございました!
ケータイの絵文字って日本だけの創作?
>>871 ・正規表現を使う
・iPhone Android blackberryを配列にいれて、ループでまわす
代替手段としてこういうのがありはするけれど、UA判別ならベタでいいんじゃないかなーと
874 :
nobodyさん :2011/09/22(木) 22:38:37.73 ID:oifAShVU
基本的な文法を理解した程度です。関数とか覚えるために要領を掴むために 100行以内ぐらいのサンプルスクリプトとか乗ってるお勧めのサイトおしえてください
お安い御用です。
>>858 トチ狂っててスマンカッタ。
カウントするのがメインじゃない事は覚えてたんだが、$i++が印象に残っていたもんでついつい書いちまっただけなんだ。
よくよく思い出すと、データベースのoffset対応が怪しかった時代に、ページネートするソースの一部だった気がする。
オレがPostgresいじりだした時にはすでにoffset対応してたから、石井さんのソースだったじゃなかったかもしれん。
877 :
nobodyさん :2011/09/23(金) 00:44:14.87 ID:Qj3Cu7pD
質問です $str=”60*60*24”; のように、文字列型になってしまったものを、再度、60*60*24 のように数式に変換することは可能でしょうか 具体的には、Queryで渡って来た文字列を数式として実行し、60*60*24 の解を返したいんですが
878 :
nobodyさん :2011/09/23(金) 00:44:24.57 ID:y6S3nqex
大学で借りてきたphpの本が返す期限を過ぎてしまいました。 鬼のように怖い図書室のおばちゃんにどんな言い訳したらいいですか?
iM@Sカードゲームって どういうバトルが繰り広げられるんだ?
スマン誤爆したw
881 :
nobodyさん :2011/09/23(金) 02:14:10.27 ID:/HZvV+Un
クライアント側(GoogleChrome)で function doFire(){ httpoj = new XMLHttpRequest(); httpoj.open("POST","do.php",true); httpoj.setRequestHeader("content-type","application/x-www-form-urlencoded"); httpoj.onreadystatechange = function(){ var res="readyState="+httpoj.readyState+" / response="+httpoj.response; console.log(res); } httpoj.send("key=hoge&file=DESKTOPBASENAME"); } サーバーサイドで header("Content-Type:text/html;charset=UTF-8"); header("Cache-Control: no-cache, must-revalidate"); if(!$_POST["key"]){print("NG");}else{print("OK");} print("/".date(DATE_ISO8601)); exit(); と、あります。 クライアント側でdoFire()を十分な時間を開けて(httpoj.readyStateが4になって受信完了したのを確認して)何度か実行しているのですが OKとNGが全く規則性なく、酷い時は交互に返って来るのですがどうすれば確実に$_POSTを渡せるのでしょうか ググると"application/x-www-form-urlencoded"のヘッダーを付けるんだよというのが沢山引っかかるのですが、付けても確実に値を渡すことは出来ませんでした
>>877 for Linux
<?php
//php で四則演算を解読させるのが面倒臭いので
//計算自体はシェルコマンド(expr)にやらせる。
//但し、exprが解読出来るように整形する必要がある
//
//注:exprは、整数しか処理できない。
$str = "60*60*25";
$pattern = array('#\+#', '#-#', '#\*#', '#/#');
$replace = array(' + ', ' - ', ' \* ', ' / ');
$formatted = preg_replace($pattern, $replace, $str);
$result = exec ('expr ' . $formatted);
echo $result;
?>
Windows の場合はシラネ
execもevalも微妙 構文解析でやるのが妥当かと
なんでevalが微妙なの? 見たところ、シェルにやらせるよりはスマートだと思ったけど。
そのまんまevalだとセキュリティ上気持ちよくないからじゃね? (評価させる変数が外部から来ている場合、なんやらinjectionとか発生するってーこと) まぁ、そんなの関係なく「構文解析はロマンだぜ!」という意図なら、オレも同意だがw
PHPを最近勉強し始めた初心者です。 ヘキサダンプの文字列をバイナリに変換して、ファイルに保存したいのですが、ヘキサダンプをバイナリに変換する方法 がわかりません。ご存知の方がいましたら教えていただけないでしょうかm(_ _)m
基礎が無いからできないんだよ
889 :
887 :2011/09/23(金) 17:37:21.67 ID:HYX5LAkU
自己解決しました
お安い御用です。
phpでmysqlに接続するとき mysql_connect('localhost','root','パスワード'); にすると思うけど、パスワード設定していないときはどう書けばいいのでしょうか? ちなみにWindowsにXammpインスコして勉強中です。 パスワード設定してないので今は 対象のコンピュータによって拒否されたため、接続できませんでした。と表示されてます
895 :
nobodyさん :2011/09/23(金) 20:17:01.69 ID:h0s7sYZM
すんませんsageにチェックがはいったままでした
試してないから間違えてるかもしれんけど、ふつうに書けばいけると思ったよ ただ、mysql側の設定でパスワード無しの場合にはじかれて往生したような気がする localの場合にはパスワード無しでいい、というような設定がたぶんできる
試間違書思 側設定無場合往生気 場合無設定
mysql_connect('localhost','root',''); でいけると思うが
思
901 :
nobodyさん :2011/09/24(土) 02:07:28.88 ID:3Mrta0IS
curlでヘッダーとボディを分けたいのですが if (preg_match("/^(.*)\r\n\r\n/s", $response_body, $header)) { $response_header = $header[0]; $response_body = preg_replace("/^.*\r\n\r\n/s", '', $response_body); } これだとLocationで飛ばされた場合ヘッダーが残ってしまいます。 どう分けるべきでしょうか
902 :
nobodyさん :2011/09/24(土) 02:26:34.74 ID:MalQcT1d
? みたいなコードをデコードして全角スペースに変換する関数などは PHPにありますか?
903 :
nobodyさん :2011/09/24(土) 02:27:18.04 ID:MalQcT1d
失礼しました。 &#12288; こんなコードです。
header('Content-Type: text/html; charset=UTF-8'); echo 'あ' . mb_convert_encoding(' ', 'UTF-8', 'HTML-ENTITIES') . 'ん';
905 :
894 :2011/09/24(土) 07:56:58.91 ID:b87ynDOu
>>896 、899
ありがとうございます、できました。
今はSPLって標準で入っているものと見なしていいんかな。 皆さんのご意見を聞かせてくだせい。
PHP5が標準になってるとみなしていいか、と聞くわけにはいかなかった理由が知りたい
今はよくわからないのですが、5が出た頃はコンパイルオプションでわざわざSPLを外している人が自分の周りにはよく居たので。
どんな集団だよ
集団ではなく、自分の周りによく居ました。
912 :
877 :2011/09/24(土) 22:57:34.10 ID:k/GpB/4m
>>882 >>883 ありがとうございます。参考になりました。
とりあえず以下のようなコードでやりたいことは実現できることが分かりました。
(スマートな方法では無いんでしょうけど///)
何かもっといい方法がありましたらアドバイスお待ちしてます。
$str="60*60*24";
$func="function test(){return ". $str .";}";
eval($func);
echo (test());
>>912 eval使うなら外部から任意のコードを実行されないようにセキュリティに気をつけて。
事前に$strを調べて数式に利用される文字以外を許容しないようにするとか。
$str='60*60*24'; echo eval('return ' . $str . ';');
>>909 それを踏まえたうえで、入っているものとみなしていいかという質問をしたのであれば、
入っているとみなしてはいけないと答えるしかないが。
クライアントOSがWindows7の場合、IEは入っているとみなしていいか?という質問に置き換えられると思う。
わかりました。つまり、Firefoxは入っているとみなしていいわけですね。
>>914 実際のコードで固定値にしてるとは限らないだろ。
>>918 固定値にしていないとも限らんこともないだろ。
922 :
nobodyさん :2011/09/25(日) 17:47:45.82 ID:lSLAMoo3
phpでのmemcached(ver.1.4.5)の使い方について知りたいんですが $memcache = new Memcache; $memcache->connect('localhost', 11211) or die ("接続できませんでした"); $memcache->set('key', date('Y-m-d h:m:s'), false, 1000) or die ("データをサーバに保存できませんでした"); $rs = $memcache->get('key'); //検証 var_dump($rs); という形で動作チェックしてるんですが、$rsの値がブラウザリロードする度に変わります 1000秒間同じ値が維持されるはずですよね? どこかに間違いやチェックすべき点があれば教えてください よろしくお願いします
よろしくお願いされました
毎回セットしてるからじゃね? 2回目は「$memcache->set('key', date('Y-m-d h:m:s'), false, 1000)」の部分を削って見てみれ memcacheは知らんが、普通この種のAPIには、値がセットされているか?を調べるメソッドがあるはずだからそれ使えばよろし
925 :
nobodyさん :2011/09/25(日) 18:25:24.62 ID:LQyKU57v
checkdateで正しい日付なのですがfalseになります。 これって何が原因でしょうか?
setでfalseになる件は分からないけど、ほしい動作はaddじゃないのかな。 それと、flagsにfalseを指定している由来はどこから
928 :
926 :2011/09/25(日) 20:06:51.00 ID:???
929 :
926 :2011/09/25(日) 20:08:29.75 ID:???
…orz
>>922 setでfalseに云々はスルーしてください
>>926 よくわからないけど、引数の順番を間違えたとか、全角の数字文字列を渡したとか。
930 :
nobodyさん :2011/09/25(日) 20:53:54.15 ID:UUy9A1AC
>>913 おっしゃる通りです。で、対策を考えたのですが、「文字列に$記号、括弧が出たら削除する」というのでどうでしょうか?
>>914 参考になります。使わせていただきます
>>930 いやいや、linuxコマンドとか実行されたらどうすんのよ。
数字と数学記号以外が含まれてたら無効にしないとやばいでしょ。
数式だけだったら括弧が含まれてても大丈夫だろ。
shellに受け渡す変数用のescapeファンクションとかなかったっけ? マヌアルのevalとかsystemとか書いてるセクション一通り読んでおくといいよ
linuxコマンドだけじゃなく、PHPの任意のコードが実行されてもマズいでしょ
というかその程度の事を態々PHPでやらないとだめな事なのか?と思ってしまう
935 :
nobodyさん :2011/09/25(日) 21:19:33.92 ID:UUy9A1AC
了解です。以下のコードではどうでしょう $str="60*60*24 phpinfo()"; $str=mb_ereg_replace("[^0-9*+-/%]","",$str); echo eval("return $str ;");// 86400 が返る
いいんじゃね?eregよりpregを使うべきだがこの際どっちでもいいだろ
括弧を使った数式は計算しないの? 数学関数が使われていたら?
938 :
nobodyさん :2011/09/25(日) 23:17:42.81 ID:UUy9A1AC
>>936 preg とmb_eregの違いをよく理解してないんですが、より処理の軽い方を使いたいと思います。
>>937 今回は、時間を秒数単位で取得するのに、可読性のいい書式にしたかったので・・・
60*60*24*7 =7日 みたいな感じ
その意味では剰余のケースも要らないんですけど、
今後、他の用途に使うことがあれば考慮しないと駄目ですね。
PHPを使った電卓アプリってことでいいんじゃない。 でもこういうアプリはjavascriptで出来たほうが軽いと思うけどね。
mb_eregが出てくるって事はマルチバイト文字列の可能性があるってことで、 その上でpregつかうならu必須かな
まぁ数字と四則演算記号以外を除去するだけなら気にしなくていいんじゃね
【PHPのバージョン】5.3.6 【連携ソフトウエア】なし PHPのヒアドキュメントを、PHP アプリケーションが対応しているのに一回もまともに使えた試しが無いのですが、どうすれば良いでしょうか? 例えば。 <?php $hDoc = <<< EOF It is <strong>very important</strong> to study. EOF; echo(hDoc); ?> なんてスクリプトを書いてサーバーにアップロード。 そしてこれを実行すると全く無反応(ヒアドキュメント自体は外部スクリプトに書いてあって、それをrequire()しているため)です。 何故でしょうか?
>ヒアドキュメント自体は外部スクリプトに書いてあって、それをrequire()しているため ここの部分どう書いてるかちゃんと書いてくれないかな あとID出さないとうるさい人多いよ
無反応であることの理由を括弧書きしているように見えるんだけど、何かの間違いだよね。 echo($hDoc); では?
エラー表示を有効にするか、せめてlintしよう
947 :
nobodyさん :2011/09/26(月) 08:48:28.85 ID:gM/XS757
>>942 <<<□EOF
↓
<<<EOF
echo(hDoc);
↓
echo($hDoc);
949 :
nobodyさん :2011/09/26(月) 10:49:20.78 ID:4HUDHxKv
【OS名】Ubuntu 11.04 【PHPのバージョン】5.2 【連携ソフトウェア】なし 【質問内容】 session_start() せずにセッションの有無を判定する方法はありますか?
951 :
949 :2011/09/26(月) 11:21:57.57 ID:4HUDHxKv
>>948 <<<のあとと終端IDに余計なものが入っていたのが原因でした。
ありがとうございました。
>>948 >>952 <<<□EOF
うちの環境では<<<の後に半角スペースが入っててもエラーにならないよ。
>>942 のソースの$hDocだけ直したらちゃんと表示されたけどね。
954 :
nobodyさん :2011/09/26(月) 18:18:18.48 ID:aEjSFzjc
PHPのRPMを作りたいのですが specファイルが付属しておらず、 そのテンプレートらしきphp5.spec.inが付属しています。 これを手作業で書き換えるのでしょうか? それともこれを入力ファイルとして処理するツールみたいなものがあるのでしょうか?
>>954 何にspecファイルが付属してなかったん
specファイルがほしいだけならconfigureすればできるけど、そっから先がしんどいと思う makerpmとかついてるけど。 以前RPM作ったときは素直にSRPMから作ったよ
configureでspecファイルまで作られるのですか? makefileだけでなく? たしかにSRPMを参考にするのが良さそうですね むしろ最初からそうしとけってかんじですね
>>958 なんで聞く前にconfigureしなかったの
>>953 >>948 >>952 <<<□EOF
うちの環境では<<<の後に半角スペースが入っててもエラーにならないよ。
>>942 のソースの$hDocだけ直したらちゃんと表示されたけどね。
質問者の環境が問題なのであって、あんたの環境は関係ない。
と余計なレスしないでいただけませんでしょうかね。
ウザいです。
>>960 どう見てもあんたの書き込みの方がウザいよ
わざわざ
>>953 の全文を引用してゴミを増やす必要ないと思うけど
わざとか?
$抜けなんかは誤植の可能性もあるからどうとも言えんわな そして実際半角スペースが入ってても問題はないし まぁ半角スペース以外の見えない文字が入ってた可能性は高いと思うけど というかそもそもウザイという為だけのレスの方が見ててうざいわw
>>959 テンプレートになるphp5.spec.inに既に使われていない古いタグが使われているなど
あまり管理されている形跡がなかったので・・。
たしかに生成されていますが
php5.spec.inを単純にコピーしただけのものでした。
もともとはphp5.spec.inを元にconfigureオプションを組み込んだspecファイルを作るつもりだったのかな?
964 :
nobodyさん :2011/09/27(火) 20:28:33.73 ID:qk0Dp7GE
Linux上でコマンドラインで使うPHPについて教えてください MySQLのサードパーティ製のソフトを導入時にPerlで書かれたスクリプトは良く見ますが、PHPは見ません このような利用法での何かPHPよりもPerl方が有利な点があるのかと思ったのですが シェルとしての(またはbash等と併用する場合での)コマンドラインでPHPを使用する際の注意点、問題点、限界など教えていただけないでしょうか?
>>964 > PHPは見ません
それは知らんかった。
昔はperl使いだったが今はPHPだね。
むちゃ便利。
>>964 PHPをデフォルトでインストールしてる環境がPerlのそれより少ないってだけだ
Perlは前世紀から使われてたがPHPは今世紀入ってからだからな
自分の鯖機にPHPが入ってるなら好きにすればええ
シェルとして使うにしても便利な関数はたいてい入ってるし困ることもないだろう
>>966 確かに
Linux入れてもPerlはまずデフォルトで入ってますからね
昔はPersonal Home Pageの略だったから、まぁ、Webしか考えてなかった。 今はWeb以外の使い方も想定されてるし、使えるようになってる。
>>966 PHPだって前世紀からある。お前がまだ生まれてなかっただけ。
↓
Perlは昭和から使われてたがPHPは平成に入ってからだからな
だれもあるないの話はしてないわけだが わけわからん駄レスはつけるな
昭和平成間で、生まれてる生まれてないの話をするのがこんなスレにまで どうしよう月日がどんどん
>>972 >昭和平成間で、生まれてる生まれてないの話をするのがこんなスレにまで
>どうしよう月日がどんどん
何言ってるのか全然わからん。
頭大丈夫?
>>971 皆あるないの話をしてるんだよ
お前こそクソレスするな
お前ら全員アホ。 PHPスレでつまんない議論してる暇があったらAjaxでも勉強しろ。
979 :
nobodyさん :2011/09/28(水) 11:55:30.63 ID:gjW5zO1z
$tab = (isset($_SESSION['tab'])) ? $_SESSION['tab'] : ''; この文の真ん中の方にある?と後ろの方の : ' の意味てなんでしょうか? ググろうにも初心者で文法用語がわからず苦戦しています。 誰かご教授お願いします。
980 :
nobodyさん :2011/09/28(水) 11:57:26.23 ID:vuB7HA+I
質問です、よろしくお願いします。 if(preg_match("/abc/", $sample)) { 上のpreg_matchの条件を「 /abc/ 」「 /def/ 」のOR条件に変更する方法を教えて頂けませんか? ↓の方法ではうまくいきませんでした if(preg_match("/abc/|/def/", $sample)) {
982 :
980 :2011/09/28(水) 12:24:44.28 ID:vuB7HA+I
>>981 無事、解決できました。
ありがとうございます。
983 :
979 :2011/09/28(水) 12:46:35.99 ID:gjW5zO1z
>>981 ありがとうございます。おかげさまで解決できました。
お安い御用です。
985 :
nobodyさん :2011/09/28(水) 20:58:23.40 ID:gjW5zO1z
すみません。DB板でSQL質問スレが落ちていたのでここで質問させてください。 mysqlver5.1.6で update tbTest set flg=1 ORDER BY seq LIMIT 0 ,10 というのを実行しようとしたらmysqlではupdate文のoffsetができない?らしくエラーになりました。 これを実行(seqが特定のものから10個をフラグ建てたい) するにはどうしたらいいでしょうか?
意図しているところとあってるかわからんけど、 UPDATE tbTest SET flg=1 WHERE id IN (SELECT id FROM tbTest ORDER BY seq LIMIT 0 ,10)
990 :
nobodyさん :2011/09/29(木) 09:59:28.93 ID:RN8zU3vp
>>986 お返事ありがとうございます。
MYSQLだとサブクエリの中でLIMITを使えないらしくエラーに
なりました。
誘導していただいたスレへ行って質問してみたいと思います。
お安い御用です。
どういたしまし・・・た
<?php $cdate = date("Y/m/d D H:i:s", time()+60*60*9); $hpadrs = $_SERVER["REQUEST_URI"]; $refer = $_SERVER["HTTP_REFERER"]; $agent = $_SERVER["HTTP_USER_AGENT"]; $ipadrs = $_SERVER["REMOTE_ADDR"]; $host = @gethostbyaddr($ipadrs); if($host == ''){ $host=$ipadrs; } $filename = Date("Ymd",time()+60*60*9); $filnam = "hogehoge.com/".$filename.".txt"; $fp = fopen($filnam,"a"); fputs($fp,"$cdate\t$refer\t$hpadrs\t$agent\t$host\t$ipadrs\n"); fclose($fp); ?> ログを集計すると特定のサイトからのリファラが10分の1以下しか取得できていないようなのですが どのような原因が考えられますでしょうか?
995 :
994 :2011/09/30(金) 12:59:31.26 ID:???
↑失礼!コピペしたら上が切れちゃった 配布されているアクセス解析が気にくわないので上のスクリプトを自分のWPブログのヘッダーに 埋め込んだんですがgoogleアナルや他の解析スクリプトと比較するとかなり結果に開きがあり 理由がわからないため書きこませて頂きました
10分の9以上がPHPじゃないものへのアクセスなのでは favicon.icoとか
回答有難う御座います。 どちらもphpのページに対するアクセスなんです。
phpの出力結果をキャッシュするような何かを入れているとか。たとえばAPC
999 :
994 :2011/09/30(金) 16:20:26.30 ID:???
あ! wp super casheいれてます。 ありがとうございます。次スレ行きます
じゃあうめる
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。