1 名前:デフォルトの名無しさん (ワッチョイ 1342-Xqtn) mailto:sage [2016/11/09(水) 11:03:26.15 ID:eAjeihOa0.net] PHPに関する下らない質問用避難スレです。 まず読むこと【PHPマニュアル】 www.php.net/manual/ja/ 前スレ 【PHP】下らねぇ質問はここに書き込みやがれ 5(実質6) echo.2ch.net/test/read.cgi/tech/1462971286/ 次スレは>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。 次スレを立てる時は本文の1行目に以下を追加して下さい !extend:on:vvvvv:1000:512 VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
596 名前:デフォルトの名無しさん (ワッチョイ 2b42-yz8t) mailto:sage [2017/01/09(月) 23:03:00.28 ID:yvmBF9eo0.net] 画像が大量にあってアクセスが多いとか、いろいろ考慮して お金がたっぷりあってサーバーに余裕がある時は考慮しても良いかも 昔ファイルシステムがボトルネックになったことあるからね。 もちろん管理しやすさ重視だったけど
597 名前:デフォルトの名無しさん (ワッチョイ 6ba0-4j6q) mailto:sage [2017/01/10(火) 00:15:48.11 ID:Zz1rnY0L0.net] 正規表現を使って preg_match_all('/<a.*href\s*=\"?([\-_\.\!\~\*\'\(\)a-z0-9\;\/\?\:@&=\+\$\,\%\#]+(jpg|jpeg|gif|png|bmp))/i', file_get_contents($file), $img_path_list); こんな感じに作って画像リンクを抽出するようにしたんだけど たまに改行がなく一文にソースコードがずらーと書いてあるやつがあってうまく取り出せない 何か良い方法はないでしょうか? こうしたい <a href="img01.jpg" target="_blank">img01</a> <a href="img02.jpg" target="_blank">img02</a> ↓ Array ( [0] => img01.jpg [1] => img02.jpg )
598 名前:デフォルトの名無しさん (ワッチョイ 1bf8-HvS5) mailto:sage [2017/01/10(火) 01:11:41.52 ID:91nFXcAZ0.net] href="([^"]+\.jpg|jpeg|gif|png|bmp)
599 名前:デフォルトの名無しさん (ワッチョイ 1bf8-HvS5) mailto:sage [2017/01/10(火) 01:16:54.93 ID:91nFXcAZ0.net] href="([^"]+\.(jpg|jpeg|gif|png|bmp))" スマン色々抜けてた 相対リンクは含めないとかでない限り ごちゃごちゃしたの書くより"が現れるまでをとったほうがいいんじゃない
600 名前:デフォルトの名無しさん (ワッチョイ bbc7-pn3f) mailto:sage [2017/01/10(火) 01:39:10.15 ID:fP39RQYT0.net] >>590 その処理は正規表現じゃなきゃ駄目か? phpQueryとかのライブラリ使ってやる方が素直だし読みやすいと思うが 一応その正規表現の問題点を挙げておくと, <a.* の段階で貪欲にマッチして後続の, href\s*=\"?([\-_\.\!\~\*\'\(\)a-z0-9\;\/\?\:@&=\+\$\,\%\#]+(jpg|jpeg|gif|png|bmp)) にマッチする最後の部分までの間にある全ての文字を食い尽くす よって <a.* の部分がとてもマズい HTMLタグにきちっとマッチさせる正規表現は書けるけど面倒
601 名前:デフォルトの名無しさん (ワッチョイ 6b56-IbiL) mailto:sage [2017/01/10(火) 17:34:14.17 ID:eoRQxw730.net] >>590 なるべく元のコードに手を加えない方向でいけば a.* ⇒ a.*? にするだけでいいと思うが 最短マッチと最長マッチの違い どのみちタグの中にダブルコーテーションが無いとかシングルコーテーション使ってたり =の後に空白文字があったら駄目だけど 正規表現って最初は試行錯誤しながら学ぶもんだから 初心者のうちはあんまり他人が書いたものをコピペするのはおすすめしない
602 名前:デフォルトの名無しさん (ワッチョイ 6ba0-4j6q) mailto:sage [2017/01/10(火) 17:37:36.65 ID:Zz1rnY0L0.net] >>592 綺麗にできました。 正規表現は使えるとホント便利ですね いつかしっかり勉強したいです。 その他の方もありがとうございました。
603 名前:575 (アウアウウー Saf3-OYug) [2017/01/12(木) 11:50:13.88 ID:P6PzELH5a.net] おかげさまでできました。ありがとうございます。 >>585 DBに保存したほうがセキュリティ上好ましいとどこかで見た気がしたので そうしているのですが、呼び出しがやや面倒です。 書き込みを拝見させていただくとDBに保存したほうが 動作も重くなるみたいなのですが、DBに保存するメリットってありますか? なければやめようかと思うのですが・・・
604 名前:デフォルトの名無しさん (ワッチョイ c356-YL17) mailto:sage [2017/01/12(木) 12:58:17.42 ID:JoWqZZGk0.net] DBに画像をバイナリ保存するのは 類似画像検索するとかバイナリデータ内に含まれる情報を元にソートや抽出をするといった「明確な目的」があるからであって 特に目的もないのにそうする事はリソースの無駄以外の何者でもない 偉そうな事をいって申し訳ないが セキュリティ上好ましいってその理由を理解もせずに鵜呑みにしたら駄目だと思う
605 名前:デフォルトの名無しさん (ワッチョイ 67f8-dHfL) mailto:sage [2017/01/12(木) 15:40:42.15 ID:hdlSpXcO0.net] セキュリティ上好ましいっていうのは上のほうでも誰か書いてたけど たぶん直リンで簡単にアクセス出来ないからとかそんな理由なんじゃない? 特定の人しかアクセス出来ない非公開画像なんかの場合はちょっとした工夫が必要だけど 別にDBである必要はないね
606 名前:デフォルトの名無しさん (JP 0H8e-vSov) mailto:sage [2017/01/12(木) 17:13:18.12 ID:zvW9UYRyH.net] >>596 詳しくは、書籍『SQLアンチパターン』のファントムファイルを参照するとして、データベースに保存するメリットを列挙すると、 ・ファントムファイル(幻のファイル:データベースのレコードはあるがファイルが存在しない)が起こらない ・画像の保存・変更・削除がデータベースのトランザクションと一致する ・ロールバックしたときに不要なファイルが残るということがない ・一般ファイルとして保存すると、File I/Oエラーのときにトランザクションをロールバックするなどのコードが必要になる ・データベースをバックアップすれば、画像も一緒にバックアップされる(一貫した完全なデータセットでバックアップできる) 「SQLアンチパターン ファントムファイル」でググれば、書籍を買わなくてもいろいろと記事が見つかる。
607 名前:デフォルトの名無しさん (JP 0H8e-vSov) mailto:sage [2017/01/12(木) 17:21:55.51 ID:zvW9UYRyH.net] あ、念のため書いておくと、『SQLアンチパターン』でアンチパターンとされているのは、 データベースに画像をバイナリで保存することではなくて、 「物理ファイルの使用(データベースにはパスのみ格納)を必須と思い込む」ことで、 たいした考慮もなしにそう実装してしまうというものです。
608 名前:デフォルトの名無しさん (ワッチョイ b222-GBI4) [2017/01/12(木) 18:12:29.36 ID:LTmK9cNB0.net] サイト間の文字コードについて質問させてください。 今仕事でブログパーツを作成しているのですが、 文字コードが異なるサイトでは <script src=
609 名前:デフォルトの名無しさん (ワッチョイ b222-GBI4) [2017/01/12(木) 18:15:23.38 ID:LTmK9cNB0.net] 規制が掛ってしまったのでプロトコル名は全角のhttpと記載しました。 サイト間の文字コードについて質問させてください。 今仕事でブログパーツを作成しているのですが、 文字コードが異なるサイトでは <script src="http://hoge/fuge.php?charset=utf8"></script> のように「charset」明示して読み込めばもちろん判別できるのですが いくつかの有名サイトではcharsetなしで自動的に文字判別しているようです。 ソースを見ると出力の段階で正しい文字コードになっています。 アダルトサイトのブログパーツで恐縮なのですが、↓など サイト1 <div id="immoral_parts_1" class="immoral_parts"></div> <script src="http://p.immoral.jp/parts.php?width=200&layout=1& keyword=&num=4&id=1&filter="></script> サイト2 <div id="eroterest_partsv2" class="eroterest_partsv2"></div> <script src="http://bpm.eroterest.net/v2/?w=&e=&n=6&rn=2&spn=&sprn=& fc=&ts=&tp=&tbg=&tsz=&tr=&tc=&tmc=&tu=1&is=1&mts=&ds=&dsz=&dr=&dc=&df=& ibg=&ibm=&ids=&ib=&ibc=&ir=&sf="></script> どの文字コードのページに埋め込んでも正しく表示されます。 どなたかご教示いただけないでしょうか?
610 名前:デフォルトの名無しさん (ワッチョイ db2c-dHfL) mailto:sage [2017/01/12(木) 19:13:19.50 ID:taUnzxu50.net] レスポンスのContent-Typeヘッダのcharsetでブラウザに文字コード教えるだけなのでは リクエスト時にこの文字コードをくれではなくレスポンスでこの文字コード使ってるからクライアントで勝手に解釈しろという流れ
611 名前:デフォルトの名無しさん (ワッチョイ 3eaf-dHfL) [2017/01/12(木) 23:35:18.23 ID:yNVhW+sq0.net] sjisのページにこれ貼り付けても文字化けしないけど 判定とかしてないでしょ
612 名前:デフォルトの名無しさん (ワッチョイ d3d5-oERZ) [2017/01/12(木) 23:56:56.78 ID:tDwhqFa10.net] 自作ゲーム即売会「ゲームマーケット」に1万人超 www.nikkansports.com/general/nikkan/news/1750500.html ボードゲームのオリジナルオーダー制作 www.logygames.com/logy/ordermade.html カードゲームを自作する1 【自宅でカード印刷】 tanishi.org/?p=801 100円ショップでボードゲームを自作しよう https://sites.google.com/site/jun1sboardgames/blog/makeyourbg ノーアイデアでボードゲームを作ろう第1回「100円ショップで物を買う」 boardgamelove.com/archives/boardgame-make-1/ ボードゲーム市場がクラウドファンディングの出現で急成長を遂げ市場規模を拡大中 gigazine.net/news/20150820-board-game-crowdfunding/ 実際のところ、自作ボードゲームってどれぐらい売れるもんなの? roy.hatenablog.com/entry/2016/12/20/220102 オリジナル アナログゲーム・絵カード印刷 www.shobundo.org/index.html ゲームマーケット2016春にて初参加サークルさんに作成数アンケートをとってきました hidarigray.blog35.fc2.com/blog-entry-614.html
613 名前:デフォルトの名無しさん (ワッチョイ f67b-S3/X) mailto:sage [2017/01/13(金) 00:39:02.36 ID:84sZuYo80.net] >>601-602 2chのバグだろう 書き込み確認画面が出る際、" を使うと、そこで文字列の終了とみなされる。 " の代わりに、\" とエスケープすれば、どうだろう? それか、書き込み確認画面が出たら、1度キャンセルすれば、確認画面は出ないようになった
614 名前:575 (アウアウウー Saf3-OYug) [2017/01/13(金) 09:18:20.76 ID:zdP6lRcka.net] >>597-600 ありがとうございます、検索してきました。とても勉強になりました。 用途ごとで考えていかないといけないんですね
615 名前:デフォルトの名無しさん (ワッチョイ b222-GBI4) mailto:sage [2017/01/13(金) 17:40:23.42 ID:pW3G4Um70.net] >>603 ありがとうございます! header("Content-type: application/x-javascript; charset=utf-8"); で行けました。 こんなに簡単だったなんて・・・
616 名前:デフォルトの名無しさん (ワッチョイ f230-sWU2) mailto:sage [2017/01/15(日) 10:07:50.48 ID:96oN4X0D0.net] ファントムファイルの話おもしろいな 久しぶりに有意義なレス読めて嬉しいわ
617 名前:デフォルトの名無しさん (ワッチョイ c3a0-kZbI) mailto:sage [2017/01/17(火) 00:12:19.85 ID:rCvGxOoa0.net] 文字列がだいたいあってればtrueって返すのってどうにかできないか? 「あいうえおかきくけこ」≒「あ■うえお■きくけこ」 =>true 「あいうえおかきくけこ」≒「さしすせそたちつてと」 =>false
618 名前:デフォルトの名無しさん (ワッチョイ 4f42-q48i) mailto:sage [2017/01/17(火) 00:43:41.02 ID:ch2PxU+N0.net] 「だいたい」と言う言葉を厳密にまず定義してみて 人によっては、先頭の一文字さえ合えば合っているって言うかもしれない
619 名前:デフォルトの名無しさん (ワッチョイ 1fc7-q48i) mailto:sage [2017/01/17(火) 00:45:23.61 ID:vaY8CLG20.net] >>610 文字列の集合上の距離関数(Levenshtein距離など)とtrueを返す距離の閾値を引数にとる関数を考えればよい
620 名前:デフォルトの名無しさん (ワッチョイ 4f46-YL17) mailto:sage [2017/01/17(火) 12:40:52.39 ID:34x6WvLV0.net] >>610 611の言うとおり とてもプログラミングする人間の質問とは思えない
621 名前:デフォルトの名無しさん (ワッチョイ c356-YL17) mailto:sage [2017/01/17(火) 12:43:30.29 ID:AoWcBh8D0.net] あいうえお と AいうeO とが「だいたい」同じとみなすなら >>612 の方法ではダメだしね ある程度定義がないと答えようがない
622 名前:デフォルトの名無しさん (ワッチョイ c3a0-kZbI) mailto:sage [2017/01/17(火) 17:30:26.50 ID:rCvGxOoa0.net] すまない 定義も言わずに無茶な質問したなと思っている 定義としていいのかどうかわからないが ベースとなる文字列に対して対象となる文字列との合致率が80%以上あればいい 最初はベースとなる文字列を2文字ずつ分解して類似を消し、 対象となる文字列内にその文字か含まれるか調査して それが80%を超えればtrueにしようと考えていたんだけど これでいいのか、もっといい方法があるんじゃないか?で不安になって質問した
623 名前:デフォルトの名無しさん (アウアウカー Sa5f-kkJw) mailto:sage [2017/01/17(火) 18:04:45.68 ID:0If6Z2WBa.net] >>614 距離関数の定義と設定する閾値次第 文字列の近さの評価は距離関数に丸投げするわけだ 用途や目的, 想定に合わせて距離関数を実装してコールバックとして渡す
624 名前:デフォルトの名無しさん (アウアウカー Sa5f-kkJw) mailto:sage [2017/01/17(火) 18:17:37.68 ID:0If6Z2WBa.net] >>615 その「一致率」ってのが, 文字列の比較でどこに着目して何を重視するかによって変わる指標でしかないんだけども とりあえずよく使われる例として上でも挙げたLevenshtein距離とその実装アルゴリズムのBitapを調べてみてはどうか 尚マルチバイト文字列でなければ組み込みのlevenshtein関数がある
625 名前:デフォルトの名無しさん (アウアウカー Sa5f-kkJw) mailto:sage [2017/01/17(火) 18:54:34.88 ID:0If6Z2WBa.net] Bitapは実装アルゴリズムじゃないわ失礼
626 名前:デフォルトの名無しさん (ワッチョイ c356-YL17) mailto:sage [2017/01/17(火) 19:48:09.06 ID:AoWcBh8D0.net] >>616 日本語って漢字もカタカナもひらがなもアルファベットもあるからさ Googleみたいな天才集団ならまだしも俺みたいな凡人レベルだと 一度ローマ字読みに統一(それすらYahooAPIに丸投げ)してから Levenshteinにほとんど丸投げみたいな感じで 似たようなことならやった事があるが参考になるかね もう5年ぐらい前の話だから今はもっといい方法あるかもな
627 名前:デフォルトの名無しさん (ワッチョイ c356-YL17) mailto:sage [2017/01/17(火) 19:49:45.70 ID:AoWcBh8D0.net] 619は616ではなく>>615 へのレスの間違いだ 失礼
628 名前:デフォルトの名無しさん (ワッチョイ c3a0-kZbI) mailto:sage [2017/01/17(火) 20:26:24.43 ID:rCvGxOoa0.net] いろいろありがとうございます。 Levenshteinというのがうまく使えそうなので これでやってみたいと思います。
629 名前:デフォルトの名無しさん (ワッチョイ b3a0-07nx) mailto:sage [2017/01/19(木) 01:02:50.61 ID:Iza9bQoq0.net] 質問よろしいでしょうか 文字と6〜11桁の数値の混ざった文字列があり、 この数値以降の文字列を削除したいのですが何か良い方法はないでしょうか? abcd1234567app-00 → abcd1234567 xyz1234567890xx/0123 → xyz1234567890
630 名前:デフォルトの名無しさん (ワッチョイ 2342-SmTw) mailto:sage [2017/01/19(木) 02:17:05.14 ID:TMXa1TOT0.net] <?PHP $src = array("abcd1234567app-00", "xyz1234567890xx/0123"); print_r($src); $dst = preg_replace('/^([a-z]+[0-9]+)[^0-9].*$/', '$1', $src); print_r($dst);
631 名前:デフォルトの名無しさん (ワッチョイ b3a0-07nx) mailto:sage [2017/01/19(木) 11:38:32.06 ID:Iza9bQoq0.net] ありがとうございます。 もう一つ同じような質問になってしまい恐縮なのですが、 aa.bb5.com/topics/0123456789/58- ll.bb1.com/topics/1234567890/s12 cc.bb8.com/topics/2345678901 こういったURLを一律に aa.bb5.com/topics/0123456789/ ll.bb1.com/topics/1234567890/ cc.bb8.com/topics/2345678901/ このような形に整える場合、どうすると良いのでしょうか?
632 名前:デフォルトの名無しさん (ワッチョイ b356-JQ1R) mailto:sage [2017/01/19(木) 13:26:19.40 ID:Y9xRubnq0.net] 「topics+数字10桁」が固定なら $url = array( 'aa.bb5.com/topics/0123456789/58- ', 'll.bb1.com/topics/1234567890/s12 ', 'cc.bb8.com/topics/2345678901 ' ); print_r(preg_replace('/(topics\/\d{10}).*$/', '$1/', $url)); とかさ とりあえず正規表現勉強しよう こんなの初歩中の初歩だし
633 名前:デフォルトの名無しさん (ワッチョイ 637b-jh1Y) mailto:sage [2017/01/19(木) 15:41:48.95 ID:+8JGp/PH0.net] 別々のサイトを同じ正規表現で処理するのってどうなのかな? できたとしても、普通しないんじゃあないかな?
634 名前:デフォルトの名無しさん (ワッチョイ 8fc9-3qL8) mailto:sage [2017/01/19(木) 16:09:49.05 ID:+apAMdxY0.net] >>626 対象が普通じゃないときにはよくやる。
635 名前:デフォルトの名無しさん (ワッチョイ b356-JQ1R) mailto:sage [2017/01/19(木) 17:33:26.13 ID:Y9xRubnq0.net] >>626 そんなもん場合によるとしか言いようがない ドメインが違っても同じシステム上で動いてるならhost以下のURLは同じパターンになる事だってある parse_url()あたり使ってドメイン別に処理を分岐させるてもいいし 条件が複雑になってもpreg_replace_callback()使ってコールバック関数に投げれば大抵の事は正規表現でできる(正規表現にこだわる必要性はないが)
636 名前:デフォルトの名無しさん (ワッチョイ 2346-JQ1R) mailto:sage [2017/01/19(木) 17:36:45.27 ID:DEEPX58W0.net] 2chミラー系のサイトとかパスの部分は本家と同じルールの事が多いよな
637 名前:デフォルトの名無しさん (ワッチョイ 03f8-3qL8) mailto:sage [2017/01/19(木) 17:49:38.07 ID:Yy/ywFZD0.net] 相手方が仕様変更したら、都度変更するってのは当たり前のことだしね。
638 名前:デフォルトの名無しさん (ワッチョイ b3a0-07nx) mailto:sage [2017/01/19(木) 17:56:49.57 ID:Iza9bQoq0.net] >>625 うまくいきました。 「preg_replace」こういった便利なものをもっと活用できる様努力したいです。 正規表現はまだ勉強していませんでした。 皆さんはどのように勉強されましたか?
639 名前:デフォルトの名無しさん (ワッチョイ b356-JQ1R) mailto:sage [2017/01/19(木) 18:05:43.35 ID:Y9xRubnq0.net] 俺はwebでどうしても作りたいサービスがあって それを実現するために必要なものを都度、本を見たり他人のソース読んで独学で覚えていったなー 正規表現もその内の1つ 当時はPHPなんてまだ実用レベルではなかったけど、プログラミングなんてそんなもんじゃね? ※ちなみに作ったサービスが大ヒットして20代で起業できた 正規表現は言語や環境を超えて色んな場面で使えるから早いとこ覚えた方がいいよ
640 名前:デフォルトの名無しさん (アウアウカー Sac7-Taza) mailto:sage [2017/01/19(木) 19:26:50.82 ID:IJcB5l5+a.net] Perlで覚えたっておっさんは多そう
641 名前:デフォルトの名無しさん (ワッチョイ 2342-SmTw) mailto:sage [2017/01/19(木) 20:10:06.40 ID:TMXa1TOT0.net] sed使って覚えたw
642 名前:デフォルトの名無しさん (ワッチョイ b3a0-07nx) mailto:sage [2017/01/19(木) 23:55:33.82 ID:Iza9bQoq0.net] ありがとうございました。 正規表現に関する書籍などもあるようなので始めのうちはそちらで勉強しようと思います。
643 名前:デフォルトの名無しさん (JP 0H27-Up5i) mailto:sage [2017/01/20(金) 08:28:28.07 ID:Nvso2zBqH.net] 気の利いたテキストエディタなら 検索条件に正規表現が使えるよ そんなに身構えるほどのものでもない でも直感的にすぐできそうなことが できなかったり遠回りさせられたりするケースは多い
644 名前:デフォルトの名無しさん (JP 0H7f-Taza) mailto:sage [2017/01/20(金) 15:15:26.51 ID:ytgAV8a7H.net] 所詮有限オートマトンでしかないからなぁ 文脈自由言語を表現したいことはそこそこあるし
645 名前:デフォルトの名無しさん (ワッチョイ 6f5b-WaXM) mailto:sage [2017/01/21(土) 11:23:45.42 ID:W/zpHkC+0.net] あああああああああああああ
646 名前:デフォルトの名無しさん (ワッチョイ 634a-OQjX) mailto:sage [2017/01/22(日) 11:25:23.82 ID:yhCK3ont0.net] echo "あああああ"; で出力している行が沢山あるのだが、C言語のマクロみたいに #define echo などとして、一時的にechoをしないように出来ますか? #define echo echo で元に戻すとか。
647 名前:デフォルトの名無しさん (ワッチョイ f342-WaXM) mailto:sage [2017/01/22(日) 12:29:06.17 ID:Bs668zcL0.net] ob_startでダミー関数へ出力を流して捨てるとか まぁecho以外のものも全部影響するけど
648 名前:デフォルトの名無しさん (ワッチョイ 634a-OQjX) mailto:sage [2017/01/22(日) 16:56:50.88 ID:yhCK3ont0.net] >>640 サンキュウ。 PHP初心者の俺には難しそうなのであきらめるわ。
649 名前:デフォルトの名無しさん (ワッチョイ f342-WaXM) mailto:sage [2017/01/22(日) 17:44:31.99 ID:Bs668zcL0.net] 自分も初心者で、この前試してみたら動いたよ。 echoで出力したやつを mongodb へ出力するようにしてみた callback関数に慣れてないので、結局 ob_get_contents で文字列として取り出してやることになったけどww(一応callback関数も動いたんだけどねw)
650 名前:デフォルトの名無しさん (ワッチョイ 634a-OQjX) mailto:sage [2017/01/24(火) 07:22:42.90 ID:GW7wBcmJ0.net] echo '文字列'; echo('文字列'); どちらも行けるのはなぜ?
651 名前:デフォルトの名無しさん (ワッチョイ 03f8-3qL8) mailto:sage [2017/01/24(火) 10:15:59.16 ID:9JkkYn/G0.net] なぜって言われても仕様だからとしか echoは言語構造で関数ではないが関数風の記述も出来る
652 名前:デフォルトの名無しさん (シャチーク 0C67-x36u) mailto:sage [2017/01/24(火) 13:11:54.10 ID:qMNsZ9tKC.net] <?php $shell = new COM('WScript.Shell'); $shell->Popup(mb_convert_encoding('日本語', 'SJIS')); ↑のように書けば文字化けはしないのですが <?php $shell = new COM('WScript.Shell'); $shell->Popup('日本語'); ↑のように書いても文字化けしない設定はありますか? 環境は、Windows7 x64、PHP 5.6.27、ソースファイルの文字コードはUTF-8です。 現状、以下のようなエラーも発生しています。 PHP Warning: Unknown: Could not convert string to unicode: `Unicode 文字のマッピングがターゲットのマルチバイト コード ページにありません。' 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
653 名前:デフォルトの名無しさん (ワッチョイ 634a-OQjX) mailto:sage [2017/01/24(火) 13:28:04.90 ID:GW7wBcmJ0.net] >>644 サンキュウ。 勉強になったわ。 ちなみにそういう特徴があるのは echo だけなの?
654 名前:デフォルトの名無しさん (ワッチョイ 63c7-SmTw) mailto:sage [2017/01/24(火) 18:11:00.05 ID:eJZROb7k0.net] >>646 引数をとる言語構造は概ね require_onceとか
655 名前:デフォルトの名無しさん (ワッチョイ ff30-waAN) mailto:sage [2017/01/24(火) 22:59:12.64 ID:I87canmV0.net] 色々なCMSとかECで管理画面のURLを変更できますがどういう実装なんでしょうか デフォルト /adminlogin 変更後 /hogehogelogin ルーター?あたりでリクエストを見てごにょごにょ変更したりなんだりなんでしょうか
656 名前:デフォルトの名無しさん (ワッチョイ b356-JQ1R) mailto:sage [2017/01/25(水) 17:48:43.07 ID:Rne6Kw8A0.net] Apacheサーバ上で動作するものならmod_rewriteで変更するのが定番中の定番
657 名前:デフォルトの名無しさん (ワッチョイ 6bc1-y5A3) mailto:sage [2017/01/26(木) 00:36:54.30 ID:KyKDhrRS0.net] >>649 それはルータのURIでしょうよ >>648 そうでしょうね
658 名前:デフォルトの名無しさん (ワッチョイ 1fd6-Q0kd) mailto:sage [2017/01/26(木) 01:34:40.14 ID:MO+7T8JD0.net] mod_rewrite楽でいいじゃんって感じで rewriteしまくってわけわかんなくなってるサイトとか マジ、いじりたく
659 名前:ないのが実在する [] [ここ壊れてます]
660 名前:デフォルトの名無しさん (ワッチョイ 5b42-y5A3) mailto:sage [2017/01/26(木) 23:05:32.18 ID:VOhYXAVW0.net] 単に管理用のプログラムの置く場所を、そのサイトで変えていると言うだけなんてことは無い?
661 名前:デフォルトの名無しさん (ワッチョイ f7ce-AZYz) mailto:sage [2017/01/26(木) 23:45:40.57 ID:cKDcvF/b0.net] if文の条件でorを多用する時、スマートな書き方ってありますか? if (A || b() || (C && d()) || $E || F); ↑こういうヤツです
662 名前:デフォルトの名無しさん (ワッチョイ eec9-AZYz) mailto:sage [2017/01/27(金) 11:14:04.21 ID:r9WH4ZGI0.net] >>653 あんまり量が多いようなら switch case で羅列する
663 名前:デフォルトの名無しさん (ワッチョイ 5320-Cjs8) mailto:sage [2017/01/27(金) 12:08:48.97 ID:0yUPeU9L0.net] ネットで調べまくっても解決しないので質問させてください。 Win7にXAMPPをインストールしてPHPを勉強しているのですが、 mb_send_mailでメールが届きません。 ttps://techacademy.jp/magazine/4129 で説明のようにphp.iniとsendmail.iniを設定して 下記のPHPを読み込むと「送信成功」と出るのですがメールが届きません。 php.iniとsendmail.iniの設定は他のサイトで説明されている設定でもいろいろ試したのですが 変わらず届かないので他の問題があるのかなと考えているのですが 同じ症状を経験された方いませんか? 「送信成功」と出てsendmailのエラーが出ていないのでerror.logは作成されません。 迷惑メール等にもメールは見当たらず、gmailやyahooメール等いろんなsmtpを設定しても届いていません。 <?php if (mb_send_mail('xxx@xxx.com', 'メール送信テスト', 'これはメール送信テストです')) { print '送信完了'; } else { print '送信失敗'; }
664 名前:デフォルトの名無しさん (ワッチョイ eec9-AZYz) mailto:sage [2017/01/27(金) 12:22:22.94 ID:r9WH4ZGI0.net] >>655 宛先が間違っているんやろなぁ
665 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/01/27(金) 12:22:47.97 ID:d1ED6onW0.net] 認証方法が変わったりしたんだろ? とりあえずPHPは後回しにして手動とか、コマンドで出来るか試す。
666 名前:デフォルトの名無しさん (ワッチョイ ee5b-FuHd) mailto:sage [2017/01/27(金) 15:46:24.32 ID:qE/DB39Q0.net] >>655 mailヘッダ情報の設定やってる? これデバッグできないなら諦めて 他のメールパッケージ使ったほうがいいよ それでも動作しないなら、sendmailが原因
667 名前:デフォルトの名無しさん (JP 0H36-Ijd2) mailto:sage [2017/01/27(金) 16:17:02.67 ID:ywWwL4iXH.net] >>655 今xamppをダウンロードしてみたんだが、ローカルのSMTPサーバを使うのがデフォルトみたいだぞ。
668 名前:デフォルトの名無しさん (JP 0H36-Ijd2) mailto:sage [2017/01/27(金) 16:22:12.36 ID:ywWwL4iXH.net] で、ローカルのSMTPサーバを起動したらコントロールパネルでログを見られるみたいだから、 原因の切り分けができるのでは? https://screenpresso.com/=GRn6e
669 名前:デフォルトの名無しさん (ワッチョイ 6f42-P4zY) mailto:sage [2017/01/27(金) 18:34:40.27 ID:K/AcGzHR0.net] Windows 7だから、ローカルにメールサーバーが入ってないってことかも? Linuxのディストリビューションだと、デフォルトで入ってるから悩まなくてもできるけど Windowsだと・・Virtualboxとか使った方が早いかも?
670 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/01/27(金) 19:02:58.26 ID:dfMoaU/d0.net] xamppにメールサーバーはいってたはずだが ただし原理は不明だが送信相手かプロバイダに弾かれるかして動作しなかったような・・ メールサーバーとして認められるなんらかの手続きがいるはずかと・・不明だが しかしグーグル経由して送信するんだろ?
671 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/01/27(金) 19:11:25.07 ID:dfMoaU/d0.net] これとおなじだろ。本物サーバーでなくて、メーラーと同様な動作させたいってことだろ? サーバーはグーグルまかせで。 xamppのMercuryを使ってローカル開発環境からメールを送信する xamppなどを利用してローカルでメールフォームなどを開発する場合、その動作を確認できなくて困ることがあります。 原因は、単純にローカルマシン自身がSMTPサーバではないからです。 xamppにはその問題を解消するために「Mercury」というソフトが同胞されています。これまで、幾度となく何度もチャレンジしたのですが、うまくメールを送信できませんでした。 しかし、今回、設定に成功したのでメモとして残しておきます。 メールが送信されるしくみ PHPの関数mb_send_mailなどでメールを送信すると、コマンドsendmailなどを使ってメールが送信されるのが通常です。 今回のMercuryを使う場合は、PHPでメールが送信されるとMercuryを経由して、Mercuryで設定したSMTPサーバにメールが投げられます。 つまり、Mercuryはローカルプログラムから受け取ったメールを、メーラーソフトと同じようにしてメールを送信しているわけです。 したがって、この環境を実装するためには、SMTPサーバが必要です。 もちろん、今利用しているISPのSMTPサーバで問題ありません。 helog.jp/xampp/mercury-mail/
672 名前:655 (ワッチョイ 5320-Cjs8) mailto:sage [2017/01/27(金) 19:26:49.62 ID:0yUPeU9L0.net] 返答遅れて申し訳ないです。 >>656 宛先は何度も確認して別のアドレス宛てにも送っているんで 間違いは無いと思います。 >>657 認証についてはよくわからないのですが、 PHPの本やmb_send_mailを説明しているサイトでは そのまま問題なくできているようなのです。 メーラーやコマンドライン使って問題なくメールは送れました。 >>658 ヘッダー情報の設定もしてみたのですが結果は同じでした。 PHPのmb_send_mailの勉強なので、もっと出来るようになったら他の方法も勉強してみようと思います。 >>659 ローカルのSMTPサーバを使うまで進んでいませんが mb_send_mailができないようでしたら勉強してみます。
673 名前:デフォルトの名無しさん (ワッチョイ f7f8-TlWQ) mailto:sage [2017/01/27(金) 19:30:01.77 ID:5anwLQVh0.net] phpとは違うけど自分もメール送信できない事があってはまった事があった 原因はアンチウイルスソフトで大量メール送信をブロックしていたためだった virusscanをもし使っていたら下記リンクを参考にしてブロックを外してみて kayulog.seesaa.net/article/159312396.html
674 名前:655 (ワッチョイ 5320-Cjs8) mailto:sage [2017/01/27(金) 19:48:09.53 ID:0yUPeU9L0.net] >>661-663 自分が試みているのは「xamppのfake sendmailを使ってローカル開発環境からメールを送信する」の方で、 ↓のサイトでも問題なく出来ているみたいなんですが 同じ設定をしてもメールが届かないんです。 helog.jp/xampp/fake-sendmail/
675 名前:デフォルトの名無しさん (ワッチョイ 7e7b-316P) mailto:sage [2017/01/27(金) 20:02:05.93 ID:SOi9h9fX0.net] Wireshark を使って、通信パケットでも見れば?
676 名前:デフォルトの名無しさん (ワッチョイ 1fa0-fVsk) mailto:sage [2017/01/28(土) 10:35:24.40 ID:13qnO7m90.net] 質問です 「$sql = 'select time from sbdate';」 これを使って時間のデータの「40日前〜10日前」を呼び出したいのですがどう書き足すといいでしょうか? また、登録されている時間のデータで一番新しいデータの呼び出し方も教えていただけると助かります。
677 名前:デフォルトの名無しさん (ワッチョイ 1fd6-Q0kd) mailto:sage [2017/01/28(土) 11:31:58.90 ID:7mM7CN4P0.net] >これを使って時間のデータの「40日前〜10日前」を呼び出したいのですがどう書き足すといいでしょうか? $sql = "SELECT time FROM sbdate WHERE time >= :start_date AND time <= end_date"; $params = array( "start_date" => date("Y-m-d", strtotime("-40 day")), "end_date" => date("Y-m-d", strtotime("-10 day")) ); $result = SomeDBAccessLibrary::getInstance()->query($sql)->bind($params)->execute(); >また、登録されている時間のデータで一番新しいデータの呼び出し方も教えていただけると助かります。 $sql = "SELECT * FROM sbdate ORDER BY time DESC LIMIT 1"; $result = SomeDBAccessLibrary::getInstance()->query($sql)->execute();
678 名前:デフォルトの名無しさん (ワッチョイ ea30-Ve17) mailto:sage [2017/01/29(日) 00:24:45.60 ID:RwW5ifSZ0.net] windowsと
679 名前:Linuxでまるっきり挙動が違うってのに初めて遭遇したんだけど そうなるとやっぱりXAMPPって使わないほうがいいのかね? [] [ここ壊れてます]
680 名前:デフォルトの名無しさん (ワッチョイ 6bc1-y5A3) mailto:sage [2017/01/29(日) 01:23:23.51 ID:q/JB8S+S0.net] 手元でもテストするけど最終的にはDockerで実環境を再現したコンテナ作ってテスト走らせるわ
681 名前:デフォルトの名無しさん (ワッチョイ 1fa0-fVsk) mailto:sage [2017/01/29(日) 02:09:49.58 ID:9y6Ir6At0.net] >>669 ありがとうございました。 XAMPPって駄目なのか 簡単に設定できたからずっと使ってた 今はローカルでやる場合は何が主流なんだろう
682 名前:デフォルトの名無しさん (ワッチョイ 5b42-y5A3) mailto:sage [2017/01/29(日) 02:27:11.14 ID:c27yycvu0.net] 仮想環境で実環境と同じOS使うのが楽だと思う
683 名前:デフォルトの名無しさん (ワッチョイ d3f8-AZYz) mailto:sage [2017/01/29(日) 02:38:41.26 ID:vdPv4D6s0.net] 別にだめじゃない。 XAMPP使っていて問題が起きるような人は結局、本番環境で開発しないと動かないコードが出来上がるタイプ。 つまりOS以外での差もあるわけで、Linuxで開発したからといって、本番環境のLinuxで動くとも限らないということ。 ていうか具体的にどこで問題がおきたの? Windows専用とか、Windowsだと制限されてるものとかはあるだろうけど(初めて使うものはちゃんと調べる)、 PHPは曲がりなりにもマルチプラットフォームであって、OS差を埋めるためのコードはちゃんと存在するはず。 例えば定数とかうまく使えてる?
684 名前:デフォルトの名無しさん (ワッチョイ ee5b-FuHd) mailto:sage [2017/01/29(日) 03:10:55.44 ID:CzSBugT30.net] 本番サーバがLinux環境なら、ローカルもLinuxに合わせたほうがよくない? 環境維持は大事だと思う
685 名前:デフォルトの名無しさん (ワッチョイ 1fa0-fVsk) mailto:sage [2017/01/29(日) 09:40:28.87 ID:9y6Ir6At0.net] PHPの開発環境は皆どうしてる? Google ChromeとTeraPadで書いて確認してたけど なんかいいのあれば教えてください 流石に疲れました
686 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/01/29(日) 09:49:26.20 ID:VE53RC2e0.net] エディタは好きなのでいいし、PHP開発の大部分はブラウザは不要だろ? そっちがメインになることもあるだろうけど。 HTMLなど見える部分以外の動作を作るほうが多いからブラウザでの確認はあとでいい。
687 名前:デフォルトの名無しさん (ワッチョイ ea30-Ve17) mailto:sage [2017/01/29(日) 10:21:35.96 ID:RwW5ifSZ0.net] 画像周りのライブラリ拾ってきたときにWinとLinuxで動作違ったりしたな
688 名前:デフォルトの名無しさん (ワッチョイ ea30-Ve17) mailto:sage [2017/01/29(日) 10:24:34.69 ID:RwW5ifSZ0.net] って670俺だわ酔っ払ってたすまん >>674 mPDFでWinだと画像パス指定するだけでHTMLそのまま吐くんだけどLinuxだと404になってるのよね
689 名前:デフォルトの名無しさん (ワッチョイ d3f8-AZYz) mailto:sage [2017/01/29(日) 11:13:17.56 ID:vdPv4D6s0.net] サードパーティ製はさすがにわからないけど、 症状からしても画像パスの指定方法に問題があるのだろう。
690 名前:デフォルトの名無しさん (ワッチョイ 1fa0-fVsk) mailto:sage [2017/01/30(月) 21:53:03.65 ID:Jl7rOjwJ0.net] ライブドアブログに記事をアップロードできるようにしたいがどうしたものか? AtomPub APIというのを使えばできるとらしいが 使い方がわからん… これは何かダウンロードして使うものなのだろうか?
691 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/01/30(月) 22:34:22.73 ID:gPTswH1+0.net] そのくらい初心者でもできるだろ。じぶんも初心者だが・・・ ためしにやってるみる
692 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/01/30(月) 23:21:18.49 ID:gPTswH1+0.net] >>681 投稿できたぞ これそのままつかった https://github.com/seiyaan/LiveDoorBlogAtomPub
693 名前:デフォルトの名無しさん (ワッチョイ 1fa0-fVsk) mailto:sage [2017/01/31(火) 00:15:35.31 ID:6jwW0/Fs0.net] >>683 ありがとうございます。 とても助かります。 「通信に PEAR の HTTP_Request2 を使用しております。インストールをお願いします。」 うう… また知らん機能を… PEAR とか HTTP_Request2 って何なんじゃい 今日はもうギブアップ
694 名前:デフォルトの名無しさん (ワッチョイ e6af-AZYz) [2017/01/31(火) 00:40:09.72 ID:4WQSXuaN0.net] http request2って古いな 普通にfile_get_contentsでできるんちゃうか
695 名前:デフォルトの名無しさん (ワッチョイ 6bc1-y5A3) mailto:sage [2017/01/31(火) 00:48:01.99 ID:H/15YF7/0.net] guzzlehttp/guzzleがPSRのインターフェイスの実装になってるからオヌヌメ
696 名前:デフォルトの名無しさん (JP 0H13-zSxl) mailto:sage [2017/01/31(火) 04:06:45.41 ID:WN418v1sH.net] windows環境で何年も開発してるけど、本番環境で問題起こったことないよ?