トップページ⇒php
1001コメント342KB

【PHP】下らねぇ質問はID出して書き込みやがれ 88

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/09/16(水) 09:39:37ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 87
http://pc11.2ch.net/test/read.cgi/php/1251447028/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0051nobodyさん2009/09/17(木) 17:37:31ID:???
10年前ならADSLが出てきたぐらいだったから普通にインターネッツで調べられるわな
0052nobodyさん2009/09/17(木) 17:41:42ID:9yQ2lneq
PHPでTCPの3ウェイハンドシェイクをやりたいのですが
どうやればいいですか?
socket_createのSOCK_RAWでやればいいと思うのですが
それ以降どうやればいいのか分かりません
0053nobodyさん2009/09/17(木) 17:44:39ID:???
>>47
こちらでは、なんのエラーもなく
実行されているが?
0054nobodyさん2009/09/17(木) 18:04:43ID:???
>>50
ネットやっててWeb制作してれば自然とphpという文字が目に入ってくるからな。

PHP/FIとかの時代はperl触ってたわ
HTML埋め込み型ってのにひかれてPHPはじめた
0055nobodyさん2009/09/17(木) 18:45:23ID:???
>>46
何か、たまに取得できないな〜、
って思って調べていた所でした。

またまた助かっちゃいました。
ありがとうございました!!
0056nobodyさん2009/09/17(木) 20:24:04ID:???
>>40に同じく
サイト作ってたら必要になって、って感じ
0057nobodyさん2009/09/17(木) 20:27:16ID:???
>>54
>HTML埋め込み型ってのにひかれてPHPはじめた

同じだわ
学生の頃、まだblogとか無いときに、HTML/CSSを勉強して、次は動的ページにとなった時に
Perlは正直サンプルのソースが懲りすぎてて俺にはわかりにくくて挫折した。
そんな時にHTMLに埋め込む形で作成できるphpと出会い、簡単に動的ページ作れて感動した。
0058282009/09/17(木) 22:13:50ID:h/ZKc5z/
>>41
意図した結果になりました。
pack()は試してたんですが、dechex()も使うとは気付きませんでした・・・
早々にレスを頂けて助かりました。
0059nobodyさん2009/09/17(木) 22:31:31ID:???
皆コツコツとPHP勉強してんだな・・・
0060nobodyさん2009/09/17(木) 22:47:28ID:???
そして次第にHTML埋め込み型は可読性に欠けてメンテナンス性に優れないため、
結局分離して作っていく流れになるんだよな。
0061nobodyさん2009/09/17(木) 23:01:05ID:???
案件によるのでは
0062nobodyさん2009/09/17(木) 23:47:27ID:???
構文よりOOPやらのほうが厄介
0063nobodyさん2009/09/17(木) 23:48:19ID:???
フレームワークが使えるようになれば問題ないさ
0064nobodyさん2009/09/17(木) 23:57:28ID:???
OOPなら、ある程度PHPのシステム作っていけば、多少は自然と出来るようになるんじゃないかな。
作ってたシステムが大きくなりすぎれば、否応無くOOP的なプログラムを書かざる得ない状況になる
0065nobodyさん2009/09/17(木) 23:59:19ID:???
cakeとかZFとかはデザイナには無理
0066nobodyさん2009/09/18(金) 00:12:43ID:???
そりゃプログラマじゃないから全てフレームワークを理解するのは無理だろう
だいたいデザイナってデザインが仕事だしまともな会社ならそれ以上のことはさせられない
まともじゃない会社でもview部分だけいじらされるだけなんじゃね
0067nobodyさん2009/09/18(金) 00:15:07ID:???
「PHPフレームワークで生産性が上がった」という場合、本当に重要なのはMVC構造の導入だったりする事が多いからな。
0068nobodyさん2009/09/18(金) 00:28:21ID:???
それがフレームワークの一番の機能では?
0069nobodyさん2009/09/18(金) 00:36:35ID:???
♪モーデル、ヴュー、コントローラー
0070nobodyさん2009/09/18(金) 04:12:01ID:yZl5pJrO
ある文字列が全部半角かどうかを調べるにはどうしたらいいですか?
0071nobodyさん2009/09/18(金) 05:58:42ID:???
半角カナのこと?
それとも英数字のこと?
0072nobodyさん2009/09/18(金) 06:11:30ID:???
英数字です
外国からSPAMされてるので・・
0073nobodyさん2009/09/18(金) 06:44:23ID:???
$string = "This is a pen.";
if( preg_match('/^[\x20-\x7f]+$/',$string) == 1){
    echo "日本語でおk";
}
文字列$stringの最初から最後までが\x00-\x7f(ASCIIコード)の範囲内のみであれば日本語でおkと表示する
文字列には改行などの制御文字が入ることが予想されるので16進で書いた方がスマートで分かりやすいかな
0074nobodyさん2009/09/18(金) 06:44:50ID:???
それじゃこれ参考に
http://e-words.jp/p/r-ascii.html

制御文字も含めるなら\x00-\x7f
スペースを含めた図形文字だけなら\x20-\x7e
図形文字のみなら\x21-\x7e

実証コード
<?php
$str = "<a href=\"mailto:[email protected]\">mail me!</a>";
if (preg_match('/^[\x00-\x7f]+$/', $str)) {
echo "spam";
}
?>
0075nobodyさん2009/09/18(金) 06:45:30ID:???
盛大にかぶっtt
0076nobodyさん2009/09/18(金) 06:47:12ID:???
全く同じコードw
0077nobodyさん2009/09/18(金) 07:07:13ID:???
ワロタ

条件式で、==使うのと使わないのとで遅い早いとかあるんだっけというの
だけふと気になった
0078nobodyさん2009/09/18(金) 08:46:55ID:???
ttp://www.youtube.com/watch?v=YYvOGPMLVDo
0079nobodyさん2009/09/18(金) 08:52:27ID:???
CVSリポジトリやらグループ開発したことない初心者が集って
グループ開発を体験してみようなんていう2chでのプロジェクトってないのかね
SourceForge当たり使って誰でも参加可能な感じで
0080nobodyさん2009/09/18(金) 10:46:36ID:???
初心者以外の誰得
君が作ればいいじゃん
0081nobodyさん2009/09/18(金) 10:57:29ID:???
まずはsvnとか使わずにグループ開発させて、デグれさせてから
svn導入すると感動すると思うw
0082nobodyさん2009/09/18(金) 11:04:16ID:???
>>80
SEは求めすぎだとしてもプロジェクトリーダー経験者ぐらいじゃないと
段取りがわからなくてまとめられないと思うから自分じゃ無理なんだわ
昔はなんかそういうスレあった気がするけどもうやってないんだろうね
0083nobodyさん2009/09/18(金) 11:06:58ID:???
> 自分じゃ無理なんだわ
スレチな話題を平気な面して書き込むぐらいだから言わなくても分かるよ
0084nobodyさん2009/09/18(金) 11:07:27ID:???
やらなきゃ覚えないよ
0085nobodyさん2009/09/18(金) 11:11:13ID:???
>>43
やってみましたが、確かにないね。
0086nobodyさん2009/09/18(金) 11:14:36ID:???
別にスレチじゃないんだけどな
0087nobodyさん2009/09/18(金) 11:18:14ID:bD/6aRH+
ファイルの種類に合わせて処理を分岐させたいと思い、
mime_content_typeでファイルの情報を調べようとしたら
Call to undefined function mime_content_type()
というエラーが出ました。

これはmime_content_type関数が無いという意味ですよね?
こういう場合どうしたらいいのでしょうか?PHPは5.2.5です。
0088nobodyさん2009/09/18(金) 11:19:50ID:???
お前らもサッサとコンストラクタをガンダムで例えて表現しろよ!
どっかのスレの質問者がお怒りだぞ!
0089nobodyさん2009/09/18(金) 11:21:07ID:???
>>87
mime_content_typeで検索すると
http://www.syuhari.jp/blog/archives/770
ってのがあったけど

> PHP マニュアルには mime_content_type 関数は非推奨で、PECL の Fileinfo を使用するように書かれている。
だそうだ。
0090nobodyさん2009/09/18(金) 11:32:13ID:???
答えるのはいいがなんでいい加減なソースを出すんだ
公式マニュアルに誘導してやれよ
http://jp.php.net/manual/ja/book.mime-magic.php
0091nobodyさん2009/09/18(金) 11:41:40ID:???
>>90
そうだな
すまんかった

fileコマンドを使った代替関数が載ってたから、PECL使うより敷居が低かろうと思ってな
0092nobodyさん2009/09/18(金) 12:00:56ID:+5AwuBV9
xamppに入ってるphp.iniと本家からダウンロードしたphpのphp.ini.recommentedみたいな名前の設定ファイルで
設定が異なる部分ってどこでしょうか?
xamppを導入したいのですがなるべくphp.ini.recommentedの設定にあわせたいのです
0093nobodyさん2009/09/18(金) 12:02:59ID:???
自分でdiff取った方が早いとおもうぞ
0094872009/09/18(金) 12:05:41ID:bD/6aRH+
公式にはPECLのFileinfoを使えとあり、現在の環境にインストールを
試みたのですが、なぜか上手く行きません・・。
WindowsのPHPが原因かも知れませんが、ネットで調べると
同じようにインストールできない人がいます。

それで>>89さんの方法が手っ取り早いかと思い、
ソースをコピーして実行しても何も出力されません。
おそらくWindows環境なのでexecのfileコマンドが動作してないと思います。

と言うわけで、自分の環境に問題がありそうなので環境を見直します。
>>89-90さん、ありがとうございました
0095nobodyさん2009/09/18(金) 13:14:33ID:???
index.php3
ナツカシス
0096nobodyさん2009/09/18(金) 13:15:26ID:???
>>92分かる方お願いします
0097nobodyさん2009/09/18(金) 13:36:39ID:???
>>96
だからdiffを(ry

xampp落としてきてdiffとって見たが、差分多すぎて書ききれないぞ?
ざっと見た限り、xmappはメモリ使用量とか多めになってるみたいだな
とりあえず一部だけ抜粋な

※()内がphp.ini.recommented
max_execution_time = 60 (30)
memory_limit = 128M (8M)
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED (E_ALL)
display_errors = On (Off)
display_startup_errors = On (Off)
log_errors = Off (On)
post_max_size = 128M (8M)
extension_dir = "\xampp\php\ext" ("./")
include_path = ".;\xampp\php\PEAR" (".;c:\php\includes")

で、extensionも結構違うから、xmappのphp.iniを素直に使ったほうがいい。
なるべくphp.ini.recommentedにあわせたいといっても、php.ini.recommentedの設定にしたら
動かなくなる箇所もあるからな。
やっぱり自分で差分みて一つ一つ確認するのが良い
0098nobodyさん2009/09/18(金) 14:11:46ID:???
>>97
デマ乙
本家のiniでもメモリリミット128MBに設定されてますよ
0099nobodyさん2009/09/18(金) 14:15:15ID:???
普通に公式のPHP入れればいいのでわ?
0100nobodyさん2009/09/18(金) 14:19:04ID:???
>>98
すまんかった、見てるphpが違った・・・
0101nobodyさん2009/09/18(金) 14:19:30ID:???
>>98
5.2以前と5.2とそれ以降で違うみたいだね
0102nobodyさん2009/09/18(金) 14:38:22ID:???
>>96
使うxmappのバージョン(phpのバージョン)かけよ
php5.3にはもうphp.ini.recommentedなんてないんだけど
0103nobodyさん2009/09/18(金) 15:59:23ID:???
>>73,74
ありがとうございました
0104nobodyさん2009/09/18(金) 18:35:21ID:???
>>88
コンストラクタ:合体前にコアチェンジ・ドッキング・ゴーと言うタイミングで
         アムロがやっている何か
デコンストラクタ:こんなに嬉しいことはに・・・というタイミングで、アムロが
         やっている何か
0105nobodyさん2009/09/18(金) 19:33:17ID:dQen4OfJ
checkdnsrr等を実行した時、相手のDNSが落ちていた時って
もしかしてずっと反応が返ってこないのでしょうか?
Net::DNSを使えばタイムアウトを設定できるそうですが
そっちを使った方が無難ですか?
0106nobodyさん2009/09/18(金) 20:37:22ID:???
>>105
ソースを見るとres_searchを呼び出すようなので、実行するサーバーの環境変数やresolv.confの設定とかに依存するんじゃないだろうか
Net::DNSでタイムアウトを指定でき、かつ実際に効果があるなら、それを使うのが無難だし環境に左右されなくて安全なんじゃないかと。
0107nobodyさん2009/09/18(金) 20:56:24ID:???
ありがとうございます。
http://archives.free.net.ph/message/20080922.180611.825aa7c3.ja.html
これを見ると、
1.putenvを使えばcheckdnsrrでもタイムアウト時間を設定できる
2.Net::DNSでも、同じルーチンを使ってる
っぽいですのでputenvで何とかなるかな?
0108nobodyさん2009/09/18(金) 22:57:31ID:???
Net::DNSは中でresofv.conf関係の環境変数を読み込んでるだけで
独自にソケット通信してるみたいですね
0109nobodyさん2009/09/19(土) 11:33:21ID:cyMxg+G4
Vista homeエディション 32bitにApache2.0を入れてます
PHP5.3について質問なんですがスレッドセーフとノースレッドセーフはどちらを使えばいいのでしょうか?
Windows版Apacheはスレッドセーフって対応してませんよね?
0110nobodyさん2009/09/19(土) 16:26:43ID:???
失礼致します。

あるウェブサービスAPIを取得して、XSLT処理をしたあと、XML出力するという
PHPのコードを書いています。

このコード自体問題なく動いているのですが、問題はこのXMLのある文字列を
置換したいのですが、その場合のstr_replaceの書き方がわかりません。

XSLT処理後XMLが格納されている変数 = $result
置き換えたい文字列 = hiropon
置き換え後の文字列 = <iframe src="xxxx" border="0"></iframe>
xxxにはURLが入ります。

そのまんま、str_replace('hiropon',置き換え後の文字列,$result)でやっても
うまくいかんのです。

変数にHTMLのタグを丸ごとつっこんでも駄目でした。どうしたらいいでしょうか?
0111nobodyさん2009/09/19(土) 16:47:51ID:???
>>110
マルチ乙
どっちかにしろよ
0112nobodyさん2009/09/19(土) 16:52:32ID:???
板を超えたマルチとは・・・
http://pc11.2ch.net/test/read.cgi/hp/1251728499/
答えなくていいよ
01131102009/09/19(土) 16:56:25ID:???
>>111-112
あの・・・・ 俺、マルチしてないんですが・・・

しかも、ウェブサイトつくるためのXMLじゃないんですが・・・
0114nobodyさん2009/09/19(土) 17:00:35ID:???
>>113
誰が「ウェブサイトつくるため」と言ってるんだ?
01151102009/09/19(土) 17:04:42ID:???
>>114
>>112の板そのものが、ウェブ製作となっているから。

そもそも、PHPからXMLで出力後、アプリケーションで使う為のXMLに
コードを入れるのが目的なのに、なんでweb製作板に張ってあるのか
それすら、自分のものじゃないし。

それでマルチって言われても迷惑なんですよ。
0116nobodyさん2009/09/19(土) 17:06:58ID:???
>>115

http://pc11.2ch.net/test/read.cgi/php/1252590753/151

こっちはどうなんだよ?
0117nobodyさん2009/09/19(土) 17:08:38ID:???
>>115
「どっかの誰かが自分の書き込みをコピペして他スレに勝手に貼り付けた
自分は関係無い、迷惑だ」

こう言いたいのか?
0118nobodyさん2009/09/19(土) 17:16:39ID:???
ID出してないし。
01191102009/09/19(土) 20:39:28ID:???
>>117
>>116
そっちも知らない。

俺はここにしか投下していない。すごく迷惑だ。

真面目に質問しているのに。だいたい、PHPのコードを書いているって
書いてあるのに、他のスレにコピペしているどっかの馬鹿は本当に迷惑
だ。
0120nobodyさん2009/09/19(土) 20:57:28ID:???
>>119
スレタイとテンプレ無視して真面目に質問とは笑える
0121nobodyさん2009/09/19(土) 21:26:39ID:???
まあ、マルチでなくても、ちゃんとID出してたとしても、 いいはず としか。
0122nobodyさん2009/09/19(土) 21:29:13ID:???
大体、ちゃんと関数リファレンス読めば、あっさり解決することだし。
0123nobodyさん2009/09/19(土) 21:32:34ID:???
運営はipアドレスわかってるからな。
マルチかどうかもバレバレ。
0124nobodyさん2009/09/19(土) 21:33:33ID:???
id出さない奴って態度がでかいよな
0125nobodyさん2009/09/19(土) 21:40:09ID:???
ID出さない奴を相手にするなって
本人かどうかも判らんのだから構うだけ無駄だろう
0126nobodyさん2009/09/19(土) 21:51:44ID:???
>>110
真面目にここみてる俺からしたらルールも守れない質問者は激しく迷惑
0127nobodyさん2009/09/19(土) 22:23:06ID:???
ていうか前例がないよな
他人を煽るためにわざわざ他のスレにマルチ装って投稿するって
0128nobodyさん2009/09/19(土) 22:30:44ID:???
反応するな
0129nobodyさん2009/09/19(土) 23:10:30ID:???
>>122
ありがとうございました。

htmlspecialchars関数で解決できました。
0130nobodyさん2009/09/20(日) 01:12:48ID:mauzFl2w
質問。
Mysqlに接続されているかされていないかって簡単に判断する方法はありませんか?
mysql_real_escape_stringあたりがたまにエラー出してて気になるので、
ちゃんとこの関数が使えるかどうかをチェックするための処理がほしいと思っています。
0131nobodyさん2009/09/20(日) 01:21:01ID:???
その関数、mysql接続必要ないだろ、普通に考えたら
3行くらいの、DB接続しないでmysql_real_escape_string呼ぶスクリプト書いて確認してみれ?
0132nobodyさん2009/09/20(日) 01:33:46ID:???
>>131
http://phpspot.net/php/man/php/function.mysql-real-escape-string.html
接続なしで出来るのであれば、ここに質問なんてしませんよ
0133nobodyさん2009/09/20(日) 02:19:52ID:???
>131
>131
>131

>130
mysql_connectした時点で確認しろ。
0134nobodyさん2009/09/20(日) 07:37:56ID:???
律儀にmysql_close呼んでたり?
0135nobodyさん2009/09/20(日) 10:17:42ID:???
>>130
mysql_connect 時にリンクが確立されているのに、
途中でmysql_real_escape_stringが使えなくなるって事?

本来なら途中で使えなくなる原因を特定するべきだけど、
とりあえず、mysql_stat あたりで確認してから
mysql_real_escape_string実行するようなfunction作っちゃえば?
0136nobodyさん2009/09/20(日) 11:32:15ID:???
DBの関数は全部返り値チェックしようよ。
01371302009/09/20(日) 11:52:17ID:???
mysql_statですね。分かりました。
0138nobodyさん2009/09/20(日) 12:07:00ID:???
a, b, c, d, eのキーを持つ配列からa, b, eだけ抽出するようなことって、
ひとつひとつアクセスする以外に方法はありませんか?
0139nobodyさん2009/09/20(日) 12:09:55ID:???
どういう条件で抽出するんだよ
あとスレタイ
0140nobodyさん2009/09/20(日) 12:12:08ID:pS/nR+SK
すみません
a, b, c, d, eをキーに持つ配列xがあったとして、
x->foo(array('a', 'b', 'e'))
みたいにしてa, b, eをキーに持つ配列を得ようとしてるんです
0141nobodyさん2009/09/20(日) 12:30:14ID:???
標準関数には無い
0142nobodyさん2009/09/20(日) 12:48:08ID:???
array_intersect_key(x , array('a', 'b', 'e') )
0143nobodyさん2009/09/20(日) 13:11:52ID:???
>>141
標準関数にあるなしなんて聞いてねえよ
てめえみてえな初心者回答者はすっこんでろ
0144nobodyさん2009/09/20(日) 13:13:26ID:???
>>138
array_mapで再帰的に処理する
0145nobodyさん2009/09/20(日) 13:15:07ID:???
>>142
第二引数はキーで比較だから、array_flip入れないとだめじゃね?
0146nobodyさん2009/09/20(日) 13:21:44ID:b7b/LRof
hetemlっていうレンタルサーバでhtmlをphpとして実行したいんですけど、
.htaccessに
AddType application/x-httpd-php .html
と書いて、htmlへアクセスすると、ブラウザには表示されず、
htmlがダウンロードされてしまいます(phpもそのまま見えてしまう)
どっか設定見落としありますか?
0147nobodyさん2009/09/20(日) 13:46:22ID:???
>>146
サーバー屋さんに聞くべきことだね。
0148nobodyさん2009/09/20(日) 14:22:50ID:???
>>147
ありがとう、自分で契約してる鯖じゃないんで、直接聞くのも時間かかるのでココできいたのでした…
あきらめて鯖屋さん経由をとります
0149nobodyさん2009/09/20(日) 17:42:12ID:61IiHty0
超不思議なんですけど

<?php
class foo {
var $bar = 'I am bar.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo "{$foo->$bar}\n";
echo "{$foo->$baz[1]}\n";
//echo "{$baz[1]}\n";
?>

で、なんで

I am bar.
I am bar.

と表示されるんですか?
一つ目は分かるんですけど、二つ目はてっきりbarだけが表示されると思ったんですけど…
(echo "{$baz[1]}\n"; にすると bar だけになりました)。
ていうか、$foo->$baz[1]って呼んでますけど、$baz[1]ってclass fooのメンバーじゃないんじゃないですか?
何が起こっているのかさっぱり分かりません。
どなたか説明してください。
0150nobodyさん2009/09/20(日) 17:55:56ID:???
>>149

$baz[1] は 'bar'

0151nobodyさん2009/09/20(日) 17:59:36ID:???
あらら。

つまり
$foo->$baz[1] は $foo->bar って解釈される。

$bar = 'bar'
$foo->$bar

が理解できるのなら同じだと思うけどー。
■ このスレッドは過去ログ倉庫に格納されています