【PHP】下らねぇ質問はID出して書き込みやがれ 126
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2013/02/02(土) 21:41:08.72ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 125
http://kohada.2ch.net/test/read.cgi/php/1357738303/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0238nobodyさん
2013/02/15(金) 06:15:10.00ID:???↑
こういう「〇〇してくれる関数ないですか?」ってキチガイのお蔭でアフォみたいな関数が標準で大量に入っている
0239nobodyさん
2013/02/15(金) 08:25:51.33ID:???汚さを武器に変えたのがPHPなんだからそれでいい
file_put_contents("hoge.html", file_get_contents($url))
をJavaでやろうと思ったら何十行かかるよ?
0240nobodyさん
2013/02/15(金) 10:34:41.34ID:???それなのに、UTCまともに扱えない T.T
0241nobodyさん
2013/02/15(金) 15:18:26.03ID:vEvAUdrY【OS名】CentOS 5.8
【PHPのバージョン】5.1.6
【連携ソフトウェア】PostgreSQL Apache
【質問内容】
mail関数(またはmb_send_mail)にてメールの送信を行なっているのですが、
DBから取得した(UTF-8の)From, Toのマルチバイト文字が文字化けして困っています。
mb_send_mailの時は、mb_internal_encoding やら使ってみましたが、本文、タイトルは化けないものの、
From, Toで化けます。
どこかのブログか何かでmailの方がよろしいと書かれていたので、mb* はやめてmailにして、
こちらも8bit, charset=UTF-8 等のヘッダ追加してみたものの、今度はSubject, From, Toの3つが化けるようになってしまいました。
半角カナも含めたことを考慮して、UTF-8ソースのPHP+DB情報から文字化けしないメールを送信するには
どういった所を詰めて行くべきかご教示よろしくお願いします。
0242241
2013/02/15(金) 16:27:27.87ID:vEvAUdrY例えば "山田太郎 <[email protected]>" というFromまたはToがあった場合、
まとめて mb_encode_mimeheader() でくくるとメール送信出来ませんが、マルチバイト文字の部分だけを処理すると送れます。
これは何かしらの処理でマルチバイト文字を検出してそこのみを分けて処理しなければならないということでしょうか?
具体的な対策はあるのでしょうか・・・。
また、mb_encode_mimeheader() を使用して成功した場合、Fromの最後に
@localhost.localdomain
という文字列が付加されてしまいます。これも調べては居ますが、解決策が見つからないです。。
0243nobodyさん
2013/02/15(金) 17:22:06.25ID:???mb_internal_encoding("utf-8"); と、渡す文字列のエンコードを指定しておく必要があります。
また、 メールアドレスまで全部エンコードすると、 アンダーバーを 誤変換するバグがあるために
メールアドレスとは認識できないアドレス になってしまうために
サーバー上で このへんなアドレスはローカル部だなと認識されて、後に @ocalhost.localdomainをつけられてしまいます。
分けて処理したあとでくっつけてください。
0244nobodyさん
2013/02/15(金) 21:50:53.12ID:6aMa7vPDどういうコード(正規表現)を書けばいいでしょうか?
$access_date = "2013-02-15 17:44:48"; ・・・(A)
phpで取得したタイムスタンプ日付を元にMySQLに登録しようとしています。
0245nobodyさん
2013/02/15(金) 21:55:24.26ID:???時刻を取得しているコードを書いてみなよ
それが答えでしょうに・・・
>phpで取得したタイムスタンプ日付を元にMySQLに登録しようとしています。
MySQLのTIMESTAMP型を使わない理由はあるのか?
0246nobodyさん
2013/02/15(金) 22:56:01.55ID:???正規表現を使うという方法はなくは無いけど、(分解してmaketime)
タイムスタンプからその文字列に変換するのに正規表現は使えない。
0248nobodyさん
2013/02/16(土) 01:10:52.21ID:???0251nobodyさん
2013/02/17(日) 21:28:39.30ID:???0252nobodyさん
2013/02/17(日) 22:00:36.09ID:???windowsはちょっと難しいけど
0253nobodyさん
2013/02/17(日) 22:17:01.79ID:???問題は設定だ
0254nobodyさん
2013/02/18(月) 15:23:55.22ID:???リポジトリ作ってそこで管理するのが普通じゃないか
0255nobodyさん
2013/02/18(月) 15:35:44.51ID:???0256nobodyさん
2013/02/18(月) 16:28:41.34ID:cHGT1W3pけーんーかすんなよーww
せんせいよぶぞー?ww
0258nobodyさん
2013/02/18(月) 16:57:46.90ID:???0259nobodyさん
2013/02/18(月) 16:58:20.93ID:???0260nobodyさん
2013/02/18(月) 18:23:39.51ID:cHGT1W3pお前はなにやっても駄目だな死ねクズ
0261nobodyさん
2013/02/18(月) 18:28:49.66ID:kMNLzjF9a$にマッチしてほしいのにaだけにもマッチしてしまいます
原因と解決方法を教えていただけたらと思います
よろしくお願いします
0262nobodyさん
2013/02/18(月) 18:40:23.28ID:???0263nobodyさん
2013/02/18(月) 18:47:52.06ID:???0264nobodyさん
2013/02/18(月) 18:51:50.03ID:kMNLzjF9ダブルクオートとシングルクオートの違いについて調べてこなきゃ・・・
今まで7の位置まで手を伸ばすのが面倒で両者に違いがあるって知らなかったから全部ダブルクオートにしてた・・・
ありがとうございました
0265nobodyさん
2013/02/18(月) 18:59:59.08ID:kMNLzjF9ダブルクオートとシングルクオートでは変数展開するしないの違いがあるみたいですが
おかしな動作しないでそのまんましてほしかったらシングルクオート使うようにします・・
0266nobodyさん
2013/02/18(月) 19:07:53.62ID:???US配列にすると日本語配列で言うところの:の位置に
シングルクォート(Shiftでダブルクォート)があるから近くてよいよ。
0267nobodyさん
2013/02/18(月) 21:59:37.94ID:???それを踏襲したMSはもっと糞
0268nobodyさん
2013/02/18(月) 22:55:16.50ID:???0269nobodyさん
2013/02/18(月) 23:58:56.94ID:+VPdUq5+0270nobodyさん
2013/02/19(火) 09:48:25.78ID:h+hR+hx+scriptタグだけを削除しようとしてるのですが、
$domDocument = new DOMDocument();
$domDocument->loadHTML($html);
$scriptNodes = $domDocument->getElementsByTagName('script');
$scriptNodesLength = $scriptNodes->length;
for($i=0; $i<$scriptNodesLength; $i++){
$scriptNode = $scriptNodes->item($i);
if($scriptNode)
$domDocument->removeChild($scriptNode);
}
このようにすると、
removeChild()するタイミングで、
Warning: DOMNode::removeChild(): Not Found Error
と怒られます。
var_dump($scriptNode);は、ちゃんとobject(DOMElement)として存在しており、
$scriptNodesLengthの数もサンプルでは、11個ありました。
これは何故でしょうか?また解決するにはどうすればいいのでしょうか。
phpバージョンは、PHP 5.4.6-1です。宜しくお願いします。
0271nobodyさん
2013/02/19(火) 10:06:51.95ID:???0272nobodyさん
2013/02/19(火) 10:12:58.87ID:???あるいは$iを-1するか。
0273nobodyさん
2013/02/19(火) 10:22:39.06ID:???とかね
0274270
2013/02/19(火) 11:02:04.88ID:h+hR+hx+ありがとうございます!
無事消せました。
0276nobodyさん
2013/02/19(火) 23:13:02.33ID:FekNP0pE<div id=test>
<li></li>
</div>
があるときli要素にテキストを追加したいんですが
$doc = new DOMDocument();
$doc -> loadHTMLFile("aaa.php");
$div = $doc -> getElementById("test");
このあと$divの子ノードの取り方がわかりません。
誰かわかる方よろしくお願いします。
0277nobodyさん
2013/02/19(火) 23:29:40.43ID:ulEaCfXJ【PHPのバージョン】5.3
【連携ソフトウェア】なし
【質問内容】
フォームでのファイルアップロードでtmp_nameに何も入ってません。
で、php.ini.defaultを
post_max_size=8M
upload_max_filesize=20M
memory_limit = 128Mにしたんですけどやっぱりtmp_nameに何も入ってません。
だいたいデフォの2M以上をうpできないみたいですがどうすれば2M以上をうp出来るようになりますかね??
0278nobodyさん
2013/02/19(火) 23:36:33.93ID:???$doc = new DOMDocument();
>>276
$doc->loadHTML($html);
$div = $doc->getElementById("test");
foreach($div->childNodes as $child)
if($child->tagName == "li")
$child->nodeValue="xxx";
echo $doc->saveHtml();
0279nobodyさん
2013/02/19(火) 23:45:54.89ID:???>>277
php.ini.defaultは
普通は php.iniにコピーしてそっちを直して使ったりします。
php.ini.defaultを使うようにされていますか?
0280nobodyさん
2013/02/19(火) 23:58:08.45ID:ulEaCfXJすみませんそこら辺もよくわかっていないんですがこれは拡張子を書き直して使わなきゃ効果ないモノですかね??defaultをつけたままで効果あるか調べる方法もちとコッチはわからない感じなんですが、、、
0281nobodyさん
2013/02/20(水) 00:04:21.93ID:???0282nobodyさん
2013/02/20(水) 00:17:57.63ID:7iZcbbKn0283nobodyさん
2013/02/20(水) 00:42:10.93ID:8o8x9Daiありがとうございます!
ですがすごく申し訳ないんですが本当は
<div id=test>
<ul>
<li></li>
</ul>
</div>
のときのli要素にテキストを追加したいって書くはずだったんですが間違えて
ul要素を抜かして書いちゃいました…
よければul要素の取り方を教えていただけませんか?
できればforeachを使わずに直接指定して要素を取得することはできないでしょうか?
0284nobodyさん
2013/02/20(水) 01:38:13.30ID:???$div = $doc->getElementById("test");
$child = $div->childNodes->item(0);
$child->childNodes->item(0)->nodeValue="xxx";
0285nobodyさん
2013/02/20(水) 09:00:21.05ID:8o8x9Daiわざわざすみません、ありがとうございます!
0286nobodyさん
2013/02/20(水) 13:53:22.67ID:???大丈夫?
0288nobodyさん
2013/02/20(水) 14:36:19.45ID:???ためになる役立つ質問はここでするわけにいかない
0289nobodyさん
2013/02/20(水) 19:03:25.42ID:ZID6ZaiF$child = $div->childNodes->item(0);
の、「 -> 」 これってどういう意味ですか?「 -> 」で検索して調べようと思ったのですがヒットせず。
0290nobodyさん
2013/02/20(水) 19:09:15.36ID:???0291nobodyさん
2013/02/20(水) 19:09:41.02ID:oQXddoKmこれまで何となく独学で書いていて、文字列内に変数を置く場合
echo "My name is " . $name . "!!<br />";
なんて風にしてました
独習PHPなんて本を買ったところ
echo "My name is {$name} !! <br />";
のような記述でしたが、現場の皆様方はどのように書かれる場合が多いのでしょうか
”ダブルクォーテーションもしくは’シングルクォーテーション、どちらが主に使われるもんでしょうか
0292nobodyさん
2013/02/20(水) 20:14:52.96ID:???としますね。
" は 変数展開する手間が無駄に掛かってるのでちょびっと遅いんですよ。
0294nobodyさん
2013/02/20(水) 21:39:30.00ID:???文字リテラル(char型)はシングル、文字列リテラル(string型)はダブルになってしまう
シングルのほうが速度は速いってのはわかってるけどパフォーマンス云々言うほどでもない微々たるものだし
自由にコーディングできればいいんじゃないでしょーか
0295nobodyさん
2013/02/20(水) 22:10:53.53ID:???0296nobodyさん
2013/02/20(水) 22:35:37.80ID:???と言っても差はないも同然だが、俺はダブルを使っている
http://d.hatena.ne.jp/toriimiyukki/20110224/1298552248
0297nobodyさん
2013/02/20(水) 22:43:41.15ID:???0298nobodyさん
2013/02/20(水) 23:04:25.51ID:???0299nobodyさん
2013/02/20(水) 23:16:35.52ID:???0302nobodyさん
2013/02/21(木) 08:53:47.10ID:???0303nobodyさん
2013/02/21(木) 10:55:21.60ID:???0304291
2013/02/21(木) 11:40:16.44ID:???どっちのパターンもあるようですね
ただ、現場だとチームで作っていくときは、きっと皆さんそろえますよね
そういうときにどっちに落ち着くのかと聞いてみたのですが
’が基本って方が多いですね
なんとなく、”はShiftと2がキーが近くて打ちやすく、
’は左手でShift右手7を押すので押しにくいなーとも
そんな理由で ” なんてだめですよねw
0305nobodyさん
2013/02/21(木) 12:13:21.77ID:???0306nobodyさん
2013/02/21(木) 12:39:48.79ID:???という話か
0307nobodyさん
2013/02/21(木) 13:57:06.74ID:???ttp://ameblo.jp/nikko-inma/entry-11122429825.html
>数々の糞仕様の発見で驚きを提供してくれる人気プログラム言語PHP
ttp://usamimi.info/~mirrorhenkan/2ch/ruby/other/read.php/1181304333/
>「初心者にもWebアプリケーションが書ける」という幻想を与えることで、 バグだらけで、メンテナンス性が低く、
>セキュリティ問題を抱えた Webアプリケーションを乱造することになっているのではないだろうか。
ttp://qarc.info/qa/show-9478-909.html
>PHPとか言語仕様が糞なうえにセキュリティホール付でリリースするからマジないわ。
ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
PHPは順位を維持しているものの-0.16%、
一方のRubyはというとPHPより順位は低いものの+0.34%、
このままいけば必ず逆転する
ttp://www.anlyznews.com/2011/03/phper13.html
>5. PHPなどのスクリプト言語しか知らないのに、プログラミング言語の優劣を語る。
>6. PHPの遅さを知らないのに「最近のマシンは速いからプログラミング言語に速度は求められていない」と言い切る。
>11. 仕様が曖昧で急激に変化するPHPで、テストファーストとか言い出す。
>13. ブログで自らの無知をさらけ出す。
ttp://creeper.no-ip.info/adiary/adiary.php?20111122
>■ 変数名を間違えると新しい変数が作られる
>■ 文字列の変数展開がクソ
0308nobodyさん
2013/02/21(木) 14:41:51.52ID:???言語仕様だけしか見えてないんだよお前らはさ・・・
wordpressにとって代わるものをrubyで作れよ?
phpmyadminにとって代わるものをrubyで作れよ?
0309nobodyさん
2013/02/21(木) 14:55:02.10ID:???rubyもrails流行ったときに何か汎用アプリ作ればよかったのにな
0310nobodyさん
2013/02/21(木) 14:59:10.47ID:???入ってない鯖の方が少数派だと思うわ
0311nobodyさん
2013/02/21(木) 16:35:00.71ID:???最近のサーバはphpmyadminが動かないのか・・・mysql自体使わんのかもしれんがな
0312nobodyさん
2013/02/21(木) 16:39:22.82ID:???0314nobodyさん
2013/02/21(木) 22:00:16.87ID:???コーディング規約は自分で好きなの選びなよ
function hogeHoge() {
return "hoge";
}
function hoge_hoge()
{
return 'hoge';
}
0315nobodyさん
2013/02/22(金) 03:34:27.74ID:???http://196.168.132.21/test
以下のようなテストをしたのですが、
$myRoot = 'http://196.168.132.21/';
$sub = trim( $sub, $myRoot );
echo $sub;
とすると、
est
となって頭文字 t が取得(表示)できませんがなぜでしょうか?
以下のように試しに $myRootを末尾を一文字ずつ削ってみたのですが、
$myRoot = 'http://196.168.132.21';
$sub = trim( $sub, $myRoot );
出力結果→est
$myRoot = 'http://196.168.132.2';
$sub = trim( $sub, $myRoot );
出力結果→est
$myRoot = 'http://196.168.132.';
$sub = trim( $sub, $myRoot );
出力結果→est
よろしくお願いします。
0316nobodyさん
2013/02/22(金) 04:06:46.88ID:???parse_urlとかexplodeとか使えばやろうとしてることはすぐできる
0317nobodyさん
2013/02/22(金) 04:19:03.42ID:???trimの第二引数はそういうもんじゃないので
http://php.net/manual/ja/function.trim.php
> string trim ( string $str [, string $charlist ] )
> charlistパラメータにより、削除する 文字を指定することも可能です。削除したい全ての文字をリストに してください。
って書いてあるでしょ、削除したい文字列じゃなくて、削除したい文字のリストです。
なのでtが消える。
0319nobodyさん
2013/02/22(金) 04:58:19.09ID:???消したいだけなら置換すりゃいいじゃん
0320nobodyさん
2013/02/22(金) 05:31:26.61ID:???間違いなくもっとスマートな書き方があるとは思いますが思考が停まりつつあります。。
$myRoot = 'http://196.168.132.21/test';
$last = end(explode('/', $myRoot, 4));
echo $last;
あと最初の質問の結果についてですが
目的と違うということは承知しましたが
なぜ条件を変えてもtを失うという
同じ結果なのかさっぱり理解できません
今後のためにも理解したいのですが。。
0321nobodyさん
2013/02/22(金) 05:50:58.22ID:???あと。。とかやめろ
0322nobodyさん
2013/02/22(金) 05:56:33.26ID:???あんたが書いたソースには全部httpって文字があるだろ?
んで、httpって文字の中には、tって字が入ってるだろ?
trim関数の第2パラメータの使い方は、公式サイトの例題をよーく読めば分かるはず
0323nobodyさん
2013/02/22(金) 06:42:34.69ID:???どうもありがとうございました。
0325nobodyさん
2013/02/22(金) 12:24:05.33ID:???予めドメイン名が取得できない場合でもできるから挙げたけど
質問者の挙げた条件ならsubstrの方が速いと思います
0326nobodyさん
2013/02/22(金) 12:26:10.01ID:5i3tH9Kw関数群を見た限りだと該当するものがありませんでした
0327326
2013/02/22(金) 12:31:22.38ID:5i3tH9Kw実際に値を入れて実行したときのSQLが知りたいのです
0328nobodyさん
2013/02/22(金) 12:35:50.66ID:???何をやろうとしてそれが必要になったのか教えてくれれば別のやり方を教えられるかも
0329326
2013/02/22(金) 12:53:59.21ID:5i3tH9Kwエラー内容と、エラー時の実行クエリを表示させるようにしたいです
デバッグようっす
0330nobodyさん
2013/02/22(金) 12:54:56.29ID:???0331nobodyさん
2013/02/22(金) 13:06:36.97ID:???そのログ見よう。
0332nobodyさん
2013/02/22(金) 14:44:22.72ID:???まともな開発者だったらありえない
0336nobodyさん
2013/02/22(金) 16:48:37.84ID:???■ このスレッドは過去ログ倉庫に格納されています