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

【PHP】下らねぇ質問はここに書き込みやがれ 50

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/07/11(水) 17:50:01ID:fYd+34US
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 49
http://pc11.2ch.net/test/read.cgi/php/1182794620/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0153nobodyさん2007/07/14(土) 13:32:03ID:???
>>152
多分、このスレの中の文字列を形態素解析して、
このスレのテーマと距離的に近いスレを表示しているのではないかと。
自然言語学と統計学的処理をしているので、phpの知識ではどうにもならないと思うけど。
0154nobodyさん2007/07/14(土) 13:38:28ID:???
         \   ∩─ー、    ====
           \/ ● 、_ `ヽ   ======
           / \( ●  ● |つ
           |   X_入__ノ   ミ   そんなエサで俺様がクマ――!!
            、 (_/   ノ /⌒l
            /\___ノ゙_/  /  =====
            〈         __ノ  ====
            \ \_    \
             \___)     \   ======   (´⌒
                \   ___ \__  (´⌒;;(´⌒;;
                  \___)___)(´;;⌒  (´⌒;;  ズザザザ
                               (´⌒; (´⌒;;;
0155nobodyさん2007/07/14(土) 13:50:04ID:???
Googleのキャッシュ機能みたいなのを作りたいんですけど、
考え方としては、fopenなどで読み込んだ先のサイト(HTMLソース)を
保存するだけで良いんですかね?
0156nobodyさん2007/07/14(土) 13:50:23ID:vP7abusR
>>146
改行は改行コードでしまっておいて無害化した後に改行を<br>に置換じゃだめ?
0157nobodyさん2007/07/14(土) 13:52:50ID:???
>>152
テレビの視聴率調査と同じ。
調査用の機器にあたるソフトを配って
それを介して2chにアクセスしたデータを統計的に処理してる。
ただ2chの場合テレビと違ってチャンネル数(=スレ)が異常に多くて
サンプル数まだまだなので、現状では余り精度は良くないらしい。
0158nobodyさん2007/07/14(土) 13:53:05ID:???
>>155
実装方式としては問題ないけど、日本でそれをやると著作権法違反になる。
合法的にやるなら、googleのキャッシュに表示されているHTMLを
キャッシュする必要がある。
01591522007/07/14(土) 13:56:50ID:42mprax5
>>153>>157
すいません。ちょっとわかりにくいかも。
cookieを使ってやってると聞いたことがあるのですが。
具体的にgookieを使ってどうやってるのか、わかりますか?
0160nobodyさん2007/07/14(土) 13:57:28ID:???
>gookie
>gookie
>gookie
>gookie
>gookie
0161nobodyさん2007/07/14(土) 14:00:28ID:???
>>159
だから視聴率調査機がフリーソフトであるからそれをインストールして
サーバに視聴情報を送るんだよ。そのソフトの名前がgookie。
0162nobodyさん2007/07/14(土) 14:07:02ID:???
>>159
cookieを使おうが使うまいが、それは情報を収集する一手段に過ぎないわけでしょ。
その情報をどう解析しどう集計するかは、自然言語学や統計学(多変量解析など)の知識が必要。
その知識がなけらば誤解析だらけの使い物にならないものが出来上がる。
例えば、phpという言葉だけではphp研究所のphpと言語としてphpの区別が付かない。
どういう文脈でphpが使われているかを調べるのが自然言語処理学であり、
それらの言葉の集合がどのスレの言葉のスレと近いのかを意味的距離を数量的に測るのが統計学。
だから、サーバー側のPG知識だけではどうにもならないよ。
01631522007/07/14(土) 14:37:22ID:42mprax5
>>162
いや、cookieとPHPだけでできると思うんですけど?
0164nobodyさん2007/07/14(土) 14:49:26ID:???
>>163
もしそれだけで本当にできるなら画期的な発明だ。
ぜひやり方を教えてほしい。
0165nobodyさん2007/07/14(土) 14:50:41ID:???
いやPHPだけでできると思いますけど…
0166nobodyさん2007/07/14(土) 15:06:19ID:???
多分、相当安易に考えていると思うなぁ。
最後までイメージしてから作り始めないと、
ある時点で壁にぶちあたるよ。

まぁ、とりあえず、作ってみて、
壁にぶつかったら、またこのスレにおいで。
01671522007/07/14(土) 15:09:42ID:42mprax5
>>166
えらそうなこと言ってるけど
簡易版でいいからどうやって作るのか言ってみてよ
0168nobodyさん2007/07/14(土) 15:27:19ID:???
難しく考えすぎ

2chは直前に書き込んだときのホスト名をCookieに保存している。
2chの書き込みシステム(bbsdだっけ?これはPHPではなくC言語)で、書き込みをまとめて管理する。
書き込みをするとき、今のホスト名と、Cookieにあるホスト名が一致するとき(つまりIPアドレスが変更されていないとき)、
この人は前書き込んだスレも見ていたことになる。
あとはbbsdから前に書き込んだスレ名を取得すれば完成。
01691552007/07/14(土) 16:49:28ID:???
>>158
そうなんですか!?

でも、別にサイト情報(URLやサイト名)は、取得しても問題ないですよね?
てか、googleも日本サイトの情報を保存している気が・・。
0170nobodyさん2007/07/14(土) 17:17:06ID:???
googleのサーバーは日本には置いてないと思う。
0171 ◆ykYUYrisZU 2007/07/14(土) 18:17:19ID:2KBXWsYs
配列が格納されている変数$dbからNumberのみを下記の入れ子の連想配列のようなものから取り出し、
1. Number 2. Number 3. Number 4... という風に表示したいと考えています。
いろいろ試したのですが、配列操作が苦手で取り出し方がよくわからず困っています。
わかる方教えていただけると助かります。よろしくお願いします。<(_ _)>

こんな感じの配列がひとつの変数$dbに格納されています。Irekoの配列数は固定ではありません、Irekoの数が10や8と多いものもあります。NumberとTitleは必ず用意されています。

array(1) { ["Data"]=> array(3) { ["Number"]=> string(8) "AX14222411" ["Title"]=> string(21) "リンゴ"
["Ireko"]=> array(1) { ["Data"]=> array(3) { ["Number"]=> string(8) "AX2429561" ["Title"]=> string(15) "オレンジ"
["Ireko"]=> array(1) { ["Data"]=> array(2) { ["Number"]=> string(8) "AX221531" ["Title"]=> string(22) "レモン" } } } } } }
0172nobodyさん2007/07/14(土) 19:18:45ID:???
>>152-167
自演しまくりワロタ
0173nobodyさん2007/07/14(土) 19:52:55ID:IGNHoFx0
>>171
適当に作ったから、見にくくてあんま綺麗じゃないけど勘弁な、


#!/usr/bin/php -q
<?php
$db = array(
"Data" => array("Number"=>"AX14222411","Title"=>"リンゴ","Ireko"=> array(
"Data" =>array("Number"=>"AX2429561","Title"=>"オレンジ","Ireko"=> array(
"Data" =>array("Number"=>"AX221531","Title"=>"レモン",),),),),),);

$ret = array();
get_hoge($db,$ret);
var_dump($ret);

function get_hoge($arr,&$ret){

if(!isset($arr["Data"])) return true;
foreach ($arr["Data"] as $k => $v){
if("Number"==$k){
$ret[]=$v;
}
if("Ireko"==$k){
get_hoge($v,$ret);
}
}
return true;
}
0174nobodyさん2007/07/14(土) 20:05:14ID:o7OpzzBd
>>150-151
お礼が遅くなってすみません。
ありがとうございます。
0175 ◆ykYUYrisZU 2007/07/14(土) 20:15:57ID:2KBXWsYs
>>173
素晴らしいです!!!!
これでやりたかったことができます。
ありがとうございました。

0176nobodyさん2007/07/14(土) 20:34:41ID:v9du19eY
FLASH(SWF4)からgetURL()+POSTを使ってPHPでランキングを作っています。
しかし、FLASHからPHPのページへgetURL()を使って飛び、更新すると何回も重複してランキングに追加されてしまいます。
原因が分かる方がいましたら、回避する方法をお願いします。
0177nobodyさん2007/07/14(土) 20:57:20ID:???
>>176
違うページにリダイレクトすべし
0178nobodyさん2007/07/14(土) 21:14:22ID:???
文字列の置き換え(preg_replace)で
特定の規則に挟まれた文字列を変換することは出来ますか?
(挟まれた文字列は特定不可)
例えば

177 名前:nobodyさん :2007/07/14(土) 20:57:20 ID:???
     ~~~~~~~~~~

↑の名前部分は、
・数字、空白、既定文字列「名前」、コロン
と
・2007で始まる数字
の間にある、ということ以外は不規則ですが、
このようなものも変換できますか?
また可能ならば、具体的なコードを教えてもらえるとありがたいです。
宜しくお願いします。
0179nobodyさん2007/07/14(土) 21:30:54ID:???
>>178
後方参照を使う
0180nobodyさん2007/07/14(土) 21:32:13ID:v9du19eY
>>177
返答ありがとうございます。
それはランキングへ追加したあとheader("Location: http://";);で飛ばすということでしょうか?
ですが、違うページへ飛しても再び前のページ(ランキングのPHPが記述された)へ戻り、更新を押すと再びランキングに重複してしまいます。
失礼ですが他の方法は無いでしょうか?
0181nobodyさん2007/07/14(土) 21:33:17ID:???
>>178
自分で答えかいてるじゃん、そのまんま正規表現つくってみ。

ついでに答えも書いとくが、文中にこのフォーマットの引用がある場合にも引っかかるだろうから、あとはうまく調整汁

#!/usr/bin/php -q
<?php
$str = '177 名前:nobodyさん :2007/07/14(土) 20:57:20 ID:???';
$nm="ななすさん";

$ret = preg_replace('/^(\d{1,3}\s名前:)(.+)(\s:\d{4}\/\d{2}\/.+)$/',"\\1$nm\\3",$str);

echo $ret;
0182nobodyさん2007/07/14(土) 21:35:37ID:???
php -a で出すコマンドライン版PHPのインタラクティブモードで
最初に<?phpを書かずに、起動後すぐに
>phpのプロンプトを出すにはどう設定したらよいでしょうか。
0183nobodyさん2007/07/14(土) 22:32:23ID:???
>>152
リファラーみればいいだけじゃね?
実際正確かどうかなんて分からないし
直前+現在のスレにお互いカウントアップ。

もしくはセッションにスレUIDを追加していって
読み込んだ時に仮に5つくらいになっていた場合に
それらをカウントアップ&セッションクリア。
01841832007/07/14(土) 22:51:03ID:???
頭が悪いので勘違いしました。忘れてください。
0185nobodyさん2007/07/14(土) 22:54:22ID:???
>>182
cmd /k "php -a"

↑をphp.batに保存してphp.batをダブルクリック
0186nobodyさん2007/07/14(土) 23:03:35ID:???
>>185
そんな答えを求めていませんけどね^^;
引き続き回答ヨロ
0187nobodyさん2007/07/14(土) 23:45:04ID:IGNHoFx0
>>186
--with-readline つけてコンパイルした 5.1 以降をつかえばOK
最近のだと初めからなってる気もするが。

あと質問するときsageてると、釣りにみえて返答もらえないかも
01881822007/07/15(日) 00:26:17ID:???
>>185 >>186 >>187
ありがとうございます。
0189nobodyさん2007/07/15(日) 01:18:51ID:gHFsqArW
>>176
ちょっと、情報がアバウトなんで何とも言えないが、

IEって、swfファイルを一度既に読み込んでいる場合、リロードしたときにキャッシュのswfが優先される現象が確かあった気がする。
んで、リロードしたときに本来期待している初期化処理が走らない。
ちなみにFirefoxでは起こらない。
もし176の言っている現象がFirefoxで起こらないのならばたぶん原因は同じ。


面倒だから、phpでセッションつかって、投票完了時に

$_SESSION["is_vote"] = true; とかつっこんで、

投票処理始める前に
if(isset($_SESSION["is_vote"]) && $_SESSION["is_vote"]) return ;

みたいにして重複カウントアップしないとかやってみれば?
0190nobodyさん2007/07/15(日) 02:57:02ID:???
>>187ハァ?おまえうざ
>>188あんただれ?
0191nobodyさん2007/07/15(日) 03:41:41ID:???
ごめんなさい。誤爆です・・・
0192nobodyさん2007/07/15(日) 03:53:24ID:X91+gITL
>>189
返答ありがとうございます。
すみません、言い忘れていたのですが実はブラウザは携帯なんです。
ですが更新しても初期化されないことから、IEと変わらないと思いますが…
書いてくださったスクリプトを記述してみましたが、やはりランキングに追加されてしまい出来ませんでした。やはり記述が悪いのでしょうか?
0193nobodyさん2007/07/15(日) 03:54:43ID:X91+gITL
<table border="1"><tr><th>順位</th><th>お名前</th><th>距離</th></tr>
<?php
$name = htmlspecialchars($_GET['name']);
$meter = htmlspecialchars($_GET['meter']);
$rank = file("rank.txt");
if(isset($_SESSION["is_vote"]) && $_SESSION["is_vote"]) return ;
if ($meter) {
if (!$name) $name = "名無しさん";
for ($i = 0; $i < count($rank) + 1; $i++) {
if ($i < count($rank)) {
list($n, $m) = split("\t", $rank[$i]);
$m = rtrim($m);
} else $m = 0;
if ($meter > $m) {
array_splice($rank, $i, 0, "$name\t$meter\n");
break;
}}
if (count($rank) > 20) array_pop($rank);
$fp = fopen('rank.txt', 'r+');
flock($fp, LOCK_EX);
ftruncate($fp, 0);
for ($i = 0; $i < count($rank); $i++) fputs($fp, $rank[$i]);
fclose($fp);
$_SESSION["is_vote"] = true;}
for ($i = 0; $i < count($rank); $i++) {
list($n, $m) = split("\t", $rank[$i]);
$m = rtrim($m);
print "<tr><td>" . ($i + 1) . "</td><td>$n</td><td>{$m}m</td></tr>\n";
}
?>
</table>
分かる方がいましたら、お願いします。
0194nobodyさん2007/07/15(日) 04:12:30ID:gHFsqArW
>>192
とりあえずぱっと見session_start();が必要 →生成と破棄の詳細はsession周りのマニュアル参照

ただ、session(クッキー)が使えない機種もあるからなぁ。
(flash使える機種でクッキー使えない機種があるかとかは、ちょっと専門外なんでわからん。スマソ)

あと、ファイル書込よりpdo+sqliteとか使う方が良くない?とかおもった
01951942007/07/15(日) 04:33:34ID:???
>>193
ごめ、見直してみたらこれって$_GETで画面遷移してるんだね。

actionscript側のgetURL();でGETで渡してきて、(sessionの部分取り除いておいて)
リロードしたらそりゃカウントアップされるわな。リロードする度に常にURLに?name=hoge&meter=100 とかついてるんだもん。



01961942007/07/15(日) 04:39:11ID:???
追記
んで、getURL()って第三引数に"POST"、ってやればPOSTで渡せるから、そっちで何とかすれば。
PHPっていうよりASの話だね
0197nobodyさん2007/07/15(日) 10:30:18ID:X91+gITL
>>194-196
返答ありがとうございます。
session_start();をif(isset($_SESSION〜の前に書いてみましたが、やはり無理でした。
実は先程記述したランキングのPHPスクリプトは、とあるサイトに書いてあったものなんです。
私は一から記述できるようなスキルがないので、調べてみましたがpdo+sqliteは分かりませんでした。
そして言われた、GETをPOST((phpも同様)にし、URLの末尾に付加しないようにしても、更新すると重複してしまいます。
以下はFlash側の記述です。
on(press) {
 FSCommand2("Escape",name,"name");
 getURL("http://〜.php","_blank",POST);
}
0198nobodyさん2007/07/15(日) 10:50:03ID:???
>>176

index.phpの中にFlashをインクルード、セッション発行
↓
カウント用のページにジャンプ
↓
チェック
↓
条件判断→重複ならカウントしない
↓
カウントする

セッションに含める情報「リファラ、ip、ユニークid、日付、2chでいうハナモゲラなどのキーワード」この情報吟味して考えろ
0199nobodyさん2007/07/15(日) 12:45:45ID:70v71ZEE
αチャネル埋め込んであるpng(gif)をimagerotate()で回転させると黒くなる。
bgd_colorを不透明にしないと黒くなるから、何かしらリソースの背景に問題がありそうなんだが、どこをいじればいいのか見当がつかない。
ignore_transparentはphp4だから確認できない。
これがGDの限界ってやつですか/^0^\フッジッサーン

だれかおせーて
0200nobodyさん2007/07/15(日) 12:47:01ID:RgVfRGye
・
・
・
$on_array = explode(",", $string_line1);
$off_array = explode(",", $string_line2);

$op[$d]= $on_array;
$ed[$d]= $off_array;



このように配列を配列の一つの要素
つまり

1周目

$op[0]= $on_array;
$ed[0]= $off_array;

2周目
$op[1]= $on_array;
$ed[1]= $off_array;

と各$op[〜]の中に取り込みたいのですがうまくいきません
具体的にどのように記述したら動くのでしょうか
何卒ご教授宜しくお願いします。
0201nobodyさん2007/07/15(日) 13:28:53ID:???
>>199
PNGならbgd_colorを0xFF000000にすればいいんでは。
0202nobodyさん2007/07/15(日) 13:46:16ID:???
>>200
各ループの$string_line1と$string_line2はどうやって取得するのよ
毎回同じ内容じゃないんだべ?
0203nobodyさん2007/07/15(日) 14:00:02ID:RgVfRGye
>>202
$fp = fopen("$op", 'r');
$string_line1 = fgets($fp);
$fp = fopen("$en", 'r');
$string_line2 = fgets($fp);

このようになっています

ちなみに今現在、多次元配列を試しています
0204nobodyさん2007/07/15(日) 14:07:11ID:L0tNCdex
大量のデータを処理するphpのプログラムがありまして、
一回起動をかけますと、終了するまで7時間程度かかります。

しかも、このプログラムが負荷が高いため、実行して20分程度経過しますと、
CPUの温度が75度を超えBIOSから異常を知らせるメッセージが表示されっぱなしになり、
焦げ臭い嫌な臭いが部屋中に立ち込めてしまいます。

仕方なく、1000件数処理するごとにsleepコマンドで60秒自動休止するような
やり方にしているのですが、他にいい方法はないでしょうか?
スクリプト言語なのでしょうがないかもしれませんが、いいアイデアを頂けると幸いです。
宜しくお願いします。
0205nobodyさん2007/07/15(日) 14:15:01ID:???
>>203
うーん。ループさせてる範囲を{ 囲んで }みて。

$fp = fopen("$op", 'r'); $string_line1 = fgets($fp);
$fp = fopen("$en", 'r'); $string_line2 = fgets($fp);

$on_array = explode(",", $string_line1); $off_array = explode(",", $string_line2);

$op[$d]= $on_array; $ed[$d]= $off_array;
0206nobodyさん2007/07/15(日) 14:16:21ID:???
>>205
ありがとうございます、それを参考に頑張ります
0207nobodyさん2007/07/15(日) 14:17:45ID:???
安価ミス
0208nobodyさん2007/07/15(日) 14:19:18ID:70v71ZEE
>>201
ダメだった。うーむ

>>204
無茶しすぎじゃね?

>>203
配列の名前を変えてみたら
パスと配列の変数名が同じだからじゃないの
02092052007/07/15(日) 14:20:30ID:???
「どこからどこまでがループなのよ。同じものを explode して $op[$d] に入れてない?
ていうか、毎回 fopen してたりもしない?」
というのが知りたくてループ範囲を示して欲しかっただけなんだけど、

頑張るのはいいことだと思います。
0210nobodyさん2007/07/15(日) 14:24:30ID:???
>>208
imagesavealpha()は使ってるよね?
0211nobodyさん2007/07/15(日) 14:25:20ID:???
>>204
マジレスで、プログラムの組み方に問題が無いのなら
低発熱の速いCPUに換えて冷却をしっかりする。 会社なら空調を何とかする。
CPU使用率100%で20分連続稼働出来ないのは異常

それ原因ってphp側というより
DB側のインデックス不備とか 結合の仕方が悪いSQLとかに原因有るんじゃないか?
phpでぶん回して集計かけるんじゃなくて、ストアドプロシージャ使ったり出来ないの?

後は、
sleep(60) じゃなくて ループ内で usleep(5000) とか、
メモリ使い切ってswapアウトしてしまうのなら、適宜不要になったarrayを明示的にunsetするとか。
とりあえずsarで計測したりしながら何がボトルネックか探ったら?
0212nobodyさん2007/07/15(日) 14:33:33ID:RgVfRGye
>>209
なんとか多次元配列で解決できましたお騒がせして申し訳ありません
それと、ありがとうございました。
0213nobodyさん2007/07/15(日) 14:40:30ID:L0tNCdex
>>211
詳しいレスありがとございました。
言われてみると、プログラムというよりハードかもしれませんね。

プログラムは、画像データから特定のパターンを識別するために、
膨大な計算量を必要とするプログラムを組んでいまして、
アルゴリズム的にこれ以上スマートにするのが難しいのが現状です。

CPUが2年前のものなので、買い替えを検討したいと思います。

あと、度々で恐縮なのですがsleepとusleepは引数の単位が違う以外に
内部的な処理で違うものなのでしょうか?マニュアルを見たのですが、
エイリアスでもないようなので、教えていただけたら幸いです。

あと、sarを検索で掛けたのですが、それらしいものが引っかからなかったのですが、
これはベンチマークの計測ソフトとかでしょうか?
0214nobodyさん2007/07/15(日) 14:56:25ID:???
>>213
PHPでやってるのかぁという感想は置いておいて、

usleepはsleepとは単位が違うだけ、(文字通りマイクロ秒単位でスリープ指定できる)

sarについてはとりあえず
ttp://www.atmarkit.co.jp/flinux/rensai/root07/root07b.html のsysstatの項とかを参照してみて。
0215nobodyさん2007/07/15(日) 15:50:04ID:???
C禁止
0216nobodyさん2007/07/15(日) 16:38:40ID:???
すいません、ちょっと教えていただきたいですが、
class className{
function fnc(className $var){
$this->var = $var;
return $var;
}
}
上記のとき、fnc(className $var)の箇所の、className $varは何を
意味するのでしょうか?
良かったら教えてください。
0217nobodyさん2007/07/15(日) 16:40:05ID:???
>>216
http://www.php.net/manual/ja/language.oop5.typehinting.php
0218nobodyさん2007/07/15(日) 17:25:13ID:???
引き続き回答お願いいたします
0219獅子王2007/07/15(日) 17:37:04ID:EW+ZDItZ
お久しぶりです。実は最近ホームページなどに掲示板を設けたいと思い、
perlをダウンロードしようと思うのですがそのダウンロードサイトでどのようにすれば
ダウンロードできるのかわかりません。どなたか教えてはくださいませんでしょうか?
0220nobodyさん2007/07/15(日) 17:52:32ID:???
芯でください
0221nobodyさん2007/07/15(日) 17:54:50ID:EKF0p7g8
50x50から半径20ピクセルの円を書きたいのですが
どのような計算式で書けばよいのでしょうか?
0222nobodyさん2007/07/15(日) 17:56:09ID:???
まずは試行錯誤しなさい。
クレクレはスレ違い
0223獅子王2007/07/15(日) 17:57:12ID:EW+ZDItZ
あ、あの・・・。なんだか知らないけどスイマセンでした。
0224nobodyさん2007/07/15(日) 18:35:26ID:70v71ZEE
>>210
回転させるリソース(a)と、回転させた後のリソース(a_dash)にも一応使ってる。
bgd_colorの透明度を最大にすると全体が黒くなって、不透明にすると回転縮小した部位の背景が黒くなる
みたかんじ余白はbgd_colorを黒に重ねた色になる。これだと透明にできない
けれど、もとの画像リソース(a)は出力すれば背景はちゃんと透明で黒くない

どうなっているんだろうか


>>221
imageellipse()かimagefilledellipse()あたりでいいんじゃない
0225nobodyさん2007/07/15(日) 20:43:31ID:EKF0p7g8
>>224
ありがとうございます
ですが、関数を使わずにドット打ちでやりたいのです
0226nobodyさん2007/07/15(日) 23:35:24ID:y01L4ZmB
pearのauthっていう認証機能は実用に耐えますか?
セキュリティの向上を考えるとき、気をつけなきゃいけないこととかありますか?
0227nobodyさん2007/07/16(月) 00:28:52ID:???
>>225
sinもつかっちゃだめ?つーか課題くらい自力でやれ
0228nobodyさん2007/07/16(月) 00:47:32ID:1gpeo49m
>>227
課題じゃないんです_| ̄|○
0229nobodyさん2007/07/16(月) 01:32:48ID:???
>>228
課題じゃないのになんでそんな面倒な事しなきゃいかんのか分かんないけど
25,25を中心として

for($i =0;$i<2*_PAI;$i+=_PAI/50)
ドット描画(floor(25+20*cos($i)),floor(25+20*sin($i)));

なかんじでいいんじゃね?円周率が_PAIだったかどうか怪しいが。
ステップ数は間が空くようなら適当に変えて。
0230nobodyさん2007/07/16(月) 02:00:43ID:???
ドットはimagesetpixel()とあるね。
ラジアンはM_PIで得られたと思う
0231nobodyさん2007/07/16(月) 02:15:31ID:AMhU9hfC
下のようにループの中で2次元配列にデータを格納したいんですが、
2週目に入った時に$code[0]のデータがクリアされてしまいます。
配列の使い方が間違っているのでしょうか?
サーバはFreeBSDでPHPは4.4.6です。

for($code=0;$code<3;$code++){
$dat=array($code=>array($d[0],$d[1],$d[2]);
}
0232nobodyさん2007/07/16(月) 02:31:56ID:???
そりゃあクリアされるだろ。
配列じゃんえんだもん

つ$dat[]
0233nobodyさん2007/07/16(月) 04:53:48ID:???
ちょっと思い浮かばないのですが、

$array = array("みかん"=>"3","なし"=>"2","さくらんぼ"="5");

だとして、

さくらんぼ:5
みかん:3
なし:2

という表示にしたいと思います。keyの数字を降順にして上の表な表示に
することって出来るのでしょうか?出来る場合は、関数などを教えて下さい。
0234nobodyさん2007/07/16(月) 05:17:53ID:???
IDだしてから答える
0235nobodyさん2007/07/16(月) 05:21:30ID:???
配列の作り方も突っ込み満載だがID出すまで回答保留
0236nobodyさん2007/07/16(月) 06:28:23ID:eChNNpaq
textareaとinputのtextに文字列を表示する場合、htmlspecialcharsはかまさなくてもXXSの危険性はないと考えてよろしいでしょうか?
0237nobodyさん2007/07/16(月) 07:31:59ID:OjCJuTb6
質問です
php_mbstring.dll が見つからないというエラーが発生して困っています。
php.iniで extension_dir = "C:/php/ext" も確認して、実際のファイル構造と
一致してるようなんですが、、 なにが原因でしょう
教えてください、よろしくおねがいします
0238nobodyさん2007/07/16(月) 07:33:35ID:???
phpinfoにmbstringが使えるかどうかみた?
0239nobodyさん2007/07/16(月) 07:39:04ID:???

>>231
もうすこしヒントをやる。


あとは書き換えてつかってみれ



for($i=0;$i<3;$i++){

$dat[] = array($i=>array(1,2,3));

}


echo "<pre>";

print_r($dat);

echo "</pre>";
0240nobodyさん2007/07/16(月) 08:14:01ID:OjCJuTb6
>>238
ありがとうございます
extension=php_mbstring.dll
の部分ですよね  コメントアウトも解除してると思うんですが、、なにがおかしいのかなぁ… 
いろんなサイトを見るとextension_dir = "C:/php/ext" の"を書いてないのもあったり、
ext/ としてるのもありで、全部試してるんですが、、
0241nobodyさん2007/07/16(月) 08:21:48ID:???
バージョンは?
0242nobodyさん2007/07/16(月) 08:22:20ID:???
>>233
arsort($array);
0243nobodyさん2007/07/16(月) 08:22:39ID:???
phpinfo();を実行してmbstringが使えるかチェックしたの?
02442402007/07/16(月) 08:34:08ID:OjCJuTb6
ごめんなさい 詳細を書きます。 winXP apache2.0 php5.2 です。
phpinfoによれば以下のようになっています

extension_dir C:\php\ext\
mbstring
Multibyte Support enabled
Multibyte string engine libmbfl
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 4.4.4
Multibyte regex (oniguruma) backtrack check On

今、pearのインストールをしてるんですが、cmd でgo-pearを
実行すると「php_mbstring.dll が見つからない」とアラートがでています
また、cmd内でも「ext\php_exif.dllがない」とでます。→ちゃんと存在してます
0245nobodyさん2007/07/16(月) 08:52:55ID:???
>>244
pearに関してはgo-pear.batでググって最新版を入手

エラー内容ぐらいは書いてください
02462402007/07/16(月) 09:18:30ID:OjCJuTb6
>>245
度々すみません エラーは
「PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_exif.d
ll' - 指定されたモジュールが見つかりません。
in Unknown on line 0」
といった感じです(これのファイル違いがいくつもでてくる)
go-pear.pharの最新版も入手済みです
失礼ですが、確認のため質問させてください go-pear.bat自体を新しくするんですか?
0247nobodyさん2007/07/16(月) 09:27:04ID:???
go-pear.pharだけでおk

windowsの環境変数でパスを通せ。それでも解決しなかったらまた考えてやる
02482402007/07/16(月) 09:52:26ID:???
すみません 環境変数を理解できてないので質問させてください
すでに C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe が
指定されてるんですが(ユーザ変数)
C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql.exe;C:\php\go-pear.bat
でいいのでしょうか?
これで試してみてもうまくいかないですが…
設定後、cmd の set で確認すると、
PATH=;c:\mysql\bin;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\MySQL\M
ySQL Server 5.0\bin\mysql.exe;C:\php\go-pear.bat
となってました
0249nobodyさん2007/07/16(月) 10:02:25ID:???
C:\php\ext\をパスに追加
02502402007/07/16(月) 10:33:49ID:???
>>249
ありがとうございます。言われたとおりにしたところ、相変わらずうまくいかないですが
アラートダイアログのメッセージが変わりました!
(mb_string.dllが見つからない というのが出なくなりました
isqlt09a.dll OCI.dll libcs.dll が見つからない というアラートはでます)
問題が発生したため、CLIを終了します というメッセージが出ました
以下のcmdのエラーメッセージは相変わらず出ます。
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_filepro.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_ifx.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_oci8.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_oracle.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_sybase_ct.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
続行するには何かキーを押してください . . .
------
なんなのかなこりゃ、、もうPHPの新バージョンを再インストールした方がいいんでしょうか?
02512402007/07/16(月) 10:35:10ID:???
ごめんなさい 間違えました>>250
×(mb_string.dllが
○(php_mbstring.dllが
0252nobodyさん2007/07/16(月) 10:43:17ID:???
ノーマルで入ってないプラグインもみかけるが、プラグイン拡張したの?
全部削除してphp.iniをいじらないで動作チェックしてみな
■ このスレッドは過去ログ倉庫に格納されています