【PHP】下らねぇ質問はID出して書き込みやがれ 88
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/09/16(水) 09:39:37ID:???過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0016nobodyさん
2009/09/16(水) 16:53:16ID:lLF0irRw0017nobodyさん
2009/09/16(水) 17:14:59ID:???本当はリアルで会うと萎縮しちゃうヘタレばっかり
0018nobodyさん
2009/09/16(水) 17:20:38ID:???0020nobodyさん
2009/09/16(水) 20:57:32ID:sA/eEQSw【PHPのバージョン】PHP 5.2.9
【連携ソフトウェア】mysql
現在携帯サイトを構築中です。
DB の文字コードを UTF8 にしている関係上
mb_substitute_character('long')を使用し
絵文字を BAD+FFFF の形式に変換をして保存しています。
http://ke-tai.org/blog/2007/12/03/emoji_escape/
ページを表示時には SJIS で吐き出すため、絵文字に関しては
下記のような関数で、絵文字を復元しています。
$regex = '/BAD\\+(F[346789][0-F]{2})/e';
return preg_replace($regex, "pack('H*', $1)", $str);
mb_substitute_character('long')を使用すると
ローマ数値や丸文字も下記のように変換されてしまいます。
�@ → JIS+2D21
�T → JIS+2D35
こちらを復元する関数がわかる方はいますでしょうか?
よろしくお願いします。
0021nobodyさん
2009/09/16(水) 21:28:16ID:???DBに入れる前にsjis -> utf-8の変換をしているってことだと思うんだけど、
これをsjis-win -> utf-8にすればイケるんじゃないだろうか。
002220
2009/09/16(水) 21:47:28ID:sA/eEQSwmb_convert_encoding($str, 'UTF-8', 'SJIS-win'); とすると
別のライブラリ(toInlineCSSDoCoMo)でこけるので
ちょっと厳しいんです^^;
0023nobodyさん
2009/09/16(水) 22:08:30ID:???> toInlineCSSDoCoMo
バージョンアップしてHTML_CSS_Mobileになってるそうだけど、これでも同じかな?
普通に考えるとsjis-winを使うことになると思うんだけどな
�@や�Tのutf-8変換自体はそれでできるわけだし
HTML_CSS_Mobileの中身をチラッと見ても、shift_jisの場合はsjis-winを使っているようだし
まあ使ったことないので実際のところはわからないけども
002420
2009/09/16(水) 22:47:55ID:sA/eEQSw同じです。
HTML_CSS_Mobile だと使ってるテンプレートライブラリが
うまく動かなかったので toInlineCSSDoCoMo を使ってます。
この辺のライブラリの変更は厳しいので
JIS+2D21形式をSJISに変換する関数を探しているところです。
0025nobodyさん
2009/09/16(水) 23:01:43ID:???try{
throw new Exception($error);
} catch (Exception $e) {
echo "例外キャッチ:", $e->getMessage(), "\n";
}
例外使用時通常上記のように、try でthrowをして catchすると思うのですが、下記のように
try catchをせずに直接throwをした場合どう違いがあるのでしょうか。
public function myError($message = null)
{
throw new myException($messag);
}
0026nobodyさん
2009/09/16(水) 23:08:54ID:???その関数の呼び出し側でキャッチしなければいけなくなる。
キャッチされなかった場合、さらにその呼び出し元に遡る。ずーっと上までキャッチされるまで上っていく。
最終的に誰も例外をキャッチしなかった場合、エラーになる(確か500 Internal Server Error)。
0027nobodyさん
2009/09/17(木) 00:29:13ID:???http://jp2.php.net/manual/ja/function.set-exception-handler.php
こんなのもある
あとageと入れてもID出ないぜ
0028nobodyさん
2009/09/17(木) 05:40:12ID:h/ZKc5z/int値をバイナリで渡すような関数とかないでしょうか?
echo base64_encode( '65535');
echo base64_encode( 65535); // '65535'と同じ結果
echo base64_encode( 0xffff); // '65535'と同じ結果
echo base64_encode( "\xff\xff"); // 意図した結果
$val = 65535;
echo base64_encode( $val); // 意図してない結果
0029nobodyさん
2009/09/17(木) 06:35:22ID:9yQ2lneqcheckdnsrr($host,'mx') || checkdnsrr($host,'a');
でokですか?($hostはメールアドレスの@以降)
0030nobodyさん
2009/09/17(木) 06:36:43ID:9yQ2lneqホストの有無を調べる目的です
0031nobodyさん
2009/09/17(木) 06:55:57ID:xpaZffPp【PHPのバージョン】php5
【連携ソフトウェア】無し
【質問内容】
重みを付きランダム数値を出したいのですが、
どのようにしたら良いのでしょうか?
具体的には、1〜6の数値を、
1は40%、2は30%、3は20%
4は5%、5は3%、6は2%
の割合で取得したいのです。
アドバイスよろしくお願いします。
0032nobodyさん
2009/09/17(木) 06:59:10ID:???重み(割合)は、小まめに変更させる必要があるため、
40:30:20:5:3:2 の部分は、
変更しやすい作りであると助かります。
0033nobodyさん
2009/09/17(木) 09:27:35ID:???いいんじゃないかな
おれはdnsに問い合わせるまでもないやつをはじくために
その前に簡単に形式チェックも行ってる
当然ながら、問い合わせる先のdnsがちゃんとした結果を返すというのが前提
自分で設定したネームサーバーの場合は注意
キャッシュしている内容が既に古くなっているかもしれないとか、
dnsレコードは残っているけどサーバーが既にない、一時的に停止している
とかで通信できない可能性はあるけど、それはどうしようもないし
0034nobodyさん
2009/09/17(木) 09:36:37ID:???指定の割合で1-6の数字が含まれる文字列を作成
その文字列の中から1文字だけ取得する
何番目の文字を取得するかは乱数で決める
とかで、それらしくなるんじゃないかな
0035nobodyさん
2009/09/17(木) 09:54:23ID:???参考に
$str = "JIS+2D21JIS+2D35";
echo preg_replace_callback("/JIS\+([a-zA-Z0-9]{4})/",
create_function(
'$match',
'return mb_convert_encoding( pack("H*","1B2440".$match[1]."1B284A") ,"SJIS-win","JIS") ;'
),$str );
003631
2009/09/17(木) 10:10:18ID:???ありがとうございます。
えっと・・・・重要なポイントである
「指定の割合で1-6の数字が含まれる文字列を作成」
これの方法が見つかりません。
詳しくは調べますので、ヒントをお願いいたします。
0037nobodyさん
2009/09/17(木) 10:45:05ID:???$ratio = array(1=>40,2=>30,3=>20,4=>5,5=>3,6=>2);
$randstr="";
$randnum=0;
foreach( $ratio as $eachkey => $eachval ){
$randstr .= str_repeat($eachkey,$eachval);
$randnum += $eachval;
}
$rand = mt_rand(1,$randnum);
print substr( $randstr , $rand ,1);
0038nobodyさん
2009/09/17(木) 11:02:12ID:???自分の部屋で一人で構文やデータベース構築などやったの?
それとも会社とか学校で人に教えられながらとか、元々ほぼ設定されていたところで勉強したとか
どんな環境で勉強したの?
0040nobodyさん
2009/09/17(木) 11:35:46ID:???自分の部屋でコツコツやってたな。
学校は商学部だったしプログラムの類は一切やったこともなかった。
趣味のホームページ作りが高じてって感じかな。
深くやるつもりもなかったしネットに転がってたマンモス本を読んで基礎を学んだ。
そこから2chのこのスレ(もう4.5年前だが)で質問して色々教えてもらって、
スレ眺めながらたまに出るいい質問と回答を見ながら勉強したもんだ。
どういうわけか今じゃ基本情報なんて資格もとるほど結構はまってる。
結局今やってる仕事とは無関係で趣味の領域ではあるけどね。
0041nobodyさん
2009/09/17(木) 13:03:32ID:???よく分からんがこうか?
$val = 65535;
echo base64_encode ( pack( "H*", dechex($val) ) );
004220
2009/09/17(木) 13:19:40ID:nJam0Pemありがとうございます。ばっちり変換されました!
0043nobodyさん
2009/09/17(木) 13:21:30ID:gTpdsldOAPIキーを取得してmd5化されたブラックリストを取得してきたところまでうまくいきまして、それと任意のドメインを比較する所で質問です。
Googleの診断ページで危険と診断されるドメインをmd5()した文字列が、そのリストに含まれていないのに
http://safebrowsing.clients.google.com/safebrowsing/diagnostic?&hl=ja&site=martuz.cn
では危険と診断されています。
どなたかGoogleSafebrowsing使ってうまくいってる方いらっしゃいますでしょうか…
あと、素朴な疑問なんですがなんでGoogleがくれるブラックリストはmd5化してあるのでしょうか?
@
PHP4.4.4
CentOS
0044nobodyさん
2009/09/17(木) 14:03:27ID:???あ、あ、あ、あ、ありがとうございます。
何か、内容がチンプンカンプン(^^;
PHP辞典で調べながら習得したいと思います。
ありがとうございました!!
0045nobodyさん
2009/09/17(木) 14:14:52ID:???ようやく概要が見えてきました。
「指定の割合で1-6の数字が含まれる文字列を作成」
は、この文字列↓を生成する、って事だったんですね!
1111111111111111111111111111111111111111222222222222222222222222222222333333333333333333334444455566
すごく勉強になったと共に、思いつかなかったアイデアで驚きです。
これで十分に求めている事が出来ます。
ほんとうに本当にありがとうございました!
0046nobodyさん
2009/09/17(木) 14:27:12ID:???ごめん。
$rand = mt_rand(1,$randnum); を
$rand = mt_rand(0,$randnum-1); にしてね。
0047nobodyさん
2009/09/17(木) 14:56:51ID:3Z6JGFqVどこか間違ってる箇所がございましたらご教授お願いします。
<?php
print "test";
?>
0051nobodyさん
2009/09/17(木) 17:37:31ID:???0052nobodyさん
2009/09/17(木) 17:41:42ID:9yQ2lneqどうやればいいですか?
socket_createのSOCK_RAWでやればいいと思うのですが
それ以降どうやればいいのか分かりません
0054nobodyさん
2009/09/17(木) 18:04:43ID:???ネットやっててWeb制作してれば自然とphpという文字が目に入ってくるからな。
PHP/FIとかの時代はperl触ってたわ
HTML埋め込み型ってのにひかれてPHPはじめた
0055nobodyさん
2009/09/17(木) 18:45:23ID:???何か、たまに取得できないな〜、
って思って調べていた所でした。
またまた助かっちゃいました。
ありがとうございました!!
0057nobodyさん
2009/09/17(木) 20:27:16ID:???>HTML埋め込み型ってのにひかれてPHPはじめた
同じだわ
学生の頃、まだblogとか無いときに、HTML/CSSを勉強して、次は動的ページにとなった時に
Perlは正直サンプルのソースが懲りすぎてて俺にはわかりにくくて挫折した。
そんな時にHTMLに埋め込む形で作成できるphpと出会い、簡単に動的ページ作れて感動した。
005828
2009/09/17(木) 22:13:50ID:h/ZKc5z/意図した結果になりました。
pack()は試してたんですが、dechex()も使うとは気付きませんでした・・・
早々にレスを頂けて助かりました。
0059nobodyさん
2009/09/17(木) 22:31:31ID:???0060nobodyさん
2009/09/17(木) 22:47:28ID:???結局分離して作っていく流れになるんだよな。
0061nobodyさん
2009/09/17(木) 23:01:05ID:???0062nobodyさん
2009/09/17(木) 23:47:27ID:???0063nobodyさん
2009/09/17(木) 23:48:19ID:???0064nobodyさん
2009/09/17(木) 23:57:28ID:???作ってたシステムが大きくなりすぎれば、否応無くOOP的なプログラムを書かざる得ない状況になる
0065nobodyさん
2009/09/17(木) 23:59:19ID:???0066nobodyさん
2009/09/18(金) 00:12:43ID:???だいたいデザイナってデザインが仕事だしまともな会社ならそれ以上のことはさせられない
まともじゃない会社でもview部分だけいじらされるだけなんじゃね
0067nobodyさん
2009/09/18(金) 00:15:07ID:???0068nobodyさん
2009/09/18(金) 00:28:21ID:???0069nobodyさん
2009/09/18(金) 00:36:35ID:???0070nobodyさん
2009/09/18(金) 04:12:01ID:yZl5pJrO0071nobodyさん
2009/09/18(金) 05:58:42ID:???それとも英数字のこと?
0072nobodyさん
2009/09/18(金) 06:11:30ID:???外国からSPAMされてるので・・
0073nobodyさん
2009/09/18(金) 06:44:23ID:???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:???0076nobodyさん
2009/09/18(金) 06:47:12ID:???0077nobodyさん
2009/09/18(金) 07:07:13ID:???条件式で、==使うのと使わないのとで遅い早いとかあるんだっけというの
だけふと気になった
0078nobodyさん
2009/09/18(金) 08:46:55ID:???0079nobodyさん
2009/09/18(金) 08:52:27ID:???グループ開発を体験してみようなんていう2chでのプロジェクトってないのかね
SourceForge当たり使って誰でも参加可能な感じで
0080nobodyさん
2009/09/18(金) 10:46:36ID:???君が作ればいいじゃん
0081nobodyさん
2009/09/18(金) 10:57:29ID:???svn導入すると感動すると思うw
0082nobodyさん
2009/09/18(金) 11:04:16ID:???SEは求めすぎだとしてもプロジェクトリーダー経験者ぐらいじゃないと
段取りがわからなくてまとめられないと思うから自分じゃ無理なんだわ
昔はなんかそういうスレあった気がするけどもうやってないんだろうね
0083nobodyさん
2009/09/18(金) 11:06:58ID:???スレチな話題を平気な面して書き込むぐらいだから言わなくても分かるよ
0084nobodyさん
2009/09/18(金) 11:07:27ID:???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:???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:???そうだな
すまんかった
fileコマンドを使った代替関数が載ってたから、PECL使うより敷居が低かろうと思ってな
0092nobodyさん
2009/09/18(金) 12:00:56ID:+5AwuBV9設定が異なる部分ってどこでしょうか?
xamppを導入したいのですがなるべくphp.ini.recommentedの設定にあわせたいのです
0093nobodyさん
2009/09/18(金) 12:02:59ID:???009487
2009/09/18(金) 12:05:41ID:bD/6aRH+試みたのですが、なぜか上手く行きません・・。
WindowsのPHPが原因かも知れませんが、ネットで調べると
同じようにインストールできない人がいます。
それで>>89さんの方法が手っ取り早いかと思い、
ソースをコピーして実行しても何も出力されません。
おそらくWindows環境なのでexecのfileコマンドが動作してないと思います。
と言うわけで、自分の環境に問題がありそうなので環境を見直します。
>>89-90さん、ありがとうございました
0095nobodyさん
2009/09/18(金) 13:14:33ID:???ナツカシス
0097nobodyさん
2009/09/18(金) 13:36:39ID:???だから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の設定にしたら
動かなくなる箇所もあるからな。
やっぱり自分で差分みて一つ一つ確認するのが良い
0099nobodyさん
2009/09/18(金) 14:15:15ID:???0102nobodyさん
2009/09/18(金) 14:38:22ID:???使うxmappのバージョン(phpのバージョン)かけよ
php5.3にはもうphp.ini.recommentedなんてないんだけど
0104nobodyさん
2009/09/18(金) 18:35:21ID:???コンストラクタ:合体前にコアチェンジ・ドッキング・ゴーと言うタイミングで
アムロがやっている何か
デコンストラクタ:こんなに嬉しいことはに・・・というタイミングで、アムロが
やっている何か
0105nobodyさん
2009/09/18(金) 19:33:17ID:dQen4OfJもしかしてずっと反応が返ってこないのでしょうか?
Net::DNSを使えばタイムアウトを設定できるそうですが
そっちを使った方が無難ですか?
0106nobodyさん
2009/09/18(金) 20:37:22ID:???ソースを見ると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:???独自にソケット通信してるみたいですね
0109nobodyさん
2009/09/19(土) 11:33:21ID:cyMxg+G4PHP5.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のタグを丸ごとつっこんでも駄目でした。どうしたらいいでしょうか?
0112nobodyさん
2009/09/19(土) 16:52:32ID:???http://pc11.2ch.net/test/read.cgi/hp/1251728499/
答えなくていいよ
0113110
2009/09/19(土) 16:56:25ID:???あの・・・・ 俺、マルチしてないんですが・・・
しかも、ウェブサイトつくるためのXMLじゃないんですが・・・
0115110
2009/09/19(土) 17:04:42ID:???>>112の板そのものが、ウェブ製作となっているから。
そもそも、PHPからXMLで出力後、アプリケーションで使う為のXMLに
コードを入れるのが目的なのに、なんでweb製作板に張ってあるのか
それすら、自分のものじゃないし。
それでマルチって言われても迷惑なんですよ。
■ このスレッドは過去ログ倉庫に格納されています