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

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

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

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

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0613nobodyさん2012/12/22(土) 05:45:28.08ID:???
ルート権あんのか?
0614nobodyさん2012/12/22(土) 11:35:00.04ID:???
>>612
>【OS名】さくらレンタルサーバ
そんなOSは無い
VPS以上のプランならcentOSだからデフォで内部文字コードUTF-8なんじゃね?(使ったこと無いけど)
辞書をutf-8にするよりも戻ってきた形態素をphp上でエンコードするほうがスマートだと思う
0615nobodyさん2012/12/22(土) 11:56:57.77ID:RsB7VEoj
>>614
ありがとうございます。
さくらのレンタルサーバのスタンダードなので、ルート権限はないです。
0616nobodyさん2012/12/22(土) 12:09:56.19ID:b4fHgnvI
>>615
$権限でいけるいける
マウントとかOSパッケージのインストールとかじゃなければ#権限じゃなくてもいける

ていうか デフォでmecab入ってるってほんと?公式だとビジネスプラン以上って書いてあるけど
【質問】ディレクトリどこよ?
0617nobodyさん2012/12/22(土) 13:07:59.34ID:???
>>612
先駆者見つけた
http://kane.meta-scheme.jp/article/37183101.html
0618nobodyさん2012/12/22(土) 13:48:43.05ID:RsB7VEoj
>>616
mecabがあるディレクトリは
/usr/local/bin/mecab
です。
スタンダードでも使えるみたいです。
何回かsuで試したのですが、パーミッションディナイドと出てきます。
0619nobodyさん2012/12/22(土) 13:50:46.16ID:???
euc_jpのままでいいじゃない
0620nobodyさん2012/12/22(土) 13:58:20.44ID:RsB7VEoj
>>617
そちらの方は既に試しました。ブログ通りターミナル上で試す分には上手くいくのですが、
実際、サーバーにアップしたものをwebブラウザ上で見るとeuc.jpです。
0621nobodyさん2012/12/22(土) 15:00:39.48ID:RsB7VEoj
%mecab -D
を試したところ
インストールしたutf-8のものに変わっていました。
しかし、デフォルトのものでなくなってパスがあってないためか、
Webブラウザ上では
Class 'Mecab' not found
とエラーが出てしまいます…
0622nobodyさん2012/12/22(土) 15:17:16.08ID:???
php.iniやらhttp.confいじらなきゃだめなんじゃね?
0623nobodyさん2012/12/22(土) 17:29:37.60ID:b4fHgnvI
>>618
うぎゃああああ 入ってたああああ ちくしょおおおお

$comment=mb_convert_encoding ($comment, "EUC-JP" , "UTF-8");
してからメカブに渡して戻りをを
mb_convert_encoding ($ret, "UTF-8", "EUC-JP" );
でphpにもどしてやればいいんじゃね
0624nobodyさん2012/12/22(土) 18:06:44.86ID:???
ここは頭を柔軟にして、日本語を使わないという手もある
0625nobodyさん2012/12/22(土) 18:10:49.57ID:???
mecabいらねーじゃんw
0626nobodyさん2012/12/22(土) 19:19:29.14ID:RsB7VEoj
>>623
それだと変数の中身が
Array
という文字列だけになってしまいました。
0627nobodyさん2012/12/22(土) 19:20:48.43ID:???
配列の中身を展開しろよ
06282022012/12/22(土) 19:42:46.10ID:8rmgur1Z
print_r
0629nobodyさん2012/12/22(土) 20:11:06.27ID:RsB7VEoj
$str = "MeCab extensionのインストールは大変だった";
$result = mecab_split($str);
$result = mb_convert_encoding($result, 'utf-8', 'euc-jp');
print_r($result);

これだとWebブラウザに表示される文字列はArrayのみです。
3行目を消して試すと、euc-jpでちゃんと表示されます。
0630nobodyさん2012/12/22(土) 20:34:47.07ID:???
mb_convert_encodingで渡すのはstringだし
$resultは配列だと思うのでそんなもの渡しちゃいけません
array_mapとか使ってください
0631nobodyさん2012/12/22(土) 21:27:34.17ID:???
mecabとか初めてきいたわ
0632nobodyさん2012/12/22(土) 21:40:19.85ID:???
めかぶ酒
0633nobodyさん2012/12/22(土) 22:33:05.11ID:b4fHgnvI
<?php >>626強引にやったった
$mecab = mecab_new();
$str_org = '私には夢があります。ベッカム夢の夢567 by 菊蔵下さいabcマートです。5本指。ABCマート。ABCマートベです。123';
$str=htmlspecialchars($_GET['comment'], ENT_QUOTES);
$noun_array = array();//名詞を格納する配列
$str2mecab=mb_convert_encoding ($str, "EUC-JP" , "UTF-8");
if ($node = mecab_sparse_tonode($mecab, $str2mecab)){
while ($node){
$node_array = mecab_node_toarray($node);
//char_typeが2、5、7の単語を抽出
if($node_array["char_type"] == "2" || $node_array["char_type"] == "5" || $node_array["char_type"] == "7"){
array_push($noun_array, $node_array["surface"]);
}
$node = mecab_node_next($node);
}}
$utf8_array=array();
foreach($noun_array as $value){
$value_utf8=mb_convert_encoding ($value, "UTF-8", "EUC-JP" );
array_push($utf8_array, $value_utf8);
}unset($value);
$str2php = implode("<br />\n",$utf8_array);
echo <<<EOT
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml";>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
<body>
$str2php<hr />
<form action="" method="get"><textarea name="comment" cols="50" rows="10">$str_org</textarea><br />
<input type="submit" value="Analysis" class="sbtn" /></form></body></html>
EOT;
mecab_destroy($mecab);
?>
0634nobodyさん2012/12/23(日) 10:57:42.25ID:???
ちなみにさくらの共有サーバーのOSはfreeBSD
0635nobodyさん2012/12/23(日) 16:16:14.39ID:???
>>633
神です!!
ありがとうございます!!
0636nobodyさん2012/12/24(月) 10:10:36.87ID:???
PHPかMySQLかどちらで聞こうか迷ったのですが、何となくこちらに。
現在ec-cubeで運用中のサイトのリニューアルを行なっています。

運用中のサイトに影響が出にくいよう、
開発用のサーバとは完全に分離の上、
更新分のSQLを用意する形で移行したいのですが、
その方法で悩んでいます。

PHPのソースだけならsvnなりgitなりの差分更新でおしまいなんですが、
DBの部分はそれが効かないので、
うまいことSQLで開発環境の開始前、終了時の差分をとって
一発ドゴーンでおしまいにしたいのですが。
(手作業で無理やりマージすると、今度はsvnでバッティングの嵐に…)

このあたり検索したらmysql structure compareなるものを見つけましたが、
これはテーブル定義の差分は取れましたが
中身の差分まではとってくれませんでした。

なにかよい方法がありましたらアドバイス頂けないでしょうか?
0637nobodyさん2012/12/24(月) 10:21:32.17ID:???
テキストにダンプ取れば一般のツール使えるんじゃね?
0638nobodyさん2012/12/24(月) 12:16:43.67ID:???
ダンプ一択
0639nobodyさん2012/12/24(月) 15:38:40.36ID:???
ダンプ、ダンプじゃねぇよ糞共、ID出させろよ
ったく、最近は回答側もスレタイすら読めないクズばっかか。
0640nobodyさん2012/12/24(月) 16:07:41.27ID:???
>>639
荒しは放置
06416362012/12/24(月) 17:23:56.53ID:4BlK1+LV
ID表示方法見ていなくてすみません。

>>637-638
insertは簡単に抜き出せても、updateはダメじゃ手間かかりすぎかなと。

phpmyadminにテーブルの追跡なる機能を見ておっとなったのですが、
phpmyadminからの更新しか監視してくれないし。
うーんどうするかなぁ。
0642nobodyさん2012/12/24(月) 22:48:28.65ID:bhWdVJQ6
【OS名】FreeBSD
【PHPのバージョン】5.2.17
【質問内容】
PHPの配列で重複項目をカウントし、その重複数ごとに別々の配列に格納したいです。

例えば
$a = ("りんご","りんご","みかん","なし","りんご","なし","いちご","みかん");
$a = array_count_values($a);

それこの後、
重複数が3つ以上なら => $ar3
重複数が2つなら => $ar2
重複数が1つなら => $ar1
に格納されるようにしたいです。

上記のものなら
$ar3 = ("りんご");
$ar2 = ("みかん","なし");
$ar1 = ("いちご");
のような感じで。
0643nobodyさん2012/12/24(月) 22:54:02.99ID:???
個数を数えろゴミカス
0644nobodyさん2012/12/24(月) 22:56:57.38ID:sujgadE1
foreachでまわしてそれぞれカウントすればいいじゃん
0645nobodyさん2012/12/24(月) 23:15:26.93ID:???
名無しだからクソコードでも恥ずかしく無いモン!

<?php
$a = array ("りんご","りんご","みかん","なし","りんご","なし","いちご","みかん");
$a = array_count_values($a);
$b = array_unique($a);


foreach ($a as $key => $value) {
${'ar' . $value}[] = $key;
}

foreach ($b as $value) {
print_r(${'ar' . $value});
}
?>
0646nobodyさん2012/12/24(月) 23:22:41.88ID:sujgadE1
phpはいいよな
誰にもソース見られない
HTMLが汚くても自動出力だからしょうがないと思ってもらえる
0647nobodyさん2012/12/24(月) 23:23:07.05ID:???
$a = array("りんご","りんご","みかん","なし","りんご","なし","いちご","みかん");
$a = array_count_values($a);
$ar = array();
foreach ($a as $value => $key) {
$ar[$key] = (isset($ar[$key])) ? $ar[$key] : array();
array_push($ar[$key], $value);
}
print_r($ar);
0648nobodyさん2012/12/25(火) 00:58:53.04ID:+G43GQs5
ありがとうございます。
$aに
りんごというワードが12個
みかんというワードが6個
なしというワードが5個
いちごというワードが2個

入ってて
10個以上なら
$ar1に
5個以上、10個未満なら
$ar2に
というようにするにはどうしたらいいですか?
0649nobodyさん2012/12/25(火) 00:59:51.82ID:???
小出しにすんじゃねえよ
0650nobodyさん2012/12/25(火) 01:00:51.31ID:???
丸投げにしないで少しは努力しろ
if-else使え
0651nobodyさん2012/12/25(火) 01:20:52.06ID:+G43GQs5
if文を使うのは分かるのですが
変数の部分をどう書くかが分からなくて。
if(○○○ >= 10 ){

}else if(○○○ < 10 && ○○○ >= 5 ){

}

という感じで書くのは分かりますが、変数をどうカウントして○○○の部分を書いたらいいか分からなくて。

お願いします。
0652nobodyさん2012/12/25(火) 01:23:25.01ID:???
各位に使用できる数字(または文字)に制限がある
n桁の整数(文字列)を生成したい。

1桁目: 1, 2
2桁目: 4, 5, 6
3桁目: 7, 8

この場合だと 2*3*2 = 12 通りの整数が作れます。
forを3重にすればできるのですが、このやり方は避けたい。
n桁になっても対応できるコードを書きたいです。

いいやり方、教えてください。
0653nobodyさん2012/12/25(火) 01:38:22.65ID:???
>>652
>>1
0654nobodyさん2012/12/25(火) 01:39:18.43ID:???
>>651
マニュアル嫁
06556522012/12/25(火) 01:44:19.26ID:???
自己満足しました。どうもです。
0656nobodyさん2012/12/25(火) 01:47:25.03ID:+G43GQs5
【OS名】FreeBSD
【PHPのバージョン】5.2.17
【質問内容】
PHPの配列で重複項目をカウントし、その重複数ごとに別々の配列に格納したいです。

$aに
りんごというワードが12個
みかんというワードが6個
なしというワードが5個
いちごというワードが2個

入ってて
10個以上なら
$ar1に
5個以上、10個未満なら
$ar2に
というようにしたいです。

$ar1 = ("りんご");
$ar2 = ("みかん","なし");
のような感じで。

$a = array_count_values($a);
if(○○○ >= 10 ){

}else if(○○○ < 10 && ○○○ >= 5 ){

}

のような感じに書くのは分かりますが、途中が分からなくて。
色々なページを見たのですが、分からないのでよろしくお願いします。
0657nobodyさん2012/12/25(火) 01:48:28.17ID:???
>>656
>>654
0658nobodyさん2012/12/25(火) 01:49:43.53ID:???
>>656
基礎からやりませんか?
0659nobodyさん2012/12/25(火) 02:12:24.47ID:+G43GQs5
マニュアルは既に見ました><
○○○の部分は
$inputでいいのでしょうか?
0660nobodyさん2012/12/25(火) 02:23:58.49ID:???
>>659
マニュアルのどこ見たの?
0661nobodyさん2012/12/25(火) 02:30:25.71ID:+G43GQs5
>>660
array_count_valuesの部分です。
0662nobodyさん2012/12/25(火) 02:32:26.75ID:???
配列の使い方とforeachの勉強をしませんか?
0663nobodyさん2012/12/25(火) 02:41:54.85ID:???
>>661
基礎文法のとこ見な
0664nobodyさん2012/12/25(火) 07:54:07.28ID:???
>>656
何にでも関数があると思うな
少しは自作しろクズ
0665nobodyさん2012/12/25(火) 07:55:33.32ID:???
>>652
2進数をすべて列挙するとか問題を単純化してみろ
0666nobodyさん2012/12/25(火) 09:05:16.72ID:???
>>656
マニュアルの「パラメータ」と「返り値」の項目、および「例」を
見るだけじゃなくて、理解してください。
天才でもない限り、絵画を見るように文字を見て理解する人はいません。
0667nobodyさん2012/12/25(火) 09:23:41.90ID:???
返り血
0668nobodyさん2012/12/25(火) 12:29:47.53ID:???
戻り値だな
昔は返り値っていう人が多かったけど今は戻り値が多い気がする
0669nobodyさん2012/12/25(火) 12:41:00.66ID:TWYXsO9B
どっちでもいいじゃんww
0670nobodyさん2012/12/25(火) 12:54:30.77ID:???
返り血を連想するから返り値を避けて戻り値にするが、
値を戻すとは言わず値を返すと言うのである
0671nobodyさん2012/12/25(火) 13:20:06.31ID:???
アクセントの箇所が違うし(返り値=え 返り血=ち)
返り血と間違うから使うなって主張はあるみたいだけど馬鹿なこと言ってんなと思う
0672nobodyさん2012/12/25(火) 13:29:17.29ID:7T5WksfN
え、、、違うか?
0673nobodyさん2012/12/25(火) 13:53:28.66ID:???
>>671
別にどっちでもいいんだけど、統一された考えがないから紛らわしいのを避けるんだよ、普通の人はね?
そのアクセントの違いが統一された考えなの?
松本龍じゃなくても「コンセンサス得ろよ!」って言われるよ?
0674nobodyさん2012/12/25(火) 13:57:20.99ID:KLz+uV4m
>>652 強引にやったったったあああ

<?php

//データ部
$num=array(
array(1, 2),
array(4, 5, 6),
array(7, 8),
//array(4, 5, 6),
array(7, 8),
);

//処理部
$digit=count($num);//桁数
$max_num=str_repeat(9,$digit);
$min_num=str_repeat(1,$digit);
for($i=$min_num;$i<$max_num;$i++){
$mach=0;
for($j=0;$j<$digit;$j++){
if(in_array(substr($i,$j,1),$num[$j])){
$mach++;
}
}
if($mach==$digit){
echo $i."<br />\n";
}
}
?>
0675nobodyさん2012/12/25(火) 14:06:11.80ID:???
>>673
質問はID出せ
0676nobodyさん2012/12/25(火) 14:29:28.79ID:???
>>652
$num=array(
array(1,2),
array(4,5,3),
array(7,8),
);
$start=pow(10,count($num)-1);
$end=pow(10,count($num));
for($i=$start;$i<$end;$i++){
foreach($num as $k=>$v) if(!in_array(substr($i,$k,1),$v)) continue 2;
print $i."\n";
}
0677nobodyさん2012/12/25(火) 17:11:15.22ID:???
戻り値って胸焼けする響き・・・吐きそうで嫌だ!
0678nobodyさん2012/12/25(火) 17:23:52.55ID:???
返り血とか返却のがきもい
0679nobodyさん2012/12/25(火) 17:26:26.47ID:???
>>652

$num = array(
array(1, 2),
array(4, 5, 6),
array(7, 8),
);

function get_combinations($digits)
{
$first = array_shift($digits);
if ($digits) {
$combinations = get_combinations($digits);
} else {
return $first;
}
$ret = array();
foreach ($first as $digit) {
foreach ($combinations as $combination) {
$ret[] = $digit . $combination;
}
}
return $ret;
}

print_r(get_combinations($num));
0680nobodyさん2012/12/25(火) 17:27:00.99ID:???
もうreturn valueでいいじゃん和訳なんていらんわ
0681nobodyさん2012/12/25(火) 17:39:46.96ID:???
英語と日本語混ぜて使ってるとルー語と勘違いされるよ
0682nobodyさん2012/12/25(火) 17:42:36.12ID:???
ttp://togetter.com/li/345155
楽天の求人がルー語でヤバイ!
0683nobodyさん2012/12/25(火) 17:45:57.69ID:???
今日もくだらない事よく議論し続けられるな
0684nobodyさん2012/12/25(火) 17:49:53.06ID:???
ドキュメントが歯抜けなフレームワークとかの質問とかだったらまだありそうだけど、
素のPHPのことについての質問はマニュアル読めば解決することばかりだからな
そんなスレがこの板で一番勢いがある・・・
0685nobodyさん2012/12/25(火) 18:11:05.61ID:KLz+uV4m
>>682
オポチュニティびろーん
0686nobodyさん2012/12/25(火) 18:16:11.12ID:???
アジェンダ党を思い出すな
0687nobodyさん2012/12/25(火) 18:53:34.54ID:???
wikipediaで関数か函数かで揉めたことあったなw
0688nobodyさん2012/12/25(火) 19:02:40.72ID:???
市立 いちりつ
私立 わたくしりつ
0689nobodyさん2012/12/25(火) 19:06:54.82ID:???
売春 ばいしゅん
買春 かいしゅん
0690nobodyさん2012/12/25(火) 23:49:58.52ID:HlTbcV5b
ttp://www.tryphp.net/2012/01/10/phpapptwitter-user_timeline/
このページを参考にして鍵付きアカウントのTL取得は出来たのですが、
ツイートやID表示以外に
ツイートの添付写真を表示したり、つぶやき時刻を表示させたりするには
どうしたらいいのでしょうか
0691nobodyさん2012/12/25(火) 23:51:15.81ID:???
APIの仕様まで聞かれてもなあ
0692nobodyさん2012/12/25(火) 23:54:34.25ID:HlTbcV5b
やっぱりスレチになってしまいますかね…
別所で聞いてみます
0693nobodyさん2012/12/26(水) 05:04:32.68ID:yPzrDhQJ
素人質問ですが下の配列のキーがpassの値をforeach使わずに取り出すのはどうやるんですか?

$_SESSION["login"]=array(
"name" => $row["name"],
"sex" => $row["sex"],
"birth" => $row["birth"],
"ID" => $row["ID"],
"pass" => $row["pass"],
"h_pass" => $row["h_pass"],
"mail" => $row["mail"],
"aikotoba" => $row["aikotoba"],
"login_time" => time()
)
0694nobodyさん2012/12/26(水) 05:15:52.15ID:???
>>693
マニュアルくらい嫁
0695nobodyさん2012/12/26(水) 05:22:53.79ID:???
>>693
>>694 さんの仰る通りだ。
どこの誰かわからん人の解説には
一番基本的な方法は書かれていない事が多い。
本当に素人ならググるな。公式見ろ。
0696nobodyさん2012/12/26(水) 05:25:51.87ID:yPzrDhQJ
いやスレタイに…
0697nobodyさん2012/12/26(水) 05:36:19.47ID:???
セッション持ちだしてきてその質問はないだろう。。。
0698nobodyさん2012/12/26(水) 06:11:12.62ID:???
>>696
>>1
>・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
>(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

ルールを守っていないのはどなた?
0699nobodyさん2012/12/26(水) 07:13:49.17ID:???
あんまいじめんな
ヒント:多次元配列
0700nobodyさん2012/12/26(水) 07:26:54.59ID:???
擁護はID出せ
0701nobodyさん2012/12/26(水) 07:28:10.64ID:???
要介護はID出せ
0702nobodyさん2012/12/26(水) 07:31:20.91ID:???
いじめっ子現るw
0703nobodyさん2012/12/26(水) 07:55:36.27ID:???
どこがいじめだ朝鮮人みたいな奴だな
0704nobodyさん2012/12/26(水) 08:07:37.14ID:???
謝罪と賠償を要求する頃
0705nobodyさん2012/12/26(水) 09:56:29.68ID:???
ニコンのあれか
0706nobodyさん2012/12/26(水) 10:07:39.18ID:???
>>693
$_SESSION["login"]["pass"]
0707nobodyさん2012/12/26(水) 15:02:11.89ID:???
$_SESSION['login']['pass']
の方がいいよ!
0708nobodyさん2012/12/26(水) 17:01:19.04ID:vB6Sb+xf
execを書いているtest.phpにブラウザからアクセスしても反応無しですが、
SSHのコマンドラインからtest.phpを実行すると、正常に処理されます。

これって何が原因なのでしょうか?
ファイルの所有権はrootでsafe_modeもOFFです。
0709nobodyさん2012/12/26(水) 17:25:49.81ID:???
アクセス権の実行は?
0710nobodyさん2012/12/26(水) 17:33:09.06ID:vB6Sb+xf
>>709
ファイルのパーミッションじゃなくてですか?それは問題ないと思います。
ちなみに、
exec('ls -l', $buf);
print_r($buf);

とすると、ブラウザからアクセスしてもコマンドが実行されて
ブラウザ上にディレクトリ内一覧が出力されます。
0711nobodyさん2012/12/26(水) 17:39:06.12ID:???
反応なしってどういう反応を期待してんだよ?
0712nobodyさん2012/12/26(水) 18:10:31.24ID:???
php経由で実行するときのユーザーは誰なんだよ、apacheとか?
そしてそのユーザーの実行権限は入ってるの?
lsがうまくいくって言ってるけど、該当のプログラムは標準出力に出してるの?
httpdのエラーログに何か入ってない?
■ このスレッドは過去ログ倉庫に格納されています