【PHP】下らねぇ質問はID出して書き込みやがれ 91
897 :
nobodyさん:
PHPに関する質問です。
pChart(
http://pchart.sourceforge.net/)という
PHPのグラフ描画ライブラリを商用のASPサービスにモジュールとして
組み込みたいのですが、pChartはGPLらしく無改変の状態でも
サービスに組み込んだら最後、自社のコードもGPLに汚染され、
無償公開しなければいけなくなってしまうと聞きました。
この理解は正しいでしょうか?
また、PHPのグラフ描画ライブラリでよりライセンスの制限の緩い
ものはありませんでしょうか。
GPLコードを運用するだけなら公開しなくて良い
コードを販売するなら公開する必要が有る
900 :
nobodyさん:2010/01/06(水) 22:30:21 ID:j7Rd9KzV
Aのサイトでsetcookieでクッキーを与えてBのサイトにアクセスした時、
「Aのサイトから来ました」という表示を出したいのですが
setcookie("site_check","a",time()+600,"",aのドメイン)
としてもBのサイトではクッキーが読めません。
やはりドメインが変わるとクッキーのやりとりは出来ないのでしょうか?
できねえよカス
902 :
nobodyさん:2010/01/06(水) 23:51:51 ID:4NuxgMy7
こんばんわ。
PHPで対象のページに特定の文字がある場合、その行を出力する
というプログラムを組もうと思っているのですが、
文字化けを起こしてしまい、該当の文字が検索に引っかかってくれません。
どこを直せば良いのでしょうか?
回答よろしくお願いします。
【例】
<?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);
}
>>902 "下らねぇ質問"と取ってきたページの文字エンコードを合わせればよかと
あともし2chを対象としているのなら直接datを見た方がいいと思うよ
904 :
902:2010/01/07(木) 00:13:12 ID:7vbs2WcD
>>903 うまくいきました。ありがとうございました。
あ、例で出しやすかったので2chのアドレスを表記しただけですw
わざわざありがとうございます。
>>899 お前がよく読め。
>GPLソースコードの修正で再頒布が必要になる
>GPLで保護された著作物の修正や、GPLで保護されたコードを新しい著作物で使うとき、
>必ずしもソースコードの公開を要求しているわけではない。この要求は、
>新しいプロジェクトが第三者に「頒布される」ときだけに発生する。結果としてのソフトウェアが、修正者に使われるだけなら、ソースコードの公開は要求されない。
偉そうに言う
>>899。でも自分で示したURL先の内容が理解できないアホ
販売するならの部分が変。 GPLのは、販売してもGPLのまんまだから、
買った側が改変しないで配布せず使う限りでは、公開いらん。
>>906 おまえ、自分の書いた文書もう一度読み直してみろな。
何故、「買った側」の話になる?
>>898売る側の話しているぞ。
>コードを販売するなら
販「売」な。買う(側)ではなくて売る(側)。分かるか?
要約すると
GPLのライブラリを使った場合にGPL汚染されるから自社システムのソース提示が必要になるのか?
って言う
>>897の質問。
それに対して
自社システムを自社で運用するならソース公開は必要ない。
ただしそのシステムを販売するならソース公開する必要がある。と
>>898が説明
って事でしょ。
>>898が書いてない事だけど俺が知っている範囲でもっと突き詰めた説明すると
改変やさらに販売し先がそのソースをどう利用しようが自由になる。しかもソースを利用した物もGPLに汚染される。
>>907 販売する側が公開する必要になるかどうかが、買った側が使うだけの場合には、売った側が公開する必要はない。
買った側が改変してさらに頒布する場合には、買った側がGPLに沿ってやるだけ。売った側関係なくなるんだけどな。
いずれにせよ「販売した場合」ってのは 関係ない。
>>909 おまえもう一度
>>897を読め。
何故ここで買った側の話が出る?
>>897が心配しているのは開発側。
で開発側がそのシステムをどうするかで状況が変わる説明を
>>898がしている。
で開発した側の事で
>買った側
や
>いずれにせよ「販売した場合」ってのは 関係ない。
なんて言う斜め上をいく解釈になるのか分からない。
あくまで
>>897の書き込みは開発者サイドの質問です。
それに対する開発者サイドのGPLに対しての
>>898の説明です。
>>909(=906=899?)の書き込みは何故か買った側の問題です。
君PHPどころかシステム開発すらしたことのない素人さん?だから斜め上からのねじれた解釈ができる?
PHPで開発していれば定番のMySQLのライセンスにぶち当たるからGPLには普通神経質に対処するからね。
だから販売システムにはMYSQLは利用せずにPostgreSQLやSQLiteを利用する。
その状況で
>>909(=906=899?)は明らかに開発者側の視点での書き込みではない。
お前名前に898って書けよ
912 :
910:2010/01/07(木) 11:22:25 ID:???
Mysql使ったものを販売出来ないわけでもないのに。
売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
売る側が公開する必要ない → 販売するならの記述違うよね。
難しいかなぁ。
GPLのコードを使ってそれを有償無償関係なく配布する場合は同じ方法でソースを提供しなきゃいけない
自分で使って配布もしない場合はソースを公開する必要はない
こんな感じだろ
引くに引けなくなったから必死に長文ワロス
>>913 ハィハィ。ちっょとカマかけたら見事引っかかってくれたね。
MySQLはライブラリもGPL(LGPLでないからライブラリ利用でGPL汚染)を前提に話を書くけど
まずMySQLには二種類のライセンス形態があるの。
もちろん一つはGPL。そしてもう一つがコマーシャルライセンス。
でGPL汚染させたくなければコマーシャルライセンスを購入する必要がある。
だから、
>>913みたいにライセンスについてなにも知らないとMySQL=GPLの図式が成り立つカマをかけると見事引っかかるのよ。
そんなライセンスについて何も知らない君。
一応この書き込みにももう一つPHPのライブラリ限定の罠仕掛けておいたから今度は見破ってごらん。
>売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
>売る側が公開する必要ない → 販売するならの記述違うよね。
もう斜め上を行く書き込みは辞めてくれ。
どこにカマ書けたレスがあったのかw
別にあなたの人格否定してるわけじゃないから勘違いしちゃだめだよ。
間違ったの放置するとあなたのためにも、ここ見た人にも、
せっかくGPLにしてる沢山のものに対しても良くないんです。
GPL汚染について意外とみんな知らないようだ。
>売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
>売る側が公開する必要ない → 販売するならの記述違うよね。
こんな嘘まで出る始末。
ASPではソース公開が必要ないからとそれを広域でとらえてと誤解している?
なんか調べたらMySQLのライセンス違反しているソフトハウスがゴロゴロと出てきそうな悪寒。
>>916 よく読んでない誤爆ですか?
100000000000000000000000億回読んだほうがいいですよ
>Mysql使ったものを販売出来ないわけでもないのに
>>917 >PHPで開発していれば定番のMySQLのライセンスにぶち当たるからGPLには普通神経質に対処するからね。
910の自演レスみたいなのに見えるから全員IP出せよ
でっ、どうなんだ?
GPLは商用利用でもOKなんだな
IP出せない奴は自演と見なす
>>920 >売る側として、Mysql使ったサイト作って企業に売ったとして、そのサイトのソースは
>売る側が公開する必要ない
って文に
>Mysql使ったものを販売出来ないわけでもないのに。
がかかっているから変ではないのと
GPL汚染されてても良いならGPLのライセンスの物は売っても良いんだよ。
IP出してないので自演乙
>>923 OK。そのかわりGPL汚染され続けるけどね。
良い例がRHELとCentOSの関係みたいな。
RHELは商用でとして販売。しかし元々GPLの部分はソース公開。
で、それを利用されて無料のCentOSができる。
ちょっと昔なんてRHLをベースに無料どころか商用としてTurboLinuxやVIneLinuxなどなど派生も開発されて販売されていた。
>>926 IDはだせるげとIP出せないだろ。
DOS攻撃
それとこのご時世IPなんてだしたら逆恨みでDOS攻撃してくるぞ。
929 :
nobodyさん:2010/01/07(木) 12:28:48 ID:asUehzW7
辞書にユニコードが書かれているのですが、
これを文字列に変換するには、どのように実装すれば宜しいでしょうか?
例えば、
56E0→因
というような変換です。
bin2hexは使えそうだと思ったのですが、むしろ逆の処理で、実装の方法が分からず困っています。
どうかお力をお貸しください。
宜しくお願いします。
GPL詳しい人いないのな1人も
マルチうぜえ
>>929 ビッグエンディアンのUTF-16として
pack("H*","56E0");
utf-8で出力するなら
echo mb_convert_encoding( pack("H*","56E0"),"utf-8","unicode");
UTF-16wwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ユニコードなら普通UTF8じゃない
無知を晒してどうすんの
937 :
nobodyさん:2010/01/07(木) 13:36:19 ID:vUzUYJKW
なにいってんの? UTF-16しらないの?
utf-8なら、因は E59BA0な
939 :
nobodyさん:2010/01/07(木) 14:05:36 ID:asUehzW7
>>934さん、どうもありがとうございました。
当環境でやってみたところ、出来ました。助かりました。
それで、UNICODEのやり方が分かれば、JISコードについても同じ要領できるかと思って、
以下のようにやってみたのですが、上手くできませんでした。
$covertedChar = pack("C", hexdec("0x"."304B"));
echo mb_convert_encoding($covertedChar, "utf-8", "JIS");
ちなみに、JISコード・十六進コード「304B」は「伊」に該当するそうなのですが。
phpマニュアルを見ながら、Cの所をC*やH*でやってみたのですが、駄目でした。
すみません、最初に全て出せば良かったのですが、追加でお聞きしても宜しいでしょうか。
これで最後です。宜しくお願いします。
940 :
nobodyさん:2010/01/07(木) 14:07:24 ID:asUehzW7
すみません。あと、こちらで最初に試しても黒丸が表示されるだけで駄目でした。
$covertedChar = pack("C*","2F28");
echo mb_convert_encoding($covertedChar, "utf-8", "JIS");
JISはシフトインアウトがあるからな
"1B2440"."2F28"."1B284A"
943 :
nobodyさん:2010/01/07(木) 15:09:42 ID:BSk80e6a
数字のケタが変わったかどうかチェックする方法ってどう書けばいいでしょうか?
999→1000 ならtrue
999→291ならfalse
10→101ならtrueみたい・・
1以上の整数部の比較で良ければ
(int)log10(999) != (int)log10(1000) とか
strlen((string)999) != strlen((string)1000) でもいいかも知れん
両者を log10 したのち整数値に切り捨てて差を見る
文字列に変換して文字列長が同じかどうかを見る
更新してから書き込めばよかった...
文字列に変換してstrlenすると-10と100の場合も3にならん?
だから1以上の・・・って書いてんじゃないのか
949 :
nobodyさん:2010/01/07(木) 17:09:53 ID:go7wFoTk
正規表現のことに関して質問です。
自分の場合はeregを使っているんですが、eregでは全角カタカナやひらがな等は使えないのでしょうか?
解決方法があれば教えてください。
ちなみに、エラーのでている行は
if(eregi($type,$datafile[4]))
で、
$type="メーカー";
や
$type="サービス";
となる時にエラーがでてしまいます。
mb_eregとか使うんじゃないの?pregしか使わないから分からないけど
951 :
nobodyさん:2010/01/07(木) 17:56:32 ID:LXzPFyV8
一時的にnoticeをログに出さないように変更したいんだけど
サーバ管理の権限はありません。
プログラム中で変更とかできないでしょうか?
952 :
nobodyさん:2010/01/07(木) 18:06:19 ID:LXzPFyV8
error_reporting(0);
でした。事故レス。
ereg系は使うな!!!!!!!!!!!!!
ereg系はPHP6で消えるとか消えないとか
955 :
nobodyさん:2010/01/07(木) 19:30:27 ID:AjaMrx7g
(x + n)(y + n2) = a
この連立方程式をPHPで解くコードを教えてください
PHP6はhtmlspecialchars()が消えるみたいだよ
htmlentitiesは?
958 :
nobodyさん:2010/01/07(木) 20:34:09 ID:5cb0Qm+/
例えば30まで数があって、
30からランダムに順々に重複しない数を取り出したいです。
考えたのが、
例えば最初に5を取り出したとき、5をストック。次に
ストックを検索してかぶらない数字12を取り出してストック、ストック(5, 12)を検索して・・
という感じでやろうとしたのですが、無駄が多いように思えるのです。
何か他に効率のよい方法はありませんでしょうかアドバイスよろしくお願いします。
961 :
nobodyさん:2010/01/07(木) 21:24:45 ID:5cb0Qm+/
>>959 とりあえずはやりたいことがシンプルにかけました
ありがとうございました
アレイシャッフルは精度がよくないから自分で実装したほうが良い
シャッフルのアルゴリズムはmediawikiで探すと見つかる
963 :
nobodyさん:2010/01/07(木) 23:49:38 ID:0Znmv5GU
<?php
$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
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
for(int i=0; i<n; ++i) {
do {
r = min + genrand_int31() % (max - min + 1);
} while(result.find(r) != result.end());
result.insert(r);
}
return result;
}
>>962 PHPの中でどうやって混ぜてるか見たけど(array.c)
配列の全要素を、乱数で他の要素と入れ替えてるね。
mediawikiは???
shuffleは偏りが出るの?
968 :
949:2010/01/08(金) 15:52:11 ID: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と表示されます)
969 :
940:2010/01/08(金) 15:58:56 ID:3B7A809H
>> 941
> JISはシフトインアウトがあるからな
お返事ありがとうございます。
シフトインアウトについては、よく理解できないのですが、unicodeのように簡単には実装できないということでしょうか。
辞書には、UNICODEとJISコードが書かれているので、両方対応できるようにしたいのですが、
やはり、JISコードを変換して漢字にするのは難しいでしょうか。
>>968 mb_strposは0を返す場合もあるから !=0 じゃダメなんじゃね?
存在しない場合はFALSEが返ってくるから !==falseとかにする
あとは文字コードとか
972 :
nobodyさん:2010/01/08(金) 17:23:28 ID:FfxTGFaw
>>970 確かにそうですね。直しておきます。
現在文字コードはShift_JISですがそれだと問題あるのでしょうか・・・?
973 :
nobodyさん:2010/01/08(金) 19:45:03 ID:95a5JUsZ
phpの吐いたソースを書き出してるんですが、
書き出したファイルの内容と新しく自身が吐いたソースの比較はどうすればできますか?
宜しくおねがいします。
file_get_contents(旧ファイル) === file_get_contents(新ファイル)
>>973 >>974のように文字列同士の比較で一致するかでいいと思うけど
それだとコストが大きいので書き出す時にmd5ハッシュを保存しておいて比較した方がいいと思う
更新日時の比較がベストだけど
同時に違う内容を保存したらどうすんねん
flock
978 :
973:2010/01/08(金) 20:17:42 ID:95a5JUsZ
>>974-975 ありがとうございます。
説明が曖昧でした。申し訳ありません。
最終的にPHPで同じテキストファイル(かhtmlファイル)
に上書きするんですが、
今回上書きされる内容と、前回上書きした内容が
一致するか比較したいです。
PHPのソースが上書きする前の処理として、例えば
前回と比較→一致なら0,不一致なら1→最終的に上書きはする
という感じのことを行いたいです。
>>978 #テストしてないけど
function f($filename, $contents='')
{
$old_contents = file_get_contents($filename);
file_put_contents($filename, $contents);
return $old_contents === $contents ? 0 : 1;
}
>>978 今回上書きされる内容と前回上書きした内容って同じものを指してないか?
>>973 比較するする処理を行うにふさわしい標準関数があるからマニュアル見て探してみ
するする処理
983 :
973:2010/01/08(金) 22:26:22 ID:95a5JUsZ
>>979 少し弄りましたができたと思います。
ありがとうございます。
>>983 >>981書いたのに探しもしないんだな
レスあればどの関数使うか書こうと思ったけどもういいや
日本語と英語の両方に対応したWebを作りたいんだけど、
フレームワークレベルで多国語対応しているのってある?
言語リソースを完全に分離しているイメージで
if (言語判別) {
日本語のファイル読み込み
} else {
英語のファイル読み込み
}
じゃだめ?
>>985 キミがダメだと思ったフレームワーク挙げてみてよ
>>985 うちはZendだけど、
今じゃ対応してないフレームワークの方が少ないんじゃないかな
989 :
nobodyさん:2010/01/09(土) 17:16:53 ID:g7iSaAwT
コマンドラインから実行されてるか判別する方法ってありますか?
管理者に聞く
991 :
nobodyさん:2010/01/09(土) 17:30:39 ID:lsb/cZ9k
992 :
nobodyさん:2010/01/09(土) 17:31:31 ID:pOjpZhf9
数字を入力して、3桁ごとに , をつけるにはどうしたらいいですか?
100 → 100
1000 → 1,000
100000 →100,000
お願いします。
>>992 なんでマニュアル見ないの?
てめえのやりたいそのものが標準関数にあるぞ?
994 :
nobodyさん:2010/01/09(土) 17:36:03 ID:lsb/cZ9k
996 :
992:2010/01/09(土) 17:38:43 ID:pOjpZhf9
>>993 自分の持ってる参考書には目を通したのですが、マニュアルはみてなかったです。
自分自身の為にも、次からは気をつけます。
>>994 ありがとうございます。
997 :
nobodyさん:2010/01/09(土) 19:19:13 ID:bizuBJVY
ニコニコのAPIを使ったものを作りたいんですが、ログインがうまくできてないようです。
質問内容
お手元の環境で以下のサイトのコードを実行した場合に
ttp://d.hatena.ne.jp/Xephy/20081217/1229515379 問題なく以下の部分の表示が行われますか?
//URL表示
print $login->get_video_url($mov_id);
うちで動かすと、正しいメールアドレス/パスワードを用いても、用いなくても、
実行結果が変わりませんorz
998 :
nobodyさん:2010/01/09(土) 20:13:21 ID:lsb/cZ9k
999
このスレは1000の風になりました
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。