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

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

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

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0686nobodyさん2010/03/09(火) 10:28:40ID:???
http://www.s-style.co.jp/mysql/chart/
0687nobodyさん2010/03/09(火) 11:03:51ID:???
>>684
MySQLを利用したソースコードを公開するならGPL
でもGPLだからといって自サーバ内でのみ使うのならソースコードを公開する必要なないんだよ
0688nobodyさん2010/03/09(火) 12:07:28ID:w/nUscX9
php_mecabを64bitCentOSに入れようとしたのですが、
makeの途中で止まってしまいます
64bitには入らないのでしょうか?
インストールに成功した方いますか?
0689nobodyさん2010/03/09(火) 14:13:14ID:???
直接コマンドライン叩くことにしますた・・
0690nobodyさん2010/03/09(火) 14:27:52ID:ezJ3thxT
http://megarank.prohp.jp/

↑の「MEGA-RANK系一括登録」のようなものを作りたいのですが、どうやって作ればいいのか検討がつきません
PHPで作れますか?もしくはこんな感じで作れるよって方いたらご教授お願いします
0691nobodyさん2010/03/09(火) 15:08:46ID:???
40万で作ります
0692nobodyさん2010/03/09(火) 15:21:20ID:FVF0JEpR
file_get_contentsでURLを開いて本文を取得しています。
取得先がPHPでWarningを出している場合、取得しないようにしたいのですが、
「Warning」であると言う事を調べる方法はないでしょうか?
0693nobodyさん2010/03/09(火) 15:22:22ID:???
つstrtr
0694nobodyさん2010/03/09(火) 15:23:42ID:???
取得しないでどうやってWarning出てるか調べるんだwwww

取得する
 ↓
preg_replace()でWarningの表記があるか判別
 ↓
Warningがなければ値をクリア

とかでいいんじゃね?

てか、何がしたいのかわからんが、何をしたいか教えてくれれば
他に良いやり方があると思うんだが・・・
0695nobodyさん2010/03/09(火) 15:26:57ID:???
preg_replaceで何置換したいんだ?
06966942010/03/09(火) 15:27:35ID:???
matchと間違えたすまんwwwwwwwww
0697nobodyさん2010/03/09(火) 15:49:00ID:FVF0JEpR
>>694
ちょっとしたリンク集みたいなのを作ってまして、
登録されたURLでWarningが出てるかどうか調べたかったんです。
fsockopenとかで取得先の状態を調べられると思ったのですが、無理なんですね。

やっぱり、一度取得してエラーメッセージを解析する方法しかないのかな。。
0698nobodyさん2010/03/09(火) 15:51:55ID:???
>>692
マルチ乙
つ知恵袋
0699nobodyさん2010/03/09(火) 16:09:38ID:FVF0JEpR
マルチって同じ質問あるんですか?
調べてみるのでURL教えて下さい。
0700nobodyさん2010/03/09(火) 21:37:38ID:tXdsqalj
>>685
そうなんです。問題はそこ。
いったん別のオープンソースライセンスのソースを通った場合はどうなるかって事です。
しかもGPL汚染を受けるのはlibmysqlでPHPライセンスのmysqlndを利用すればGPL汚染も無くなりますよね?
ただmysqlndを使って開発をしたとしても相手の実行環境が必ずしもmysqlndではないって事もありますよね。
特にレンタルサーバの場合、利用者が接続ライブラリを選択なんてできないでしょうから

>>686,>>687
それは知っています。
問題は上記に書いたように「PHP用のGPLライセンス除外規定」と「別のオープンソースライセンスのソースを通った場合」です。
>自サーバ内でのみ使うのならソースコードを公開する必要なないんだよ
それも変わりきっています。
でもGPLになるのは変わりませんよね。
0701nobodyさん2010/03/09(火) 22:00:15ID:???
”PHP”の”バイナリ”はPHP Licenseだけど
PHP上で動くスクリプトにはライセンス関係ない
0702nobodyさん2010/03/09(火) 23:06:49ID:???
GPLになるかどうかのルールは、
GPLのものじゃなくてまず、mysqlの決めたルールに従うんですよ。
汚染とか関係ない。
0703nobodyさん2010/03/09(火) 23:48:52ID:???
PHP+MySQLでシンプルな掲示板を作ってます。

一つのテーブルに、書き込みログを30万レコード記録しているのですが、
だんだん処理が重くなってきています。

軽くする場合、どのような方法がありますか?
0704nobodyさん2010/03/09(火) 23:53:18ID:???
何の処理が重くなってきたの?
0705nobodyさん2010/03/10(水) 00:00:31ID:???
>>704 SELECT * FROM aaa WHERE id LIKE 'abcd'
こんな感じの
単純なクエリーのレスポンスです。
5万レコードなら0.05秒とかで返ってくるのですが、
レコードが増えるにつれ1秒くらい掛かってしまいます。

データ容量の制限もあるので、テーブルを分散させるのが一般的な対処方法ですか?
0706nobodyさん2010/03/10(水) 00:02:08ID:???
完全一致ならLIKE使わんほうが速いわ
0707nobodyさん2010/03/10(水) 00:04:42ID:???
つ「禁書目録」
0708nobodyさん2010/03/10(水) 00:17:30ID:???
クエリのレスポンスが遅いのになんでPHPが関係あると思ったんだよ
0709nobodyさん2010/03/10(水) 01:12:26ID:???
いや返ってくるデータが1GBとかだったらPHPが重くならないこともない
0710nobodyさん2010/03/10(水) 01:16:58ID:???
>>702
それMySQLがGPLライセンスの意味無くなるぜ。

>mysqlの決めたルールに従うんですよ。
それが正しいなら今頃MySQLはGPLを採用してないで
MyQSL Licenseてライセンスを作っていることでしょう。

ここで従うべき物はMySQLの決めごとではなくて、GPLの決めごと。
0711nobodyさん2010/03/10(水) 01:17:48ID:???
>>701
それマジで言っているの?
GPLとかLGPL勉強しなおしてきな。
0712nobodyさん2010/03/10(水) 09:14:18ID:sEFtoxmN
ヘッダーにいくつか情報載せてやりとりしてるんですが、平文そのままだとあまりよくないので
暗号化でも出来ればと思ってます。
header("test: himitsu");
himituの部分をとりあえずbase64化したのですが、受け取り側でdecodeしたら文字化けしてしまいます。
何か簡単にできる暗号化があれば教えていただけませんか。
0713nobodyさん2010/03/10(水) 09:21:55ID:???
文字コードの問題じゃないの?
0714nobodyさん2010/03/10(水) 10:03:11ID:???
>>710
MysqlはGPLライセンスではない。
07157122010/03/10(水) 10:24:59ID:sEFtoxmN
>>713
なるほど。
mb_convert_encodingでutf-8とかにしてからやったほうがいいかもしれないですね
ちょっとやってみます
ありがとうございます
0716nobodyさん2010/03/10(水) 10:53:52ID:???
そもそもデコードしないで取りだした文字列はどうなってんだよ
0717nobodyさん2010/03/10(水) 10:56:15ID:???
ライセンスの話になると必ず見解が違うのなんでだろ〜
0718nobodyさん2010/03/10(水) 11:13:49ID:???
どうでもいいから
0719nobodyさん2010/03/10(水) 11:24:48ID:8zSSeEny
preg_replace_callback( '@^ *(<\?php.*?\?>) *@m', 'hoge', $val );
preg_replace_callback( '@(<\?php.*?\?>)@mi', 'hoge', $val );

こんなソースがあるんですが、正規表現で@を使ってるのを初めて見ました。
この場合の@は/と同じ意味になるんでしょうか?それとも他の意味があるんでしょうか。
教えてください。
0720nobodyさん2010/03/10(水) 11:25:12ID:???
同じ
俺は{}派
0721nobodyさん2010/03/10(水) 11:58:02ID:8zSSeEny
>>720
ありがとうございます。同じなんですね


あともう一つ、

preg_match('!<(/p)>!') 
preg_match( "|\n</p>$|")

最初と最後がエクスクラメーションだったり
縦線だったりする時はどういう意味なんでしょうか。
0722nobodyさん2010/03/10(水) 12:07:25ID:cTVjM4iN
//九九を表示する

for ($i = 1; $i <= 9; $i++) {
for ($j = 1; $j <=9; $j++) {
echo "$i × $j = " . $i * $j . "<br>";
}
}
を実行すると
1 × 1 = 1
1 × 2 = 2
1 × 3 = 3

9 × 7 = 63
9 × 8 = 72
9 × 9 = 81
になるのですが、どのような処理を行っているのかイマイチわかりません。どなたかわかりやすく教えていただけませんか
0723nobodyさん2010/03/10(水) 12:28:04ID:???
for文外して実行してみるとか、数字変えて実行してみるとかしてみては
0724nobodyさん2010/03/10(水) 12:31:06ID:???
>>722
http://pc12.2ch.net/test/read.cgi/tech/1261057499/
0725>>7222010/03/10(水) 13:33:11ID:cTVjM4iN
>>723
どうもありがとうございます。もう一度よく考えてみます

>>724
誘導ありがとうございます
0726>>7222010/03/10(水) 13:39:24ID:cTVjM4iN
>つまり、forループ1 の 1回の処理に対して、forループ2 は最後まで回りきる

ググったら↑の文を見つけて解決しました。答えてくださった方ありがとうございました
0727nobodyさん2010/03/10(水) 14:06:28ID:8jD6opA3
$a = 1;
$b = 2;
$ex = '+';
echo $a.$ex.$b;

というコードがあるとして出力すると「1+2」となります。
結果として「3」が表示されて欲しいのですが、
上記のように式を変数で置き換えるのは駄目なのでしょうか?
0728nobodyさん2010/03/10(水) 14:12:14ID:???
変数に代入した文字はあくまでも文字であって演算子ではないのでR
0729nobodyさん2010/03/10(水) 14:19:23ID:???
>>717
見解の違いどころか>>714みたいなトンチンカンも現れた。
MySQLはGPLかコマーシャルライセンスかのデュアルライセンスを採用している。
0730nobodyさん2010/03/10(水) 14:27:38ID:pOogiIvE
URLに対してコメントを蓄積するという仕組みはどう書けばいいの?
0731nobodyさん2010/03/10(水) 14:28:46ID:???
日本語で
0732nobodyさん2010/03/10(水) 14:46:02ID:???
>>729
コマーシャルライセンスでない方はGPLに従えばいいのか?
0733nobodyさん2010/03/10(水) 15:08:50ID:???
>>730
はてなブックマークみたいな物を作りたいのか?

>>732
そういうこと。
>>714みたいな馬鹿はもうMySQLのライセンス違反していそうだけどね。
>>714がつとめているソフトハウスさんは大変だ。
0734nobodyさん2010/03/10(水) 15:29:24ID:???
>>727
eval やそれに準じた機能がある
0735nobodyさん2010/03/10(水) 15:34:08ID:???
>>732
会話が成立してないのでこれでも読んどけ。
http://www-jp.mysql.com/about/legal/licensing/faq.html
0736nobodyさん2010/03/10(水) 15:43:30ID:pOogiIvE
733さんこれに似てるものを作りたいです。
http://www.net.c.dendai.ac.jp/~keiju/#A2_3

ニコニコブックマークっぽいやつ
0737nobodyさん2010/03/10(水) 15:45:56ID:???
>>736
ざっとしかみてないがそこに全部書いてあるんじゃ?
0738nobodyさん2010/03/10(水) 15:47:04ID:PG8HaZ2b
ディレクトリごとにあるhtmlを表示させるために、
<?if(stristr($_SERVER['PHP_SELF'], "/index.php")){echo " hoge";}?>
<?if(stristr($_SERVER['PHP_SELF'], "/2/index.php")){echo " hoge";}?>
<?if(stristr($_SERVER['PHP_SELF'], "/3/index.php")){echo " hoge";}?>
としたいのですが、
TOPページは、URL/index.phpのため、大丈夫なのですが、
その他ページでは、URL/2/index.phpな為、
1行目の/index.phpも含まれ、2つ表示されてしまいます。

回避する方法は有りますでしょうか??
0739nobodyさん2010/03/10(水) 15:50:55ID:???
>>738
else if
0740nobodyさん2010/03/10(水) 16:13:38ID:PG8HaZ2b
>>738
>>739
意味はわかるのですが、書き方が分かりません。。。
例えばどの様に書けば出来ますでしょうか??
0741nobodyさん2010/03/10(水) 16:15:30ID:???
>>740
<?〜?>ブロック外れても構文解析してくれるから普通と同じように書いて大丈夫だよ
0742nobodyさん2010/03/10(水) 16:40:06ID:PG8HaZ2b
>>738
>>741
ありがとうございます。ただ、私は素人なもので、全くかけないのです。
よろしければ、サンプルで書いていただけませんか?
0743nobodyさん2010/03/10(水) 16:42:17ID:???
よろしくないのでそれくらい自分で書いてください
0744nobodyさん2010/03/10(水) 16:45:48ID:???
>>742
PHP: elseif/else if - Manual
http://jp.php.net/manual/ja/control-structures.elseif.php
0745nobodyさん2010/03/10(水) 16:48:09ID:PG8HaZ2b
>>738
>>743
ありがとうございます。
勉強します。
0746nobodyさん2010/03/10(水) 16:51:04ID:???
PHPって<?php ?>
って書かないとだめ?
<%= %>
こういうのは無い?
0747nobodyさん2010/03/10(水) 16:54:35ID:???
>>746
非推奨
0748nobodyさん2010/03/10(水) 16:55:28ID:???
>>746
http://www.php.net/manual/ja/language.basic-syntax.phpmode.php
0749nobodyさん2010/03/10(水) 17:03:58ID:???
おまいら
サンクス
phpiniの設定が必要なのか
0750nobodyさん2010/03/10(水) 17:09:16ID:PG8HaZ2b
>>738
>>743
>>744
以下では間違えてますよね。
条件を満たす方法がわからないのですが、どうすればよいのでしょうか??
<?if(stristr($_SERVER['PHP_SELF'], "/index.php")){echo "hoge";}elseif(stristr($_SERVER['PHP_SELF'], "/2/index.php")){echo "huga"";}?>
<?if(stristr($_SERVER['PHP_SELF'], "/2/index.php")){echo " hoge";}?>
<?if(stristr($_SERVER['PHP_SELF'], "/3/index.php")){echo " hoge";}?>
0751nobodyさん2010/03/10(水) 17:10:26ID:8c82Xkrk
PHP初級者だけど、誰かSkypeで話そう。
一緒に勉強してサイト作ろうぜ!
0752nobodyさん2010/03/10(水) 17:14:14ID:???
>>750
何をしたいかよくわからんが、まずその'index.php'って記述はいるのか?
0753nobodyさん2010/03/10(水) 17:15:49ID:???
>>751
>>1
0754nobodyさん2010/03/10(水) 17:16:54ID:8c82Xkrk
ここ質問スレかorz
0755nobodyさん2010/03/10(水) 17:20:53ID:PG8HaZ2b
>>738
>>753
例えば、
URL/index.php
のページにhogeを出力
URL/2/index.php
のページにhugaを出力
といったふうにしたいのです。

ただ、自分の書き方だと、
URL/2/index.php
のページにはhoge、hugaともに出てしまうということです。
0756nobodyさん2010/03/10(水) 17:25:56ID:8c82Xkrk
まずstristrを使う意味がよくわからないし、

if($_SERVER['PHP_SELF'] == /index.php){
hoge
} elseif($_SERVER['PHP_SELF'] == /2/index.php){
huga
}

でいいんじゃないですか???
0757nobodyさん2010/03/10(水) 17:26:46ID:???
PHPはよくしらないけど
<?if(stristr($_SERVER['PHP_SELF'], "/index.php") == 0){echo " hoge";}?>
でいいんじゃ
0758nobodyさん2010/03/10(水) 17:27:03ID:???
例えばじゃなくて実際の話しろよ
回答者をなめくさってんの?
0759nobodyさん2010/03/10(水) 17:28:23ID:8c82Xkrk
まずstristrを使う意味がよくわからないし、

if($_SERVER['PHP_SELF'] == /index.php){
hoge
} elseif($_SERVER['PHP_SELF'] == /2/index.php){
huga
}

でいいんじゃないですか???
0760nobodyさん2010/03/10(水) 17:32:30ID:???
if(preg_match('/¥d+/',$_SERVER['PHP_SELF']))
{
echo 'hoge';
}
else
{
echo 'fuge';
}

かな
0761nobodyさん2010/03/10(水) 17:35:23ID:???
えっw
0762nobodyさん2010/03/10(水) 17:41:28ID:8c82Xkrk
サイト作りたいんだけど誰か共作しませんか?
0763nobodyさん2010/03/10(水) 17:42:19ID:???
いいよ
0764nobodyさん2010/03/10(水) 17:45:16ID:8c82Xkrk
おお、ありがとうございます!
連絡取りたいんでSkypeって持ってますか?
0765nobodyさん2010/03/10(水) 17:51:03ID:???
持ってないです
0766nobodyさん2010/03/10(水) 17:52:33ID:8c82Xkrk
http://ch2.chaberi.com/chat/blue3/15

とりあえずここ来て下さい
0767nobodyさん2010/03/10(水) 18:01:38ID:8c82Xkrk
誰も来ないorz
0768nobodyさん2010/03/10(水) 18:04:34ID:???
なんでわざわざチャット?
中学生かなんか?
0769nobodyさん2010/03/10(水) 18:06:00ID:8c82Xkrk
Skypeないし、メアドもここじゃ晒せないんで、
連絡手段なくないですか?
0770nobodyさん2010/03/10(水) 18:10:02ID:8c82Xkrk
IDないと誰が誰だかわからない・・・
0771nobodyさん2010/03/10(水) 18:13:37ID:???
共作ってどんな感じでやるの?
0772nobodyさん2010/03/10(水) 18:16:20ID:???
Subversionの鯖誰が用意すんの?
0773nobodyさん2010/03/10(水) 18:17:36ID:???
何をつくるの?
0774nobodyさん2010/03/10(水) 18:17:53ID:8c82Xkrk
アイディア出して役割分担してやる感じです。
自分は基本的なことしかできないんですがw

鯖はレンタルサーバーです
0775nobodyさん2010/03/10(水) 18:18:12ID:???
お前らスレ違いだからそのチャットで聞いてくれよ
0776nobodyさん2010/03/10(水) 18:18:51ID:PG8HaZ2b
>>738
>>758
例えば、というかほとんどそのままなんですが、
<li<?if(stristr($_SERVER['PHP_SELF'], "/index.php")){echo " class=\"hoge\"";}?> ><a href="">index</a></li>
<li <?if(stristr($_SERVER['PHP_SELF'], "/1/index.php")){echo " class=\"hoge\"";}?>><a href="/1/">1</a></li>
<li <?if(stristr($_SERVER['PHP_SELF'], "/2/index.php")){echo " class=\"hoge\"";}?>><a href="/2/">2</a></li>
のようなナビゲーションをインクルードさせて読み込ませているという意味でした。
該当URL表示時にclass="hoge"を出したかったのですが、上記回答頂いた方もものだと、出来ませんでした。
ご回答頂いた方ありがとうございます。
0777nobodyさん2010/03/10(水) 18:21:11ID:8c82Xkrk
すいません
以後チャットで話します。。
0778nobodyさん2010/03/10(水) 18:21:35ID:???
>>774
役割分担について詳しく
0779nobodyさん2010/03/10(水) 19:31:35ID:???
お前の物は俺の物
俺の物は俺の物
0780nobodyさん2010/03/10(水) 19:56:36ID:???
新手の個人情報引き出し詐欺w
0781nobodyさん2010/03/10(水) 19:58:42ID:wG/HRXu2
PHPで、日本語文字列(UTF-8)を
????
みたいなエンティティに変換するのってどうやるのですか?
ぐぐってurlencodeや、htmlentitiesというのを使ってみたけど、望む出力は出ないようです。
0782nobodyさん2010/03/10(水) 19:59:59ID:wG/HRXu2
文字化けた…
&#12392;&#12371;&#12429;&#12391;
全角なら大丈夫かな。こういう出力が欲しい。
0783nobodyさん2010/03/10(水) 21:01:54ID:???
$string = "はいはいワロスワロス";
$result = mb_convert_encoding($string , "Unicode" , "UTF-8");
$length = mb_strlen($result , "Unicode");
$i = 0;
for($i = 0; $i < $length; $i ++){
  echo "?" . bindec(mb_substr($result , $i , 1 , "Unicode")) . ";";
}
たぶんこう
0784nobodyさん2010/03/10(水) 21:08:34ID:???
$string = "はいはいワロスワロス";
$result = mb_convert_encoding($string , "Unicode" , "UTF-8");
$length = mb_strlen($result , "Unicode");
$i = 0;
for($i = 0; $i < $length; $i ++){
  echo "&#x" . bin2hex(mb_substr($result , $i , 1 , "Unicode")) . ";";
}
bindecは別の関数だった
0785nobodyさん2010/03/10(水) 22:22:49ID:???
配列の要素を削除して、全体の個数と添え字のナンバーがずれないように出来ますか。

$A=array(1,2,3,4);
print_r($A);

unset($A[2]);
print_r($A);

これだと添え字が個数とずれるんですが。
■ このスレッドは過去ログ倉庫に格納されています