【PHP】下らねぇ質問はID出して書き込みやがれ 91
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2009/12/08(火) 13:53:09ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 90
http://pc11.2ch.net/test/read.cgi/php/1258187482/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0896nobodyさん
2010/01/06(水) 13:06:15ID:???ID出してないだけで何で煽られないといけないんだバカじゃねえの?
分からないなら答えなくていいってお前こそ>>1嫁視ね
0897nobodyさん
2010/01/06(水) 13:16:48ID:NMCa3pGPpChart(http://pchart.sourceforge.net/)という
PHPのグラフ描画ライブラリを商用のASPサービスにモジュールとして
組み込みたいのですが、pChartはGPLらしく無改変の状態でも
サービスに組み込んだら最後、自社のコードもGPLに汚染され、
無償公開しなければいけなくなってしまうと聞きました。
この理解は正しいでしょうか?
また、PHPのグラフ描画ライブラリでよりライセンスの制限の緩い
ものはありませんでしょうか。
0898nobodyさん
2010/01/06(水) 13:22:56ID:???コードを販売するなら公開する必要が有る
0899nobodyさん
2010/01/06(水) 13:55:33ID:???kwskはここ読め
ttp://ja.wikipedia.org/wiki/GNU_General_Public_License
0900nobodyさん
2010/01/06(水) 22:30:21ID:j7Rd9KzV「Aのサイトから来ました」という表示を出したいのですが
setcookie("site_check","a",time()+600,"",aのドメイン)
としてもBのサイトではクッキーが読めません。
やはりドメインが変わるとクッキーのやりとりは出来ないのでしょうか?
0901nobodyさん
2010/01/06(水) 22:49:03ID:???0902nobodyさん
2010/01/06(水) 23:51:51ID:4NuxgMy7PHPで対象のページに特定の文字がある場合、その行を出力する
というプログラムを組もうと思っているのですが、
文字化けを起こしてしまい、該当の文字が検索に引っかかってくれません。
どこを直せば良いのでしょうか?
回答よろしくお願いします。
【例】
<?php
// 文字コード
define('CHARSET', "UTF-8");
ini_set("default_charset", CHARSET);
ini_set("mbstring.internal_encoding", CHARSET);
ini_set("mbstring.http_output", CHARSET);
ini_set("mbstring.http_input", CHARSET);
$handle = @fopen("http://pc11.2ch.net/test/read.cgi/php/1260247989/", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
$hitlen = strpos($buffer , "下らねぇ質問");
if ($hitlen !== false) {
echo $buffer;
}
}
fclose($handle);
}
0903nobodyさん
2010/01/06(水) 23:59:04ID:???"下らねぇ質問"と取ってきたページの文字エンコードを合わせればよかと
あともし2chを対象としているのなら直接datを見た方がいいと思うよ
0904902
2010/01/07(木) 00:13:12ID:7vbs2WcDうまくいきました。ありがとうございました。
あ、例で出しやすかったので2chのアドレスを表記しただけですw
わざわざありがとうございます。
0905nobodyさん
2010/01/07(木) 01:57:55ID:???お前がよく読め。
>GPLソースコードの修正で再頒布が必要になる
>GPLで保護された著作物の修正や、GPLで保護されたコードを新しい著作物で使うとき、
>必ずしもソースコードの公開を要求しているわけではない。この要求は、
>新しいプロジェクトが第三者に「頒布される」ときだけに発生する。結果としてのソフトウェアが、修正者に使われるだけなら、ソースコードの公開は要求されない。
偉そうに言う>>899。でも自分で示したURL先の内容が理解できないアホ
0906nobodyさん
2010/01/07(木) 08:39:22ID:???買った側が改変しないで配布せず使う限りでは、公開いらん。
0907nobodyさん
2010/01/07(木) 09:04:40ID:???おまえ、自分の書いた文書もう一度読み直してみろな。
何故、「買った側」の話になる?
>>898売る側の話しているぞ。
>コードを販売するなら
販「売」な。買う(側)ではなくて売る(側)。分かるか?
0908nobodyさん
2010/01/07(木) 09:16:37ID:???GPLのライブラリを使った場合にGPL汚染されるから自社システムのソース提示が必要になるのか?
って言う>>897の質問。
それに対して
自社システムを自社で運用するならソース公開は必要ない。
ただしそのシステムを販売するならソース公開する必要がある。と>>898が説明
って事でしょ。
>>898が書いてない事だけど俺が知っている範囲でもっと突き詰めた説明すると
改変やさらに販売し先がそのソースをどう利用しようが自由になる。しかもソースを利用した物もGPLに汚染される。
0909nobodyさん
2010/01/07(木) 10:16:48ID:???販売する側が公開する必要になるかどうかが、買った側が使うだけの場合には、売った側が公開する必要はない。
買った側が改変してさらに頒布する場合には、買った側がGPLに沿ってやるだけ。売った側関係なくなるんだけどな。
いずれにせよ「販売した場合」ってのは 関係ない。
0910nobodyさん
2010/01/07(木) 11:06:02ID:???おまえもう一度>>897を読め。
何故ここで買った側の話が出る?
>>897が心配しているのは開発側。
で開発側がそのシステムをどうするかで状況が変わる説明を>>898がしている。
で開発した側の事で
>買った側
や
>いずれにせよ「販売した場合」ってのは 関係ない。
なんて言う斜め上をいく解釈になるのか分からない。
あくまで>>897の書き込みは開発者サイドの質問です。
それに対する開発者サイドのGPLに対しての>>898の説明です。
>>909(=906=899?)の書き込みは何故か買った側の問題です。
君PHPどころかシステム開発すらしたことのない素人さん?だから斜め上からのねじれた解釈ができる?
PHPで開発していれば定番のMySQLのライセンスにぶち当たるからGPLには普通神経質に対処するからね。
だから販売システムにはMYSQLは利用せずにPostgreSQLやSQLiteを利用する。
その状況で>>909(=906=899?)は明らかに開発者側の視点での書き込みではない。
0911nobodyさん
2010/01/07(木) 11:15:56ID:???0912910
2010/01/07(木) 11:22:25ID:???俺>>905ではあるが>>898ではないぞ。
で開発者サイドの話がシステムを買った側のGPLの話になるか説明してくれ。
0913nobodyさん
2010/01/07(木) 11:51:31ID:???売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
売る側が公開する必要ない → 販売するならの記述違うよね。
難しいかなぁ。
0914nobodyさん
2010/01/07(木) 11:53:39ID:???自分で使って配布もしない場合はソースを公開する必要はない
こんな感じだろ
0915nobodyさん
2010/01/07(木) 11:54:00ID:???0916nobodyさん
2010/01/07(木) 12:01:00ID:???ハィハィ。ちっょとカマかけたら見事引っかかってくれたね。
MySQLはライブラリもGPL(LGPLでないからライブラリ利用でGPL汚染)を前提に話を書くけど
まずMySQLには二種類のライセンス形態があるの。
もちろん一つはGPL。そしてもう一つがコマーシャルライセンス。
でGPL汚染させたくなければコマーシャルライセンスを購入する必要がある。
だから、>>913みたいにライセンスについてなにも知らないとMySQL=GPLの図式が成り立つカマをかけると見事引っかかるのよ。
そんなライセンスについて何も知らない君。
一応この書き込みにももう一つPHPのライブラリ限定の罠仕掛けておいたから今度は見破ってごらん。
>売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
>売る側が公開する必要ない → 販売するならの記述違うよね。
もう斜め上を行く書き込みは辞めてくれ。
0917nobodyさん
2010/01/07(木) 12:04:03ID:???0918nobodyさん
2010/01/07(木) 12:04:17ID:???間違ったの放置するとあなたのためにも、ここ見た人にも、
せっかくGPLにしてる沢山のものに対しても良くないんです。
0919nobodyさん
2010/01/07(木) 12:04:18ID:???>売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
>売る側が公開する必要ない → 販売するならの記述違うよね。
こんな嘘まで出る始末。
ASPではソース公開が必要ないからとそれを広域でとらえてと誤解している?
なんか調べたらMySQLのライセンス違反しているソフトハウスがゴロゴロと出てきそうな悪寒。
0920nobodyさん
2010/01/07(木) 12:05:34ID:???よく読んでない誤爆ですか?
100000000000000000000000億回読んだほうがいいですよ
>Mysql使ったものを販売出来ないわけでもないのに
0921nobodyさん
2010/01/07(木) 12:05:34ID:???>PHPで開発していれば定番のMySQLのライセンスにぶち当たるからGPLには普通神経質に対処するからね。
0922nobodyさん
2010/01/07(木) 12:07:13ID:???0923nobodyさん
2010/01/07(木) 12:07:35ID:???GPLは商用利用でもOKなんだな
0924nobodyさん
2010/01/07(木) 12:07:37ID:???0925nobodyさん
2010/01/07(木) 12:08:07ID:???>売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
>売る側が公開する必要ない
って文に
>Mysql使ったものを販売出来ないわけでもないのに。
がかかっているから変ではないのと
GPL汚染されてても良いならGPLのライセンスの物は売っても良いんだよ。
0926nobodyさん
2010/01/07(木) 12:10:12ID:???0927nobodyさん
2010/01/07(木) 12:11:55ID:???OK。そのかわりGPL汚染され続けるけどね。
良い例がRHELとCentOSの関係みたいな。
RHELは商用でとして販売。しかし元々GPLの部分はソース公開。
で、それを利用されて無料のCentOSができる。
ちょっと昔なんてRHLをベースに無料どころか商用としてTurboLinuxやVIneLinuxなどなど派生も開発されて販売されていた。
0928nobodyさん
2010/01/07(木) 12:13:07ID:???IDはだせるげとIP出せないだろ。
DOS攻撃
それとこのご時世IPなんてだしたら逆恨みでDOS攻撃してくるぞ。
0929nobodyさん
2010/01/07(木) 12:28:48ID:asUehzW7これを文字列に変換するには、どのように実装すれば宜しいでしょうか?
例えば、
56E0→因
というような変換です。
bin2hexは使えそうだと思ったのですが、むしろ逆の処理で、実装の方法が分からず困っています。
どうかお力をお貸しください。
宜しくお願いします。
0930nobodyさん
2010/01/07(木) 12:41:56ID:???0931nobodyさん
2010/01/07(木) 12:42:21ID:???0932nobodyさん
2010/01/07(木) 12:44:19ID:???http://www.s-style.co.jp/mysql/chart/index.html
0934nobodyさん
2010/01/07(木) 13:31:38ID:???ビッグエンディアンのUTF-16として
pack("H*","56E0");
utf-8で出力するなら
echo mb_convert_encoding( pack("H*","56E0"),"utf-8","unicode");
0935nobodyさん
2010/01/07(木) 13:32:47ID:???ユニコードなら普通UTF8じゃない
0936nobodyさん
2010/01/07(木) 13:33:26ID:???0937nobodyさん
2010/01/07(木) 13:36:19ID:vUzUYJKW0938nobodyさん
2010/01/07(木) 13:39:06ID:???0939nobodyさん
2010/01/07(木) 14:05:36ID:asUehzW7当環境でやってみたところ、出来ました。助かりました。
それで、UNICODEのやり方が分かれば、JISコードについても同じ要領できるかと思って、
以下のようにやってみたのですが、上手くできませんでした。
$covertedChar = pack("C", hexdec("0x"."304B"));
echo mb_convert_encoding($covertedChar, "utf-8", "JIS");
ちなみに、JISコード・十六進コード「304B」は「伊」に該当するそうなのですが。
phpマニュアルを見ながら、Cの所をC*やH*でやってみたのですが、駄目でした。
すみません、最初に全て出せば良かったのですが、追加でお聞きしても宜しいでしょうか。
これで最後です。宜しくお願いします。
0940nobodyさん
2010/01/07(木) 14:07:24ID:asUehzW7$covertedChar = pack("C*","2F28");
echo mb_convert_encoding($covertedChar, "utf-8", "JIS");
0941nobodyさん
2010/01/07(木) 14:08:37ID:???0942nobodyさん
2010/01/07(木) 14:12:04ID:???0943nobodyさん
2010/01/07(木) 15:09:42ID:BSk80e6a999→1000 ならtrue
999→291ならfalse
10→101ならtrueみたい・・
0944nobodyさん
2010/01/07(木) 15:19:01ID:???(int)log10(999) != (int)log10(1000) とか
strlen((string)999) != strlen((string)1000) でもいいかも知れん
0945nobodyさん
2010/01/07(木) 15:25:11ID:???文字列に変換して文字列長が同じかどうかを見る
0946nobodyさん
2010/01/07(木) 15:25:55ID:???0947nobodyさん
2010/01/07(木) 15:40:54ID:???0948nobodyさん
2010/01/07(木) 16:23:48ID:???0949nobodyさん
2010/01/07(木) 17:09:53ID:go7wFoTk自分の場合はeregを使っているんですが、eregでは全角カタカナやひらがな等は使えないのでしょうか?
解決方法があれば教えてください。
ちなみに、エラーのでている行は
if(eregi($type,$datafile[4]))
で、
$type="メーカー";
や
$type="サービス";
となる時にエラーがでてしまいます。
0950nobodyさん
2010/01/07(木) 17:21:24ID:???0951nobodyさん
2010/01/07(木) 17:56:32ID:LXzPFyV8サーバ管理の権限はありません。
プログラム中で変更とかできないでしょうか?
0952nobodyさん
2010/01/07(木) 18:06:19ID:LXzPFyV8でした。事故レス。
0953nobodyさん
2010/01/07(木) 18:59:51ID:???0954nobodyさん
2010/01/07(木) 19:17:59ID:???0955nobodyさん
2010/01/07(木) 19:30:27ID:AjaMrx7gこの連立方程式をPHPで解くコードを教えてください
0956nobodyさん
2010/01/07(木) 19:56:03ID:???0957nobodyさん
2010/01/07(木) 20:33:47ID:???0958nobodyさん
2010/01/07(木) 20:34:09ID:5cb0Qm+/30からランダムに順々に重複しない数を取り出したいです。
考えたのが、
例えば最初に5を取り出したとき、5をストック。次に
ストックを検索してかぶらない数字12を取り出してストック、ストック(5, 12)を検索して・・
という感じでやろうとしたのですが、無駄が多いように思えるのです。
何か他に効率のよい方法はありませんでしょうかアドバイスよろしくお願いします。
0959nobodyさん
2010/01/07(木) 20:39:27ID:???ここにそのまま使えそうな例がある。
http://www.php.net/manual/ja/function.shuffle.php
0961nobodyさん
2010/01/07(木) 21:24:45ID:5cb0Qm+/とりあえずはやりたいことがシンプルにかけました
ありがとうございました
0962nobodyさん
2010/01/07(木) 21:30:53ID:???シャッフルのアルゴリズムはmediawikiで探すと見つかる
0963nobodyさん
2010/01/07(木) 23:49:38ID:0Znmv5GU$array = array();
for($a = 1; $a < 31; $a++) {
$num = rand(1,30);
if ( in_array($num, $array) ) {
$a = $a - 1;
continue;
}
$array[] = $num;
}
foreach( $array as $value ){
echo $value."<br />\n";
}
echo count($array);
?>
これじゃだめ?wwwww
0964nobodyさん
2010/01/08(金) 00:26:11ID:???0965nobodyさん
2010/01/08(金) 09:16:40ID:???do {
r = min + genrand_int31() % (max - min + 1);
} while(result.find(r) != result.end());
result.insert(r);
}
return result;
}
0966nobodyさん
2010/01/08(金) 09:48:35ID:???PHPの中でどうやって混ぜてるか見たけど(array.c)
配列の全要素を、乱数で他の要素と入れ替えてるね。
mediawikiは???
0967nobodyさん
2010/01/08(金) 11:01:32ID:???0968949
2010/01/08(金) 15:52:11ID:FfxTGFawレスありがとうございます。
eregではなくmb_strposにかえたところ、エラーは消えました。
(エラーの原因は − だったようです。)
ところが、今度はまた別の問題が生じました。
mb_strrpos("$datafile[0]","$keyword")
のように、テキストファイルから特定の文字列を探しているのですが、これがうまくいきません。
$datafile[0]と$keywordが同じ文字列でも結果が同じと判定してくれません。(これはprintを使い確かめました)
言葉ではうまく説明できないので、簡単な例をのせてみます。
解決方法をご存知の方いましたら、レスお願いします。
例
if(mb_strpos($datafile[0],$keyword)!=0){
print("ok");
}else{
print $datafile[0].<BR>;
print $keyword;
}
これで実行しても
漢字 カタカナ ひらがな
漢字
という具合に表示されてしまいます。
(ちなみに、検索語句、検索対象が英字の時はokと表示されます)
0969940
2010/01/08(金) 15:58:56ID:3B7A809H> JISはシフトインアウトがあるからな
お返事ありがとうございます。
シフトインアウトについては、よく理解できないのですが、unicodeのように簡単には実装できないということでしょうか。
辞書には、UNICODEとJISコードが書かれているので、両方対応できるようにしたいのですが、
やはり、JISコードを変換して漢字にするのは難しいでしょうか。
0970nobodyさん
2010/01/08(金) 16:37:58ID:???mb_strposは0を返す場合もあるから !=0 じゃダメなんじゃね?
存在しない場合はFALSEが返ってくるから !==falseとかにする
あとは文字コードとか
0972nobodyさん
2010/01/08(金) 17:23:28ID:FfxTGFaw確かにそうですね。直しておきます。
現在文字コードはShift_JISですがそれだと問題あるのでしょうか・・・?
0973nobodyさん
2010/01/08(金) 19:45:03ID:95a5JUsZ書き出したファイルの内容と新しく自身が吐いたソースの比較はどうすればできますか?
宜しくおねがいします。
0974nobodyさん
2010/01/08(金) 19:46:56ID:???0975nobodyさん
2010/01/08(金) 19:50:38ID:???>>974のように文字列同士の比較で一致するかでいいと思うけど
それだとコストが大きいので書き出す時にmd5ハッシュを保存しておいて比較した方がいいと思う
更新日時の比較がベストだけど
0976nobodyさん
2010/01/08(金) 19:51:38ID:???0977nobodyさん
2010/01/08(金) 20:09:53ID:???0978973
2010/01/08(金) 20:17:42ID:95a5JUsZありがとうございます。
説明が曖昧でした。申し訳ありません。
最終的にPHPで同じテキストファイル(かhtmlファイル)
に上書きするんですが、
今回上書きされる内容と、前回上書きした内容が
一致するか比較したいです。
PHPのソースが上書きする前の処理として、例えば
前回と比較→一致なら0,不一致なら1→最終的に上書きはする
という感じのことを行いたいです。
0979nobodyさん
2010/01/08(金) 20:35:45ID:???#テストしてないけど
function f($filename, $contents='')
{
$old_contents = file_get_contents($filename);
file_put_contents($filename, $contents);
return $old_contents === $contents ? 0 : 1;
}
0982nobodyさん
2010/01/08(金) 21:29:49ID:???0983973
2010/01/08(金) 22:26:22ID:95a5JUsZ少し弄りましたができたと思います。
ありがとうございます。
0985nobodyさん
2010/01/09(土) 11:54:57ID:???フレームワークレベルで多国語対応しているのってある?
言語リソースを完全に分離しているイメージで
0986nobodyさん
2010/01/09(土) 12:17:19ID:???日本語のファイル読み込み
} else {
英語のファイル読み込み
}
じゃだめ?
0989nobodyさん
2010/01/09(土) 17:16:53ID:g7iSaAwT0990nobodyさん
2010/01/09(土) 17:21:14ID:???0991nobodyさん
2010/01/09(土) 17:30:39ID:lsb/cZ9k<?php
if(isset($argv) == true){
echo "コマンドラインから実行されました";
}
?>
http://jp2.php.net/manual/ja/reserved.variables.argv.php
これでいい?
0992nobodyさん
2010/01/09(土) 17:31:31ID:pOjpZhf9100 → 100
1000 → 1,000
100000 →100,000
お願いします。
レス数が950を超えています。1000を超えると書き込みができなくなります。