【PHP】下らねぇ質問はID出して書き込みやがれ 79
質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 78
http://pc11.2ch.net/test/read.cgi/php/1230026935/ ◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】 ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
9 :
nobodyさん :2009/01/14(水) 00:52:59 ID:OAWf+UCm
// / / パカッ //⌒)∩__∩ /.| .| ノ ヽ / | | ● ● | / | 彡 ( _●_) ミ まピョーん☆ / | ヽ |∪| /_ // │ ヽノ \/ " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
,-┐ ,ィ─、ri´^-─- 、 .┌f^f^f^f^f^f^f^f^f^┐ く / , ,' ヽ ヽ| ~ ~ ~ ~ ~ ~ ~ ~ ~│ `<' / ,'レイ+tVvヽ!ヽト 知ってるが │ !/ ,' i |' {] , [}|ヽリ お前の態度が | `!_{ iハト、__iフ,ノリ,n 気に入らない | // (^~ ̄ ̄∃_ア____n_____| _r''‐〈 `´ア/トr──!,.--' <_>─}、 `」レ 'ヽ、 ,.ヘーァtイ Y、.,___/ |.| | i `ー'i´
2chで祭りっぽくなった某番組のクレーム処理したことあるけど お前らってまじで日本語しゃべれない奴いるのな マジキチとかそういうんじゃなくて本当に言葉しゃべれないの 電凸するならテンプレぐらい読んでからかけろよ 「あああああの番組だけど・・・その・・・あの・・・あ、あやまれぇぇぇぇぇ!」て第一声は吹きそうなの必死にこらえたぞ
ほんとだ、それもかなり前から全域でだな。
16 :
nobodyさん :2009/01/14(水) 20:14:13 ID:EXueNIp4
ややスレチかもしれませんが…。 【OS】Windows Vista x64 【PHPのバージョン】5.2.8 【連携ソフトウェア】MySQL 5.0.32 【XAMPPのバージョン】1.7.0 PDOを利用して開発したものをXAMPP環境下で使用すると、Apacheもろとも強制終了してしまいます。 強制終了する箇所はquery(), execute()のSQL発行時なのですが、それもSELECT文に限ったものです。 INSERT, DELETEはもちろんのこと、SHOW TABLESなど結果セットが返るものも問題なく動作します。 組み込みのmysql_*関数では、このようなことは起きませんでした。 Vista x86環境下でも同様になったのですが、解決策がありましたらご教示お願いします。
XAMPP無しで試してみたら?
18 :
nobodyさん :2009/01/14(水) 20:54:11 ID:1y4fkYcF
【OS名】windows/linux 【PHPのバージョン】php5.2.8 【連携ソフトウェア】mysql5.1 【質問内容】 PDOでmysqlに接続しています。 UPDATEで更新した際に、更新した件数を取得する方法を教えてください。 PDO::exec()は件数を返すようですが、パラメータのバインドを使いたいので prepareを使用した方法を探しています。 よろしくお願いします。
rowCount
20 :
nobodyさん :2009/01/14(水) 21:06:22 ID:1y4fkYcF
>>19 すばやい回答ありがとうございます。
rowCountはselect の件数を取得するものかと思っていたのですが、
そうではなかったのですね。
助かりました。ありがとうございます。
21 :
nobodyさん :2009/01/14(水) 21:25:27 ID:ASyGg75+
一つ質問させて下さい。 今PHPで入力UTF-8、出力SJISの携帯サイトを作ってるんですが POSTから値を受け取りブラウザで表示させようとしたんですが 文字が何も表示されません・・ すいませんがよろしくお願いします。 <? $tex = $_POST["a"]; echo mb_convert_encoding($tex,"SJIS"); ?> <form action="" method="post"> <input type="text" name="a"> <input type="submit" value="a"> </form> .htaccessファイル↓ php_value default_charset "SJIS" php_value output_handler mb_output_handler php_value mbstring.internal_encoding "UTF-8" php_value mbstring.http_input "UTF-8" php_value mbstring.http_output "SJIS" php_flag mbstring.encoding_translation On
mb_convert_encodingしないで、英数なら表示されるのかどうか、 とりあえず、それ試して。 short open tagは大丈夫だよね?
23 :
21 :2009/01/14(水) 21:38:32 ID:???
>>22 返信ありがとうございます。
半角英数はmb_convert_encoding指定するしない
両方とも表示されます。
short open tagはOnになってます。
したら入力文字列の文字コードチェックして、 mb_convert_encodingの第3引数に渡してみたら?
25 :
21 :2009/01/14(水) 21:53:43 ID:???
>>24 先程一度第3引数にUTF-8を指定してみましたが駄目でした・・
今文字コードをmb_detect_encoding($tex);と調べてみたら
ASCIIと表示されたのでmb_convert_encodingの
第3引数にASCIIと入れても駄目みたいです・・・。
26 :
nobodyさん :2009/01/14(水) 21:57:00 ID:EXueNIp4
>>17 XAMPPを使用しないで環境作ったら、何の問題もなく動作しました…。
XAMPPは良くも悪くも、手軽なものだということを痛感。
ありがとうございました。
27 :
nobodyさん :2009/01/14(水) 22:53:00 ID:Lx64uWRL
SQLの質問するのってどこでしたっけ? 板名を教えて下さい。
xampp(笑) まじ初心者はxamppを使うのすすめる教本とかサイトはくたばれよ
>>25 だめでした、じゃなくてさ、なんか表示されるんでしょ?
英数なら表示されるのに日本語が入ると何も表示されないの?文字化けでしょ?
「abcほげdef」とか入れてみたらどうなる?
31 :
nobodyさん :2009/01/14(水) 23:34:03 ID:sbd7PIk9
<?php
// ユーザIDとパスワードの組み合わせが正しい場合
for($i=0;$i<count($arrUser);$i++){
if($_POST["txtId"] == $arrUser[$i] && $_POST["txtPass"] == $arrPass[$i]){
header("Location:top.php");
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
break;
}}
ここでIDとパスワードを入力します
しかし headerの指定が違うとでてしまいます
http://www.dotup.org/uploda/www.dotup.org10038.jpg header("Location:相対パス指定");
と習ったのですが送信後、ジャンプさせてページに飛ばしたいんですが全く動きません
この情報だけで分かりますでしょうか?
32 :
21 :2009/01/14(水) 23:43:32 ID:???
>>30 abcほげdefをコピペで貼り付けたらabc?defと表記されました。
ただこの言葉以外だと例えば半角と全角を織り交ぜて入力した場合は
全角が消えて半角だけが表示されます。
もう少し頑張ってみます。
33 :
nobodyさん :2009/01/15(木) 00:00:10 ID:iReMhog8
phpで、MTで作ったブログから ・特定のカテゴリの記事一覧取得する(エントリタイトルとエントリ日時) ・そのカテゴリの記事の詳細を取得する ってどうしたらいいんでしょうか? 各FWやPearは使えないという条件で参考になる情報・サイトをお願いします phpのバージョンは5、MTは4.2です 自分でも探したんですが、いいのが見つかりません よろしくお願いします
34 :
nobodyさん :2009/01/15(木) 00:06:59 ID:gNc+jaUV
>>34 headerの出力位置がおかしい
43行目から47行目までをHTML書き出す前に回せ
top.phpは直接呼ぶこともできる仕様か?
>>35 もしかして</head>をheaderにするの?
>>36 直接飛べない仕様です
328 名前: すずめちゃん(埼玉県)[] 投稿日:2009/01/14(水) 10:43:37.00 ID:WwgLtqYD 中身見たんだけど、特許庁サーバーへの接続手順かなぁ だったら今回のお漏らしの最大の問題点 特許庁は大急ぎでサーバーODBCデータベースのパスワード変えないと ODBC.mdb *参考 mdbのパスワードは既弱性があって一瞬で解除できる フリーのツールでも所要時間ゼロ秒
>>37 header関数はそれ以前に何かが出力されてたら動かないんだよ?
このソースの場合はheader()の前に
<html>
〜
<center>
までタグが出てるでしょ
<?php
header(〜〜);
?>
<html>
以下略
って形にしないとダメだと思う
>>39 やっと動きました><
めちゃ助かりました;
ありがとうございます
41 :
nobodyさん :2009/01/15(木) 08:03:04 ID:jJGEkYvb
配列を文字数で降順にソートしたいと思います。 例 array("あ", "いうえ", "おかきく", "けこ"); ↓ array("おかきく", "いうえ", "けこ", "あ"); そこで、配列に文字数を追加してarray_multisortしています。 うまく動いているのですがもっとスマートな方法はありませんでしょうか? <?php mb_language("Japanese");mb_internal_encoding("UTF-8");mb_regex_encoding("UTF-8");mb_http_output("UTF-8"); // 配列を文字数で降順に並び替えたい $wordData = array("あ", "いうえ", "おかきく", "けこ"); // 文字数でソートする為配列に"文字数"を追加 for($i=0; $i<count($wordData); $i++) { $setKeyword[$i][textCount] = mb_strlen($wordData[$i]); $setKeyword[$i][word] = $wordData[$i]; } print_r($wordData); // 文字数で配列をソート foreach($setKeyword as $key => $row){ $textCount[$key] = $row["textCount"]; } array_multisort($textCount,SORT_DESC,$setKeyword); print_r($setKeyword ); exit; ?>
function mb_strlencmp($a,$b) { return mb_strlen($b) - mb_strlen($a); } usort($wordData,'mb_strlencmp'); こんな感じとか。
usort()だと比較のたびにコールバック関数とmb_strlen()が呼び出されるので効率が悪いよ。 性能ではarray_multisort()のほうが有利。特に配列が大きくなると顕著。 自分ならこういう風にまとめる。 <?php $words = array("あ", "いうえ", "おかきく", "けこ"); $lengths = array_map('mb_strlen', $words); array_multisort($lengths, SORT_DESC, $words, SORT_STRING); print_r($words);
44 :
nobodyさん :2009/01/15(木) 11:07:18 ID:iReMhog8
short_open_tagがONになってるレンタルサーバで、これをOFFにしたいです が、php.iniは操作できません どうしたらいいでしょうか? よろしくお願いします
無理
ini_setでできるでしょ
スマソ。ミス
>>46 PHP_INI_PERDIR、PHP_INI_SYSTEM
おk?
short_open_tag "1" PHP_INI_ALL PHP <= 4.0.0 で PHP_INI_ALL、PHP < 5.3.0 で PHP_INI_PERDIR となってるわけだが? INI_ALLならini_setでできるしPERDIRなら.htaccessで出来る
4.0.0の環境はないだろ、いまどき
ini_setではshort_open_tagはPHP_INI_ALLではないよ
54 :
nobodyさん :2009/01/15(木) 15:16:12 ID:bfe4hoTd
誰かお願いします phpでGUIが作りたいんですけどスケルトンの作り方がわかりません おしえてください
マルチ乙
56 :
nobodyさん :2009/01/15(木) 15:55:57 ID:bfe4hoTd
いえいえ^^;まだまだ努力が足りません^^; 勉強熱心なもので頑張って書き込みしてみました
お前は何を言っているんだ。
58 :
nobodyさん :2009/01/15(木) 16:56:54 ID:QYLE8cY6
$array01[0]["aaa"] = "1"; $array01[1]["aaa"] = "2"; $array02[0]["bbb"] = "3"; $array02[1]["bbb"] = "4"; こういう配列があるのですが、これを1つの配列としてまとめたいと思います。 array_mergeを使っても上手く結合できませんでした。 どうすればいいのでしょうか?
59 :
nobodyさん :2009/01/15(木) 17:04:52 ID:1cJi3m+C
【OS名】FreeBSD 【PHPのバージョン】php5 【連携ソフトウェア】無 【質問内容】 利用を考えているレンタルサーバーのPHPが一般的なモジュール方式ではなく CGIラッパーを採用しているとのことです。その方がだれがどれだけプロセスを 占有してるかわかりやすいからだそうです。 利用者の立場から見ますとCGIラッパーでの動作において留意すべき点はありますか? 当方素人PHPプログラマーなのでそれほど高尚なテクニックを使いこなせてるわけでは ないのであまり関係ないかも知れませんが動作上の制約等がありましたら教えてください。
land.toですね
>>58 うまく、の定義が分からないけど、 array_merge_recursive() でどう?
array(4) {
[0]=>
array(1) {
["aaa"]=>
string(1) "1"
}
[1]=>
array(1) {
["aaa"]=>
string(1) "2"
}
[2]=>
array(1) {
["bbb"]=>
string(1) "3"
}
[3]=>
array(1) {
["bbb"]=>
string(1) "4"
}
}
これでダメなら、自分で関数を書くしかないんじゃないかな。
62 :
nobodyさん :2009/01/15(木) 17:58:17 ID:VAt5f5cR
>>58 ためしてないから動かないかも知れないが
function abs($a, $b) {
return $a = $a + $b;
}
$ary= array($array01,$array02);
array_reduce($ary, "abs");
63 :
44 :2009/01/15(木) 18:01:24 ID:???
>>45-53 皆さん色んな意見くれてありがとうございます
参考に.htaccessで設定したところ、うまくいきました ありがとう
64 :
58 :2009/01/15(木) 18:09:04 ID:???
>>61 $array[0]["aaa"] = "1";
$array[0]["bbb"] = "3";
$array[1]["aaa"] = "2";
$array[1]["bbb"] = "4";
こういうふうにまとめたいんです。
やっぱり、foreachで一度すべて出力して
新たな配列に代入する方法しかないのですかね・・。
>>62 Cannot redeclare abs() というエラーが出ました
$array01とか$array02みたいな使い方がきめえ
67 :
59 :2009/01/15(木) 18:40:31 ID:1cJi3m+C
>>60 > land.toですね
アハハ、わかりましたか(*´∀`)
CGIラッパーをうたうレンタルサーバーはあまり見たことがなかったので気になって質問した次第です。
ちなみにCGIラッパーの場合でも、html中に<?php ?>タグでPHPプログラムを仕込ませることは可能でしょうか?
それとも完全に実行ファイル形式としてのみ運用できるということですか?
68 :
58 :2009/01/15(木) 18:41:55 ID:???
01とか02とか言う書き方しろって習ったのですが・・・
>>64 数値添字にインデックス以上の意味を持たせようという設計がまずいかと。
ユーザーIDとか別の意味があるなら文字列で格納してみたら?
が、array_walk_recursiveでできるでしょう。
$array[1],$array[2]ならまだしもw $array02とかはないわw やめたまえそんな使い方
苦節2か月、ようやく、データーベースに 格納した数値を取り出して、画面に表示する方法がわかった。 <?php $dsn = 'sqlite:C:/aaa'; //データーベースの定義情報 $pdo = new PDO($dsn);//データーベースをオープンしてハンドルゲット $sql = //SQL文 "SELECT count//フィールド名指定 FROM bookmark//テーブル名 where id=1";//id=1のレコードを指定 $entries = $pdo->query($sql);//SQLクエリー実行 $entry = $entries->fetch() ;//よくわからんがデーターを取得してる? print $entry["count"];//連想配列なのでキーを指定して表示 ?>
ブログに書け
あ、ブログに書いても誰も見てくれないからここで荒してるんだっけか、スマンスマン
データー構造 データーベース sqlite3 データーベース名 aaa テーブル名bookmark テーブル構造 id | count 1 | 20 データーベース接続方法 PDO プリペアードステートメント 今回は使ってない
お前らの教え方がへぼくっても ちゃあんとプログラムは書けるってこと。 ざまあみろ。
>>64 $array01[0]["aaa"] = "1";
$array01[1]["aaa"] = "2";
$array02[0]["bbb"] = "3";
$array02[1]["bbb"] = "4";
function intMerge(&$arrayTo, $key, &$arrayFr)
{
$arrayTo = array_merge($arrayTo, $arrayFr[$key]);
}
$result = $array01;
array_walk($result,"intMerge", $array02);
print_r($result);
>>75 プログラマーはまず「否定」から入る。
これは俺が接した人間、利用した掲示板全てで同じ行動だった
それを覚えておけば質問するのも怖くないよ^^
>>77 ところがアメリカ人のプログラマーはそうではない。
ジャップは死ねってこと。
ジャップは死ね!
ジャップのプログラマーは死ね!
ただし東大のプログラマーは親切になんでも教えてくれる。
だから東大のプログラマーだけは生きて良し。
自演乙
80 :
nobodyさん :2009/01/15(木) 19:29:24 ID:R8RK6Tzt
あの
81 :
nobodyさん :2009/01/15(木) 19:37:55 ID:R8RK6Tzt
food.datにジャンル・名前という形のデータをcsvで記録してます 1が食べ物、2が電化製品、3が本類、4が人名を置いてます 「food.dat」 1,オレンジ 2,テレビ 3,ミステリー小説 4,橋本大樹 これをジャンル別に分け、 1のジャンルは配列$ary1へ、2のジャンルは配列$ary2へ 3のジャンルは配列$ary3へ、4のジャンルは配列$ary4へそれぞれ格納したいと思います foreachで回してifで振り分ければできるのですがもっと効率の良い書き方をしたいです お手数をおかけいたしますがどなたかご教授お願いいたします
どういうデータ構造だそれ?
id|食べ物|電化製品|本類|人名 ___________________ こうじゃね?
まあプライマリーキーはないかもしれないけど
>>84 何の個体を表すレコードなのかさっぱり分からんw
http://phpspot.net/php/man/php/ref.pdo.html 警告
「PDO コンストラクタからの例外をアプリケーシ
ョン内でキャッチしない場合、 zend エンジンは
スクリプトの実行を終了し、バックトレースを表
示します。 このバックトレースを見れば、デー
タベースへの接続の詳細がわかってしまいま
す。 その中にはユーザ名やパスワードも含ま
れます。 (catch 文を使用して) 明示的に例外
をキャッチするか、 あるいは set_exception_ha
ndler() を使用して 暗黙的に例外をキャッチす
るようにしましょう。 」
-------------------------------------------------
↑この仕様って、結構困るんだけど。
何お前、勝手にパスワードを表示してんだよ、っていう。
最終的に例外を捕捉しないプログラム書くつもりなのか。ふーん。
90 :
81 :2009/01/15(木) 21:00:32 ID:???
データ構造は「ジャンルID|データ|ここで改行」です どなたか助けてください
>>90 ジャンルって何?もしかしてIDのこと?
ファイル名がfoodってどういうこと?
ジャンル・名前なの?ジャンル|データなの?
あと
>>1
92 :
nobodyさん :2009/01/15(木) 21:10:10 ID:GvZc4PNy
PDOでデーターをデーターベースから 取得するときは、かならずfetchしないとダメなの?
93 :
81 :2009/01/15(木) 21:11:20 ID:uz1526AD
すいませんID出し忘れました 電話回線なのでID違いますが同一人物です ファイル名は食べ物を使うから付けただけで深い意味はないです ジャンルはIDのことです food.txtの中身は 1行目→1,オレンジ 2行目→2,テレビ 3行目→3,ミステリー小説 4行目→4,橋本大樹 5行目→2,ラジオ 6行目→4,坂本竜馬 こんな感じでデータは不規則に追加されていきます
>>81 ,93
こんな感じでいいかい
// food.dat の代わり
$uri = 'data:text/csv;charset=UTF-8;base64,MSzjgqrjg6zjg7PjgrgNCjIs44OG44Os4'
. '4OTDQozLOODn+OCueODhuODquODvOWwj+iqrA0KNCzmqYvmnKzlpKfmqLkNCjEs44Ki44OD4'
. '4OX44OrDQoyLOODrOOCs+ODvOODgOODvA==';
$table = array();
$fp = fopen($uri, 'r');
while (($cols = fgetcsv($fp)) !== false) {
$table[(int)$cols[0]][] = $cols[1];
}
fclose($fp);
echo file_get_contents($uri), PHP_EOL, var_export($table, true);
// ジャンル別にローカルスコープへ展開
// foreach ($table as $genre => $items) {
// $var = 'ary' . $genre;
// $$var = $items;
// }
// var_dump($ary1, $ary2, $ary3, $ary4);
97 :
nobodyさん :2009/01/15(木) 21:35:45 ID:uz1526AD
>>96 さんこういうのですか?
$file = file("food.txt");
foreach($file as $v) {
$a=explode(",",$v);
switch($a[0]) {
case 1:$ary1[]=$v;break;
case 2:$ary1[]=$v;break;
case 3:$ary1[]=$v;break;
case 4:$ary1[]=$v;break;
}
>>95 さんのやり方すごいですねっ!勉強になりました
ありがとうございました
なんでswitchなんか入れる必要あるねん
99 :
nobodyさん :2009/01/15(木) 21:43:33 ID:uz1526AD
疑問に思ったのですがファイルを読み取り専用で開いたときはロックはしなくても大丈夫でしょうか?
いいえ
俺も考えてみたが
>>95 には負けたわ
なにやってるのかコードみてもさっぱりわかんねw
fgetcsvで1行ずつ配列に入れることも分からんの?
>>99 PHPの flock() はアドバイザリロックなので
読み手も書き手も適切なロック(LOCK_SH,LOCK_EX)を取らないと意味を成さないのよね
なのでロックは必須
>>99 開いて、何をするつもりなの?
用途によって変わる。
105 :
nobodyさん :2009/01/15(木) 23:54:00 ID:bes4Fp8w
phpファイルにhtmlを書いてプレビューしたら、divでボックスを作った部分が真っ白です 文字の部分はちゃんと表示されます 外部スタイルシートを読み込んでいてDWではちゃんとプレビューされるんですが・・・ phpで作るサイトは全部includeしないとだめなんですか? phpでサイトを構築するのは初めてでよくわかりません
>105 生成されたHTMLか、読み込んでいるCSSが悪い。 「ソースを表示」からHTMLソースをHTMLファイルとして保存して、サーバにアップロードしてみろ。同じ現象が起きる。
>>105 ソースを見せてくれたらわかる。
もちろん、公開できない部分は
「ああああああ」
とかに適当に置き換えて。
index.php
────
<!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=shift_jis" />
<link rel="stylesheet" type="text/css" href="style.css"/>
<title>無題ドキュメント</title>
</head>
<body>
<div id="wrap">
<div id="head">
<h1>my site</h1>
</div>
</div>
</body>
</html>
style.css ──── *{ margin:0; padding:0; } #wrap{ width:800px; height:600px; margin:30px auto; background-color:#FFFFFF; } #head{ width:800px; height:80px; background-color:#336633; } 備考 xamppを使用、ハローワールドのテストは成功、 ディレクトリはxampp内のhtdocs/mysite/index.php , style.css
>>108-109 My siteって緑のバックグラウンドで出て、
その下に、でっかい、白い枠があるけど?
DWの設定を見直してみます・・・
環境設定>ブラウザでプレビュー>一時ファイルを使用してプレビュー にチェックしたら解決できました すいません><
113 :
nobodyさん :2009/01/16(金) 02:25:38 ID:cpRhXZRJ
114 :
nobodyさん :2009/01/16(金) 02:36:59 ID:cpRhXZRJ
<?php $dsn = 'sqlite:C:/aaa'; $pdo = new PDO($dsn); $sth = $pdo->prepare( 'SELECT count FROM bookmark where id=1'); $sth->execute(); $a=$sth->fetch(PDO::FETCH_ASSOC); print $a[count]; ?> これを実行すると 「20」 と、こちらが欲しい結果が表示されるが、それと共に Notice: Use of undefined constant count - assumed 'count' in という、Noticeが出てしまう。 「countを初期化すればいいのか?」 と思ったが、constはクラスの中でしか使えないみたい。 どうすれば初期化できる?
クラス外での定義ならdefine
116 :
nobodyさん :2009/01/16(金) 02:38:22 ID:cpRhXZRJ
>>71 は直接、クエリーを発行したけど、
今度はそれの、プリペアード・ステートメント版を作ってるということ。
この方がSQLインジェクションに強くなる。
117 :
nobodyさん :2009/01/16(金) 02:38:59 ID:cpRhXZRJ
>>115 なるほどね。
Noticeにconstantという用語が出ているからといって、
かならずしもconstを使って初期化しなければならない、
ということではなかったんだな。
118 :
nobodyさん :2009/01/16(金) 02:44:32 ID:cpRhXZRJ
<?php define("count", ""); //countを初期化 $dsn = 'sqlite:C:aaa';//データーベースの情報の定義 $pdo = new PDO($dsn);//データーベース作成 $sth = $pdo->prepare(//プリペアード・ステートメント 'SELECT count//フィールド選択 FROM bookmark//テーブル名選択 where id=1');//レコード選択 $sth->execute();//実行 $a=$sth->fetch(PDO::FETCH_ASSOC);//データーを取ってる print $a[count];//表示 ?> ------------------------------------------------------ これにしたら、今度は、次のNoticeが出るようになった。 Notice: Undefined index: in C:1.php on line 14 indexを初期化するってなんだ? $a[count]を初期化してみたが、違うようだし。
119 :
nobodyさん :2009/01/16(金) 02:57:41 ID:cpRhXZRJ
<?php $dsn = 'sqlite:C:/aaa'; $pdo = new PDO($dsn); $sth = $pdo->prepare( 'SELECT count FROM bookmark where id=1'); $sth->execute(); $a=$sth->fetch(PDO::FETCH_ASSOC); if (isset($a['count'])){ print $a['count']; } ?> これでいけた。 シングル・クオーテーションつけてないだけだった。 つけたらNotice消えた。
120 :
nobodyさん :2009/01/16(金) 02:59:00 ID:cpRhXZRJ
これでPDOでプリペアード・ステートメントを使って データーベースから情報を取ってきて 画面に表示する、というところまで、できた。 次の挑戦は、プレースホルダ、変数のバインドだ。
私いつもの人はミュンヒハウゼン症候群だと思うの
ID:cpRhXZRJアボーン
あぼーんなんてものは チラ裏に書いておきなさいってば
125 :
nobodyさん :2009/01/16(金) 14:08:45 ID:JjgIvuO0
rand()
$10000 ってなに?
ん、めちゃくちゃやんこれ
129 :
nobodyさん :2009/01/16(金) 14:30:18 ID:JjgIvuO0
すいませんコピペ間違えです ×for($i=0;$i<$10000;$i++){ ○for($i=0;$i<10000;$i++){ ×echo @"$i {$res[$i]}<br>"; ○echo @"$i {$result[$i]}<br>";
131 :
nobodyさん :2009/01/16(金) 14:46:49 ID:JjgIvuO0
分かりました
一様乱数の事を偏りの無い結果を返す乱数なら範囲はどうでもいいと誤解していました。
一様乱数は0〜1まででないと駄目で
$x=rand()/getrandmax();
$y=rand()/getrandmax();
としたら正規分布した結果が得られました
>>126 さんどうもありがとう御座いました
132 :
nobodyさん :2009/01/16(金) 14:47:25 ID:JjgIvuO0
133 :
nobodyさん :2009/01/16(金) 14:57:51 ID:BSD/KGQf
レンタルサーバに置いたindex.phpにて100サイト分のブログの更新情報を掲載するスクリプトを書こうか迷ってます rssで更新情報を取得したいのですが、これはレンタルサーバに負荷がかかるのでしょうか?
かかる
absかけてる理由ってなんなの?
139 :
135 :2009/01/16(金) 15:08:21 ID:???
俺もか
>>133 実際に問題になる負荷かどうかはこのスレの住人が決める事じゃないよ
レンタルサーバに相談してね
RSSはcron等で定期的に更新するようにして
表示する際はそのキャッシュを参照する仕組みをとってりゃ却下されないでしょう
144 :
133 :2009/01/16(金) 15:33:49 ID:???
cronが使えないので訪問時に条件判断してrssを一日一回のみ確認してみることにします index.phpには日時だけを表示するようにしますがこれも重い処理になるのでしょうか? ありがとうございました
レンサバに聞けよ
例外を組み込んでみて感じたけどやっぱfinallyがないと不便だね
>>146 ここは質問スレ。雑感はブログに書こうね。
不便とか、どんだけ貧困なんだよ。
不便じゃないの?
149 :
nobodyさん :2009/01/16(金) 18:44:56 ID:tYa6x4Bm
すいませんrssから更新日時だけを取得することってできますか? 本文などは転送量が多くなるので更新日時だけを取得したいです
普通できると思う
相手鯖の仕様による。 RSSを配信しているファイルで更新日時をはいてるかどうか試してみるといい。
153 :
nobodyさん :2009/01/16(金) 19:47:28 ID:08Ji2paI
php大丈夫なレンタルサーバーにphpのアクセス解析コードを入れて index.phpと保存したファイルをfffhpを使ってupしても 変なエラーコードがweb上で表示されます。 助けてください。
まず服を脱ぎます
変なエラーコードとは、通常出るようなエラーじゃないってことだから中の人の出番だな
157 :
nobodyさん :2009/01/16(金) 20:06:34 ID:tYa6x4Bm
え、こんなんで入れ食い
>>149 ,157
おいおい、似たり寄ったりだろうが
w
161 :
nobodyさん :2009/01/16(金) 21:20:34 ID:cpRhXZRJ
>>153 そのエラーメッセージをコピペしてください。
もちろん公開できない部分は適当に変えて。
ID:cpRhXZRJ
163 :
153 :2009/01/16(金) 21:36:07 ID:08Ji2paI
ありがとうございます。 いま携帯からなので自宅へもどりしだいエラーコード書きます。
笑うwww
167 :
nobodyさん :2009/01/16(金) 23:05:31 ID:3QNMuF/N
$bod=" START あいうえお END START かきくけこ END "; という変数から正規表現で間の文字だけ取得し、配列に入れたいと思います。 preg_match_all("/START(.*)END/is",$body,$array); としたのですが、取得できません。どういう書き方をすればいいのでしょうか?
ID:cpRhXZRJ、出番だよ
169 :
nobodyさん :2009/01/16(金) 23:17:16 ID:e0uLUs7Z
イメピタ風の携帯画像うpろだ探してます。 教えて下さい!!
170 :
nobodyさん :2009/01/16(金) 23:21:27 ID:n9qydKtv
ちょっと気になったので質問させて下さい。 文字コードがUTF-8で作った掲示板をブラウザで表示して ブラウザの表示を文字化け覚悟でEUCに変換、その後POSTで送信したら 内部に届く文字はEUCになるんですかね?
やってみ 聞いたことよりもやってみた結果のほうが何倍も信用できるだろ?
172 :
170 :2009/01/16(金) 23:35:26 ID:???
>>171 返信ありがとうございます。
やってみたらEUCで送られてきました・・・
どう対処しようかと考えましたが
mbstring.http_input = auto
mbstring.encoding_translation = On
にしたら全てUTF-8になりました。
お手数をおかけしました。
対処法はこれでいいんですかね?
自動変換しちゃっていいの?
174 :
170 :2009/01/16(金) 23:53:36 ID:???
>>173 mbstring.http_input = autoでは
まずいんですかね?
出来ればmbstring.internal_encodingで
設定しているUTF-8でいただきたいんですけど・・・
175 :
nobodyさん :2009/01/17(土) 00:41:26 ID:sXvdxnWv
webページ上で文字コードを変換すれば? もしくは今の時代utf8だからそのままでもいいとは思うけど
176 :
170 :2009/01/17(土) 01:00:35 ID:???
>>175 返信ありがとうございます。
私自身も今までこの設定でやってきたんですが、
もしUTF-8で作った掲示板を誰かがブラウザの表示で
文字のエンコードを変えてPOSTで送信してきたら
セキュリティ的に大丈夫なのかなと思いまして・・
変な質問ですいません。
セキュリティ的に(笑)
178 :
nobodyさん :2009/01/17(土) 01:19:40 ID:sXvdxnWv
どういう意味でセキュリティー的に危ないの? 大丈夫だよ。 誰もphp.iniをのぞかないから。乗っ取られない限り
179 :
170 :2009/01/17(土) 01:35:59 ID:???
>>178 例えば先程書いた例の通り掲示板にSJISの文字コードで
こんにちはとPOST送信してきた場合その言葉を内部でUTF-8に
エンコードしない限りSJISとして処理され
データベースに格納されてしまうのかなと疑問に感じまして・・
今日確認目的でマルチバイトの設定ファイルの勉強を再度したら
頭がごちゃごちゃになってしまいました。
変な質問本当にすいません。
SJISで格納されることがセキュリティ的に危ないの?
対処法としてはsubmitにnameを持たせて valueを日本語にして送信されたvalueと内部の値を比較する。
182 :
170 :2009/01/17(土) 02:23:40 ID:???
>>180 セキュリティというか文字化けですね。
掲示板の投稿やショッピングサイトのユーザ登録を作る時に
ブラウザから文字コードの違うテキストがPOST送信されてきた場合、
内部の文字コードに適切に処理するプログラムでいつも対処するべきなのか
疑問に感じました。
例えばIEのメニューから表示→エンコード→シフトJISに切り替えて
POST送信した場合、フォームに記述したモノは
全てシフトJISで送信されるんですかね?
なんか書きながらすごい自分自身幼稚な事を言ってる気がします。
読んでいただいてありがとうございます。
やってみ 聞いたことよりもやってみた結果のほうが何倍も信用できるだろ?
>>176 ブラウザ上でユーザーが明示的に
UTF-7にして、そのデーターを送信してきたら
アタッカーが意図的にjavascriptのコードを仕込んできて、
XSSやCSRFの原因になることがあるよ
詳しくはググれ
スレタイとテンプレすら読まない子にそれができるとは思えない
>>180 危ないだろ。
シフトJISでは防げない攻撃がある。
だからシフトJIS自体を使うのをやめましょうね、
って流れになってる。
それシフトJISじゃなくてエスケープやエンティティ化の問題じゃね?
ちなみにデーターベースに格納するときの危険性は SQLインジェクションだけ考えればいい。 そっから取ってきたデーターを画面に 表示するときは、htmlspecialcharsでサニタイズが必要。
サニタイズw
また、ユーザーの入力値を、そのままOSにコマンドとして渡す場合は、 「OSコマンド・インジェクション」への注意が必要。 通常、ユーザーの入力値をそのままOSに渡したりしてはいけない。 バカがメール送信プログラムとかでよくやる。
192 :
153 :2009/01/17(土) 02:46:02 ID:ElVqoJ54
Parse error: syntax error, unexpected '?' in /home/ユーザー名/public_html/index.php on line 61 よろしくお願いします
193 :
nobodyさん :2009/01/17(土) 02:46:54 ID:uOghFGaK
phpでポータルサイト作るのに ・サイト内検索 ・ログイン、ログアウト ・ユーザー登録 ・データベース管理 あとどんな技術が必要?
命令w
198 :
170 :2009/01/17(土) 03:02:18 ID:qiM85KnN
色々な意見本当にありがとうございました。 まだまだ勉強不足なのでこれから一層努力していきます。
努力するなんて言う奴が実際に努力するのを見た試しがない
fputcsv($fp, $data)で、CSVに書き込まれる値が"で囲まれない んですけど、なぜでしょう?デフォルトの挙動ではないのか。 ちなみに, fputcsv($fp, $data, ',', '"')としても結果は同じだた。
まずスレタイに注意することから
202 :
nobodyさん :2009/01/17(土) 05:31:32 ID:3kZEDG7g
2chとか掲示板の本文検索とかってmysql使ってるの? レス番、名前、メール欄、・・・・、本文、、 みたいな感じでテーブルにずらーと管理されてるのかな 想像絶するようなデータ量だと思うんだけど、そのようなことが本当に行われているのか。 それともphpでdatからこの部分参照、検索みたいなことやってるのかな。 気になってしょうがないので、なんとなくでいいので教えてください
2ch自体に検索機能はない 未来検索ブラジルってとこが2chのログをインデックス化して 検索できるようにしてるだけ なんのDBが使われてるかはしらないが当然DBは使われている 簡単にいえばGoogleみたいなもんだ
未来検索ブラジルは全文検索エンジンsennaの開発元だな。 詳細はぐぐれば分かる(もしくは説明しても分からない)から大雑把に言うと、 DBからインデックス(本の末尾に単語とページ数の対応表があるだろ、あんな感じ)を事前に生成し、そいつを使って検索する。 (もしかしたら公開版のsennaより高性能なものを使っているかもな) まあ、その辺は内部処理なので、呼ぶ側からは普通にSQLで検索かけているように見えるんだけどな。 昔の2chはMySQLだったので、いまもそうじゃないかと思うが、断言は出来ない。 それと、2chはPHPではなくPerlで動いている。 サーバー側の仕組みからして普通のwebサーバーとは異なるので、その辺のスクリプトと比較はできないけどな。
誰もperlで動いてることなんて聞いてないのに
説明下手でフイタw
>>202 DBに何使ってるのかは俺はシラネ。
他の人のレスにもあるように、大規模データのindex化の手法っていうのは色々あるので、
sennaの開発元でもあるし、頭の良い人は何かえーよーにやっとるのでしょう。
俺みたいな凡人は、頭の良い人が考えた技術を後からありがたーく使わせてもらうまでw
ちなみにgoogleなんかはDBのエンジンからして自社開発だけどね。
>ちなみにgoogleなんかはDBのエンジンからして自社開発だけどね。 (゚Д゚)ポカーン
>>210 無知はお前さんどすえ。
googleの講演会に1回ぐらい参加してみろ。
お前は何を言ってるんだ
2chってそんなに特殊なサーバー環境で動いてるのか。
そんなにってどこを指してそういってるんだw
糞ばっか!
そんなんだから恥ずかしいコード書くんだよお前は
まあ、広い意味じゃBigTableもDBだから間違っちゃいないだろ。 MySQLとリプレース可能なものだと思われても困るがな。 分散DBですらない、OSIでの複数層をぶち抜くような謎システムだし。
2chがmysqlて初耳なんだけど。 だとしたらdat要らないんじゃ
>>218 別スレも荒らしてる融通の利かない馬鹿共みたいなので放置推奨
確かにあれは色々謎だらけだ。
>>219 誰もそんなことは書いてないが場を和ませる為に書いてくれたんだよな。うん。
2chのような1スレ1000レスできるスレを、1000スレほど管理し、本文や名前などを検索したいとき php+MySQLで、datの場所だけはsqlで管理して、本文なんかはdatからphpで検索するのと あらかじめdatの内容がMySQLにインポートされたものを、phpで検索するのとでは どれくらい差が出てくるんだろうか
さんざん既出 というかファイルベースとDBの基礎
225 :
178 :2009/01/17(土) 18:19:04 ID:sXvdxnWv
おれの馬鹿ーーーーーー utf-8は携帯も如徐に対応してきているからな。 utf8で行こう。 もちろんサニタライズとmysql_real_escape_stringはしような
>225 あうーはいまだにUTF-8を安心して使えないのだが。
227 :
nobodyさん :2009/01/17(土) 18:30:17 ID:sXvdxnWv
euc-jpだと携帯はみられないとちゃうん?
低レベルなやつばっかだなここは
おまえは低レベルのスレのおかげでここまで成長してこれたろ
>>227 最近は実はeucでも大抵対応してたりします。
でも、やはり携帯向けの出力はSJISが良いです。
携帯については、docomoがSJIS大好きでその過去の遺産を引きずり続けてるので仕方ない。
>>226 PHP側のソースコードはUTF-8で書いて、出力をSJISにすればいいです
入出力をSJISで扱う際は、SoftBank(3G)の絵文字がdocomoやauの絵文字とコードが被ってるのでご注意を
231 :
nobodyさん :2009/01/17(土) 23:06:48 ID:sXvdxnWv
携帯もちゃんとeuc-jpに対応せいや
文字コードで思ったけど。 オレはおまじない的にSJISじゃなくてSJIS
234 :
nobodyさん :2009/01/17(土) 23:51:38 ID:Bf8FDb6Y
PHP入門者です。 PHPの仕事がしたいのですが、どんな試験に合格すればPHPの仕事が来ますか?
>>233 途中で送ってしもた。
SJISwinとかにするなぁ。
EUCもwin
236 :
nobodyさん :2009/01/18(日) 01:18:16 ID:8k82vHSn
>>234 試験なんかいらんよ。
趣味でPHPでサイトとか作ってみて、そこそこ作れるようになったら
未経験可のネットベンチャーに潜り込んでプログラマとしての実務経験を積む。
実務経験ができたら好きなとこに転職。ここらへんは努力次第。
237 :
nobodyさん :2009/01/18(日) 01:59:05 ID:NtnUHZUG
PHPの仕事か? あるぞ。 少なくともrubyよりは
238 :
192 :2009/01/18(日) 02:55:33 ID:ahiVKrb+
どうすればいいですか?
? が変なところに入っている。消せ。
*.php以外のファイルでphpを動作させる方法ってありますか? 具体的にはcssにphpを埋め込んで動的にWebページのレイアウト(背景画像など)を変えたいです
>>240 アパッチの設定で、
拡張子cssのファイルで
PHPが動作するように設定すればできるかも。
242 :
nobodyさん :2009/01/18(日) 04:07:10 ID:FyU5dhg9
PHP5でClass変数のアクセス権限(public, protected, private)が設定出来ますが、 これらの権限を確認する関数などはありますか?(クラス名と変数名を受け取って権限を返すような)
>>240 別に拡張子phpで指定して適切なcontent-type出力すればおk
245 :
nobodyさん :2009/01/18(日) 08:08:39 ID:5/8C6AIC
246 :
nobodyさん :2009/01/18(日) 08:56:31 ID:FY9pgzCK
winXP, PHP5.2.3, Shift_Jis 「ソ」が入った単語がfalseになるみたいだけど、 マッチさせる方法ありますか? <?php error_reporting(E_ALL | E_STRICT); mb_internal_encoding('Shift_Jis'); $str = 'ソウル在住のペーが主演する冬ソナはNGワードにする'; echo '<pre>'; var_dump(mb_ereg('ソウル|冬ソナ', $str)); die;
表とか能とかもチェックしてみたらどうよ
>>246 $strをutfに変換してからmb_eregにかける
>>248 それなんてエスパー?内部エンコ無視してUTFで処理できんの?
mb周りの他の設定がないと正しいアドバイスなんてできないだろ。
>それなんてエスパー?内部エンコ無視してUTFで処理できんの? (゚Д゚)・・・・
>>246 SJIS止めましょうというのが正解だけど、取りあえずは
mb_regex_encoding()
の指定で何とかなるかも。
知ってるかもしれないけど、SJISは2byte目に\x5c(要するに「\」)を含む文字があるので、
理由についてはその辺りを調べておくといいよ。
>>245 確かに、複雑な正規表現と一緒で、第三者が見るとパッと見で何やってる
のか分かり難い事はあるよ。でもそれってコードの書き方やコメントで
幾らでも回避出来るので、bindParamの利便性を否定する理由にはならないと思う。
>>233 ,235
携帯なら○-winは必須ですね〜
例えば、SJIS-win=cp932なので、
携帯絵文字を含む文字列を変換する際、○-winを付けておかないと上手くいかない。
○-winを付ける理由というのは、要するに扱う文字列の範囲が変わるって事だけど、
携帯向けの開発経験が無くて知らない人もいるかと思い、一応補足してみた。
255 :
nobodyさん :2009/01/18(日) 12:59:52 ID:2lVr2uZS
hoge.inc.phpの結果が返ってくるけどそれでいいのかい
includeってURLは開けないんじゃなかったけ
あ、なんでもない今の発言取り消し
>>255 どっちでもいいがそもそもSSL通す意味あんの?
URLをインクルードした時点で帰ってくるのはテキストかHTMLなわけだけど
261 :
nobodyさん :2009/01/18(日) 16:01:53 ID:2lVr2uZS
>>259 定数を設定してるただの設定ファイルなんで、、問題ないかなと。。
他にも答えてくれた方、ありがとうございました
mb_*系は文字コード変換以外は使わない。 正規表現で使いたければ16進表記でpreg
264 :
nobodyさん :2009/01/18(日) 21:25:09 ID:SRgQAS5C
二つ質問があるんですが $a="アホ"; という変数があって それが既にある配列の中にあるかどうかを調べてその配列内の文字列のキーを取得したいんですがいい関数ある? $array(1=>"バカ",500=>"アホ",960=>"クソ",) で、「アホ」を返したい。 あと関係ない質問だが md5()ってマジで重複した文字列にならないんですか?
>>264 array_search("アホ",$array);
ごく稀に重複する。心配ならSHA-1使え。
極当たり前なことを、知らない奴もいるんじゃまいかと妄想するアホな質問者にまともに答える必要なんぞない
>>264 質問が矛盾してる、アホは値であってキーではない。
array(264=> "バカ", 500=>"アホ", 268 =>"クソ")
>>265 SHA-1でも衝突する可能性はあるでしょ。天文学的に低い確率でだが
暗号学的ハッシュ関数を期待するなら、最近はSHA-1も攻撃に成功しちゃったので
SHA-2系列が無難
おいおい、何に使うのか知らんが、用途にみあった強度ってことを考えろよ
オヌヌメの開発環境教えて^^
EmEditor
サンキューベジータ^^
273 :
nobodyさん :2009/01/18(日) 22:48:54 ID:SRgQAS5C
>>265 ー269
サンキュー
とりあえずやってみるわ
274 :
nobodyさん :2009/01/18(日) 23:38:37 ID:2lVr2uZS
PHP5で、PEARやFWを使わずにAtomを解析したいと思います 何か便利なツールをご存じないでしょうか? よろしくお願いします
なんで使わずに?
276 :
nobodyさん :2009/01/19(月) 00:04:50 ID:JWKfTsmi
>>275 レスありがとうございます
借りてるレンタルサーバーが両方とも使えないんです 参りました
PEARってレンタルサーバーで 「使えない」って設定にされたら、 それでもう、使えないというしろものなの?
278 :
nobodyさん :2009/01/19(月) 00:13:20 ID:6UkUnxLQ
280 :
nobodyさん :2009/01/19(月) 00:19:45 ID:JWKfTsmi
>>277 うーん、どうなんでしょう、、
今、phpInfo()してみたら、↓という項目が出ました
include_path .:/usr/lib64/php/pear
これは使えるってことかなぁ。でもサーバーのサイト見たら使えないって書いてるような
それに、自分が必要なモジュールがインストールできなきゃ意味ないですよね。。
なんだ使えないとか書いといて自分でも分かってないんじゃん
282 :
nobodyさん :2009/01/19(月) 00:24:28 ID:JWKfTsmi
phpなんだから自分のinclude pathに必要なのを置けば使える 依存関係だけ要チェック
284 :
nobodyさん :2009/01/19(月) 00:29:33 ID:6UkUnxLQ
>>283 PDOのMySQLのドライバが入ってない場合は、
「自分でなんとかする」ってアプローチは、無理?
285 :
274 :2009/01/19(月) 00:54:30 ID:JWKfTsmi
皆さんどうもありがとう simpleXMLとかいう関数もあるみたいです いろいろ試してみます、ありがとうございました
286 :
nobodyさん :2009/01/19(月) 01:23:25 ID:6UkUnxLQ
PDOの初心者向けの、入門用のいい本って、 何かある?
そもそもなんでPDOなんか使うのさ 自力でごりごり書いたほうが楽やんけ
使いどころが分からないレベルならPDO使うな
289 :
nobodyさん :2009/01/19(月) 01:31:38 ID:6UkUnxLQ
http://www.thinkit.co.jp/cert/books/2/2/1/2.htm このページに、
「windowsユーザーは以下の設定をしろ」
って書いてあるんだけど、Win用ってsoファイルだっけ?
libファイルだったような気がするんだけど?
次にphp.iniに以下の設定を行い、コンパイルしたPDOのモジュールをPHPにロードします。
?? Win32 users
extension=php_pdo.so
extension=php_pdo_sqlite.so
またいつもの基地外か
291 :
nobodyさん :2009/01/19(月) 01:35:58 ID:6UkUnxLQ
php_pdo.so でググってみても、 1件しかヒットしないんだが、 このモジュールって本当に存在するのか? 1件っておかしくないか?
>>290 お前が会社をクビになったのは
コミュニケーション能力が無いから。
ageとsage使い分けてる臆病者に言われたくないw
>> 291 "php_pdo.so" の検索結果 約 115 件中 1 - 10 件目 (0.04 秒)
ID:6UkUnxLQアボーン
297 :
nobodyさん :2009/01/19(月) 12:06:52 ID:Pmk06qWC
掲示板のログについて質問です 掲示板が荒らされた時に荒らし対策とプロバイダへの通報を視野に入れてますが 最低限必要なデータは日付とIPだけでよろしいでしょうか? 他にも取得したほうが良いものがございましたらご教授よろしくお願いいたします
298 :
nobodyさん :2009/01/19(月) 12:08:58 ID:dm9TADfg
ある関数を呼んだときに、 その関数内で自身のファイル名を表示するにはどうしたら良いでしょうか?
300 :
298 :2009/01/19(月) 12:38:28 ID:???
ID:dm9TADfg
>>299 さん
できました。ありがとうございました。
IDの意味がないなw
>>297 日時とIPアドレスだけで特定できるから、
あとは紐付けできる掲示板のログね
逆にそれ以上の内容まで保存しているISPは少ない
304 :
298 :2009/01/19(月) 13:15:11 ID:dm9TADfg
あ、名前に入れれはIDが出力されるのか・・・ スイマソ 連続してしまいますが、もう1つ教えてください。 Digest認証したあとに現在ログインしている人のユーザ名は どうやったら分かりますか?
307 :
298 :2009/01/19(月) 13:16:23 ID:dm9TADfg
違う、E-mailを空にするとIDが・・・ 申し訳ないです。
>>297 出来るなら書き込んでいる人間の顔写真があるといい
どっちかって言うとIPアドレスよりもホスト名のほうがいいかな 取得できなければ仕方ないが
うちの環境は2年間ipだけ取得してきたけどホスト名で取るメリットは? ホスト名のほうが利点あるのなら書き換えたい
両方とればいいじゃん。 逆引き用に自前のDNSもってればいくらでも書き換えられるし。
313 :
nobodyさん :2009/01/19(月) 14:07:51 ID:JWKfTsmi
simpleXMLで.xmlを解析しようと思ってます
(XMLはMovable Typeのフィードです)
<category term="FISHING" scheme="
http://www.sixapart.com/ns/types#category " />
<category term="北海道" label="北海道" scheme="
http://www.sixapart.com/ns/types#tag " />
という構造を含むXMLを解析するとき、下段の labelの方の「北海道」を取得するにはどうしたらいいんでしょう?
$xmlObj = simplexml_load_file($file);//$fileは.xmlへのパス
$xmlObj->entry->title; で、タイトルを取得できるのはわかったんですが
どうも上記の解析はわかりません
どなたかよろしくお願いします
314 :
nobodyさん :2009/01/19(月) 14:09:23 ID:4ClG+j5+
$list = array( 0 => array( 'num' => 1, 'name' => 'master'), 1 => array( 'num' => 2, 'name' => 'hoge'), 2 => array( 'num' => 3, 'name' => 'fuga'), 3 => array( 'num' => 4, 'name' => 'foo')…); 配列の最大値のnumの数値をとりたいのですが関数などありますでしょうか? 下でもできますがこれが一番良いでしょうか? $val = max($list); echo $val[num];
それでよいよ
316 :
nobodyさん :2009/01/19(月) 16:31:11 ID:FUIeaJ+6
glob関数は指定のディレクトリに移動するにはどうしたらいいんでしょうか
聞いちゃダメ。
chdir
>>319 できました! どうもありがとうございました
いいってことよ
なんかさぁ、このスレ知ってから何でも質問する癖がついちゃって自分で考える事が無くなったわ。 おまえ等もそうだろ?
答える側は知らない事でも調べて考えて答えるから自分で考えてばかりだけどな。
JAVAがいいらしいと評判ですが やはり処理速度が速いためでしょうか。 PHPもアクセラレータを入れると速くなりますが、それでもかなわないんでしょうか。
そんなに処理速度が要求されるサイト作るの?
気になっただけです 当分phpです・・・
小規模なものだとPHPの方が速い事もあり得る。 近所のコンビニに行くのに、車を使うよりダッシュしたほうが速いのと同じ理屈。 大き目の処理だとJavaの方が絶対に速い。なぜなら、PHPは動的型付け言語だから。 時間効率だけでなくメモリ占有量など、他にも考慮すべき要素はたくさんあるけどな。開発効率の問題もあるし。 現実問題、ボトルネックはDBになりがちなので、フロントエンドをPHPで書こうがCで書こうが大差ない場合も多い。
> なぜなら、PHPは動的型付け言語だから。 ・・・・
> 小規模なものだとPHPの方が速い事もあり得る Hello World!ならJavaよりPHPの方が速いとでも?
Hello Worldだったら、素のHTML最強伝説。
ここにプロのプログラマーもいると思うんですが、みんな仕事で メモリ使用量だとか考えてプログラム組んでるんですか? それは別の人の仕事? ただ気になって聞いただけですが。。
最強伝説はtxtだろzk
メンヘラ臭がするw
>>331 何が当たり前なんだろうな。
phpの環境はともかく、Javaの実装環境なんてまちまち。
Tomcat単独ApacheなしのJSPでもapache with php5より速いぜ。
ベンチ出せや、説得力ないぜ?
PHP 103.97 Java 121.35
secですね分かります
処理数/sec
まぁ、ベンチ出せって言ってる段階で 取ったことがない奴の妄想ってのはみえみえだが
343 :
nobodyさん :2009/01/19(月) 23:14:36 ID:JWKfTsmi
>>335 負荷測定ってのがあるんだ?
個々のプログラマーのデスクトップ環境でできるものなんですか?
もしソフトがあるなら教えてください
クソみたいなコードなんだろうな
無料かつ初歩的なのはこれ ab jmeter デスクトップでテストしても、限定的勝つ相対的なチェックしかできない ローカル接続したマシンを2台以上は用意したほうがいい。
>>344 おまえさんの糞じゃないHello Worldが見たいね
それ以前にお前は何も書いてないだろ
出してるしw
351 :
nobodyさん :2009/01/20(火) 02:25:23 ID:GUH/knOv
PDOなんだけど、 bindParam と bindValueの 違いがわからんなー
特定のディレクトリ内のphpだけLogファイルとかにアクセス権を与えたりするって事出来るんでしょうか?
>>352 cgi版やCLI版のPHPなら実行ユーザ次第で出来るんじゃね
linuxとかならだけど
pmaのsql文のボックスのバックを黒、文字を白にしてみた コマンドプロンプトみたいで落ち着く
なんで、
http:// 〜〜/test.php
みたいなリンクがあったとき、右クリックで保存すると
test.phpのソースコードじゃなくて、phpの実行結果が保存されるのは
セキュリティなのはわかるんだけど、どこでそんな制御してるの。
必ずディレクトリに、test.phpが存在するはずなのに取られないこのセキュリティは完璧なの?
例えば、鯖してるパソコンからアクセスされたら、パスでもかけて無い限り
とられるのは当たり前だけど、それ以外のごく普通に
ネットからブラウザでアクセスされた場合は、どういう仕組みで
ソース取られないようにしてるのか教えてください。
でも難しいと理解できないから簡単にお願いします
例えばapacheでphpソース取られない設定にしたら、
絶対にとられません大丈夫、みたいな感じでいいのでしょうか。
356 :
355 :2009/01/20(火) 05:39:44 ID:ncKHa7O+
>>355 .htmlも.txtも.cgiも.plも.phpも.phpxも
読み込んで送信するのはapacheの仕事。
apacheがどういう扱いにするかを決める。
その設定はapacheを管理する人が決める。
.phpがタダのテキストファイルだっていう扱い
にすれば、ソースをそのまま取れるし、php
のコードだっていう扱いにすれば、書いてある
とおりに動く。
一度、小学生〜中学生向けの入門書を読んでみるといいよ。
子供むけのは、ものすごくわかりやすい。マジで。
358 :
nobodyさん :2009/01/20(火) 06:04:07 ID:ncKHa7O+
>>357 なるほど、鯖の設定次第で大丈夫なのか
なんか、顧客名簿流出しましたとかよく聞くから
もしかしたらなんて思ってた。
apacheとか鯖の設定とか把握できてないし、不安だ。
入門書から理解してみるか、dクス
>>358 顧客名簿流出は話がべつじゃね?
其のあたりが知りたいならSQLインジェクションだったりも
知っておいた方が良いと思う?
テキストレベルでやるなら公開フォルダに書き出し先の
ファイルを置かなければひとまずは安心だと思う
顧客名簿流出は
>>358 の想像通り、Apacheの設定の不備でも生じる。
でもよくあるのは
>>359 の指摘通りWebアプリの脆弱性を利用されるケース
Apacheの設定不備対策としてはDocroot外に置けばそれなりに効果はあるだろうが、
脆弱性を利用された場合は効果は期待できない。
362 :
nobodyさん :2009/01/20(火) 10:07:03 ID:JGB4BGu+
foreachで任意のkeyの値のみ出力するってできないんでしょうか? array(array('name'=>'太郎', 'age'=>'15'), array('name'=>'次郎', 'age'=>'10')) っていう配列を対象に foreach文の中でnameである太郎、次郎のみを抜き出したいです よくある、echo key = item っていうのをそのままやると、 太郎15次郎10となるところを 名前だけにしたいんです item[0]だとか試しにやってみたんですがダメでした ご意見お願いします
>>362 こんな感じ?
$ary = array(array('name'=>'太郎', 'age'=>'15'), array('name'=>'次郎', 'age'=>'10'));
foreach($ary as $v){
echo $v["name"];
}
>>363 ありがとうございます
とりあえず細かく分解しようと2重にforeachしてたんですが、
これが正解ですね ほんとにありがとう
>>364 二回まわすならこんな感じ
$ary = array(array('name'=>'太郎', 'age'=>'15'), array('name'=>'次郎', 'age'=>'10'));
foreach($ary as $t){foreach($t as $k => $v){
if($k == "name"){ echo $v; }
}}
366 :
nobodyさん :2009/01/20(火) 13:10:25 ID:v0ejdLQc
PHPをスタンドアローンにするおすすめのソフトを教えて下さい。 最新のPHPのバージョンで使えるやつ。
>>366 PHP はスタンドアローンだと思うけれど?
>>366 apachとPHPインストールして
利用しているコンピューターからNICを引っこ抜け
そうすれば望みのスタンドアローン完成だ
意味わからなかったが、ググったらEXE化のことか・・・
>>343 最低でも「apache ab」をぐぐってから書けやクズ
>>370 アホッ
ベンチマークするソフトの名前を知りたい奴がどうやってabでググるんだよ
373 :
nobodyさん :2009/01/20(火) 17:27:33 ID:eF2tE7Nu
掲示板のログについて質問させてください 豪快な荒らしにあった場合に備えてdate('Y/m/d H:i:s')で投稿日時を記録してるのですが 秒は切り捨てても大丈夫でしょうか? プロバイダに荒らしのログの提出するときに秒が抜けてると対応してくれないのでしょうか? どなたか詳しい方アドバイスお願いいたします
>>373 掲示板の荒しなんぞ、プロバイダは対応しねぇよ
犯罪対策ならApacheのログ持って警察行け
あり:324 きりぎりす:323
379 :
nobodyさん :2009/01/20(火) 17:41:45 ID:eF2tE7Nu
377さんありがとうございます anhttpd使ってるのですがこれのログでも大丈夫でしょうか?
本人だけどなにか?
>>379 警察が対応に対応してほしいならApacheにしとけ
383 :
nobodyさん :2009/01/20(火) 17:52:19 ID:eF2tE7Nu
Apacheをこれからは使うようにしてみます ありがとうございました
384 :
nobodyさん :2009/01/20(火) 18:00:26 ID:SFGtZmtf
osirase.txtに以下の日時から始まる文字列を記録してます 「2008/1/19 12:34:52までに投稿が15件ありました(管理人より)」 このカッコ内の文字列の中から日時(2008/1/19 12:34:52)だけ 正規表現でとりたいのですがエラーで困ってます どなたかご教授お願いいたします エラー Warning: preg_replace() [function.preg-replace]: Unknown modifier コード preg_replace("/\d{4}/\d{1,2}/\d{1,2}\b\d{1,2}:\d{1,2}:\d{1,2}/","",$data);
385 :
nobodyさん :2009/01/20(火) 18:01:04 ID:SFGtZmtf
書き忘れました $dataには上に書いた文字列が入ってます
デリミタ/がダブってる
> 正規表現でとりたい 取り除きたいっていう意味ですか。そうですか。
スラをクォートか
389 :
nobodyさん :2009/01/20(火) 18:10:52 ID:SFGtZmtf
$data="2008/1/19 12:34:52までに投稿が15件ありました(管理人より)"; echo preg_replace("{\d{4}/\d{1,2}/\d{1,2}\b\d{1,2}:\d{1,2}:\d{1,2}}","",$data); デリミタを{}に変えたらエラーはなくなったのですが日時以外のところも取れてしまいました どなたか問題のある個所をご指摘お願いいたします
preg_match("!\d+/\d+/\d+\s+\d+:\d+:\d+!", $data, $date); echo $data[0]; こうじゃないか? やったことないけど
391 :
nobodyさん :2009/01/20(火) 18:18:46 ID:SFGtZmtf
すいませんpreg_matchに切り替えたら解決しました スレ汚しすみませんでした
392 :
nobodyさん :2009/01/20(火) 18:40:22 ID:lsnmh+C8
$name = array("テレビ","冷蔵庫"); $no = array(1,2); $name[0]は$no[0]と一緒に出力、$name[1]は$no[1]と一緒に出力します $nameと$noの値の数は一致しますが、値の数は不定の場合の この不定の場合を考慮して書きたいのですがどなたかアドバイスお願いします
array_combineしてみる? リスキーだとは思うが
395 :
nobodyさん :2009/01/20(火) 19:09:34 ID:lsnmh+C8
array_mapで自己解決できました ありがとうございました
今日はやけに勉強熱心で自己解決できる質問者が多いな 感心関心
array_mapで解決ってネタだろw
なぜに?
399 :
nobodyさん :2009/01/20(火) 19:42:22 ID:lsnmh+C8
すいません一応解決したコード載せておきます $name = array("テレビ","ラジオ","カメラ","冷蔵庫"); $no = array(1,4,2,5); array_map("view",$name,$no); function view($a, $b, $c) { echo $b.$a.$c; echo "<br />"; }
400 :
nobodyさん :2009/01/20(火) 19:43:09 ID:lsnmh+C8
ここ訂正します array_map("view",$name,$no); function view($a, $b) { echo $b.$a; echo "<br />"; }
実際には$nameと$no以外にもあり$cを書いてしまいました、すみません
397です すみん。バカをさらしちまったな。 マニュアルに書いてあるねそのサンプル おれには、そのセンスはない。
レベル低いなら答えんなよ
答えてねぇし
じゃ二度と書き込むな
407 :
nobodyさん :2009/01/20(火) 21:28:08 ID:JGB4BGu+
$memberAry = array( array('鈴木','1組'), array('山田','3組'), array('岡本','2組'), array('小林','3組'), array('三井','2組'), array('内田','1組') ) という配列があって、これを元に組ごとの人名リストを作る必要がある場合どうしたらいいんでしょうか? 自分が考えたのは チェックした組の名前を入れる $kumiAry という配列を別に作って、 $kumiAry = array(); for($i=0; $i<count($memberAry);$++){ if(!in_array($memberAry[$i][1], $kumiAry)){ $kumiAry[] = $memberAry[$i][1]; echo $memberAry[$i][1]."のメンバーは以下の人です"; } if(array_pop($kumiAry) == $memberAry[$i][1]){ echo $memberAry[$i][0]."君<br />\n"; } } …という感じにするものです。 でも、もっと効率の良いやり方がある気がします また、これだと書き出される組の順序が 最初の配列の格納順(1組、3組、2組)になります。 ・もっと効率的な処理の方法で、できたら順序も正しくなる処理をどなたかアドバイスお願いします
>>407 ソートすればいいだけ。あとは調べてね。
>>407 $++とか他にもエラーになるんだが
貼り付けたら動作するものをここに張りたまえ
>>407 foreach ($memberAry as $member) {
$result[$member[0]][] = $member[1];
}
var_dump($result);
415 :
下らねぇスレ公認回答者認定試験 :2009/01/20(火) 23:23:53 ID:3GQunpT5
test.phpに各パートのみコードを書いてみた。この内、ひとつだけ動作しないものがある。それはどのパートか? 動作しない理由も書いて説明してください。ローカルで動作させないでコードを読んで答えましょう 【パート1】 a(); function a() { echo 1; } 【パート2】 function a() { echo 1; } a(); 【パート3】 function a() { function b() { echo 1; } b(); } 【パート4】 function a() { b(); function b() { echo 1; } }
ミスった。上の訂正版。こっちみてね 【パート1】 a(); function a() { echo 1; } 【パート2】 function a() { echo 1; } a(); 【パート3】 function a() { function b() { echo 1; } b(); } a(); 【パート4】 function a() { b(); function b() { echo 1; } } a();
417 :
nobodyさん :2009/01/20(火) 23:30:36 ID:3GQunpT5
正解は
>>430 越えたあたりでレスポンス見てから書きます
答えましょうじゃなくて、教えてくださいだろ。 それはそうと、前スレあたりで、関数定義はグローバルか? とかなんとか質問してたnoobがちょっと理解したらもう出題者ですか。 闘技場にでも逝ってください
知らない奴はだまってろ
まぁスレ違い
421 :
nobodyさん :2009/01/20(火) 23:36:31 ID:3GQunpT5
>>418 おまえストーカー気質あるな
そんな前スレの人間なんて知らんがな
見えない敵と戦ってくれよ
422 :
nobodyさん :2009/01/20(火) 23:37:07 ID:3GQunpT5
わからないなら
>>430 越えるまで指くわえて黙ってROMってろ
またいつもの基地外か
下らねぇスレ公認回答者認定試験wwww
425 :
407 :2009/01/20(火) 23:38:39 ID:???
皆さん混乱させるような妙な質問とソース貼ってすみませんでした どうにか解決しました、スレ汚し失礼しました
出たよ。わからないならとか釣って、答えを教えてもらおうって魂胆見え見え そういや、参照のクイズ出してたバカも同類だなw 関数はどこで定義されてもグローバル ifや関数内に書かれた関数は、その行にしてからグローバルに登録される なんて仕様、知りません
下らねぇスレ公認回答者認定試験
絶賛試験中です〜〜〜〜〜
429 :
nobodyさん :2009/01/20(火) 23:43:32 ID:3GQunpT5
>>426 おつかれ
残念ながらそれは100点はあげられません
ツワモノはいねーのか、はい次
あぁ、そういえば参照のクイズ出した奴は答え出さずに逃げたな
>>426 って回答してないよな。
回答してないのに、採点してんの???すげー構ってちゃんw
ID:3GQunpT5は答え書かないで逃げた方がいいぞ。 勝手に公認を名乗るって詐欺師マガイだぞ。 まずは「公認」名乗っていいですか?って聞けよ
415 :下らねぇスレ公認回答者認定試験:2009/01/20(火) 23:23:53 ID:3GQunpT5 test.phpに各パートのみコードを書いてみた。この内、ひとつだけ動作しないものがある。それはどのパートか? 動作しない理由も書いて説明してください。ローカルで動作させないでコードを読んで答えましょう
スレが異常にの見てたと思ったら・・・ 君たちは煽りだけは一人前だな
このスレは
>>397 級のPHPerしかいないってことだろ
>>415 test.phpに各パートのみコードを書いてみた。
Apacheが動いてないので、全部動きません
動ナビにこのスレ登録されててワラタ
415の問題に問題があるな 関数内関数とかアホなことやろうと思わない
442 :
nobodyさん :2009/01/21(水) 00:01:14 ID:eSstKmZ8
答えられないからって問題にけち付けるなよ。カス!
443 :
nobodyさん :2009/01/21(水) 00:02:32 ID:eSstKmZ8
こんな最高の問題がわからないなんて、ここの連中は揃いもそろって○○だな
はいはい。
445 :
nobodyさん :2009/01/21(水) 00:42:02 ID:eSstKmZ8
446 :
nobodyさん :2009/01/21(水) 00:44:02 ID:eSstKmZ8
ホントの正解は「<?phpって書いてないからプレーンに出力される」でした
447 :
nobodyさん :2009/01/21(水) 01:05:44 ID:LcssGvP8
http://www.bnote.net/php/pear/24_auth_http_db.shtml このプログラムの説明がよくわかりません
Authを呼び出し、
¶ms=array〜 わかりません
$objAuth = new Auth_HTTP("DB", $params);
// realm領域名
$objAuth->setRealm('Please Enter Your Password');
わかりません
$objAuth->setCancelText('<h2>Error 401</h2>');
「->」の演算子(?)の意味が分かりません
if($objAuth->getAuth()) {
echo "ようこそ!" . $objAuth->username . "さん<br>";
// メールアドレスを取得。
echo $objAuth->getAuthData('email');
};
どういう条件分岐なのかわかりません。
すいません 初心者用の本買ったのにはやく実践したくて読み飛ばしてました やっぱり基礎がないとプログラム読めませんね 出直します
本なんか読む前にまずマニュアル読めよ
大丈夫だぜ。
>>447 おれなんかぜんぜん知らなくてもPHP書いているんだから
452 :
nobodyさん :2009/01/21(水) 04:34:10 ID:S7hz7ANF
ちょっとまてよ・・ phpにアクセスしたときに、アクセス情報記録するのはできた だが、例えば.jpgとか直接アクセスされたときのアクセス情報を記録するにはどうしたらいいんだ? 頭がこんがらがってきたぞ 自サバの場合でな。
PHPとはまったく関係ないお話です サーバ側でどうにかしなさい
454 :
nobodyさん :2009/01/21(水) 05:07:11 ID:S7hz7ANF
そうなのかーすまんかった 直接の場合もmysqlとかで管理できたらいいのにと。 よくわからんけど、Apacheのconf的なところでいろいろ書き込めばいけるのかな とりあえずやってみわ
phpでjpeg出力してやればphpでどーにでもできるぞ
Apacheのログみてみな 全部のアクセスに対して情報が細かく書いてあるから あとはその解析結果を見やすい形にするのをPHPでやればいい というよりそういうソフトはいくつかあるので探してみるといい (xamppにも入ってるWebalizerとか) xreaなんかはユーザ別にApacheのログをとるようにして Analogというソフトを入れて各ユーザごとに参照できるようにしてる
457 :
nobodyさん :2009/01/21(水) 06:19:09 ID:S7hz7ANF
>>455 あれかな、.php?12454133&test.jpg
みたいな感じのやつかな
>>456 おお、logsみたら自分の足跡と、気になるけどみしらぬ足跡もいっぱいついてた!
これを今まで通りphpで見やすくしてやるのかd
458 :
nobodyさん :2009/01/21(水) 07:51:19 ID:x55oWDH2
sqliteにデータを入れようと思っています。 今のまま作業するとデータはSJISになりそうですが、 UTF-8に変換した方が良いですか?
用途による
>>457 そういうときのmod_rewrite
hogehoge.jpg -> img.phpに渡してやる
足跡ですか・・・
462 :
458 :2009/01/21(水) 09:43:56 ID:x55oWDH2
>> 459 本の貸出し管理用DBです。
>>462 用途としてそのDBをACCESSやEXCELで直接触りたいかどうかとか、
文字セットに含まれないものはどうするかとか
想定しているクライアントとか、
将来の展望とか。
465 :
458 :2009/01/21(水) 10:43:50 ID:x55oWDH2
>>463 DB中の情報を操作するのはブラウザから。
対象者は一般のおばちゃん、おじちゃんです。
少なくとも今後5年間は稼働すると予想されます。
>>465 WEBで閲覧オンリーならEUC-JPかUTF-8が良いと思う
個人的な意見としてはEUCの方が扱いやすいんじゃないだろうか?
ブラウザ限定で、この先5年を考えるなら、 個人的な意見としてはUTF-8の方が無難なんじゃないでしょうか。
とっととutf-8に移行しろよ
ほんとはShift-Jisがいーんだけどね
処理はEUCで表示はSJIS、これがおれのやり方だ
いやutf-8だろ
sjis(笑)
おれはDBはlatin1だなぁ
情報を大量に扱うサイトではマルチバイトは避けたほうがいい case by caseで対応しなさい
ググったら、SQLiteってデフォルトのままだとUTF-8のサポートが甘いって、
477 :
458 :2009/01/21(水) 12:17:52 ID:x55oWDH2
レスありがとうございます。
私に、文字コードに関する全く知識がないのでいけまんせんが、
ここ数年でLinuxがEUC-JPからUTF-8に移行したこと、
サーバがUTF-8なこと、
あと何となくですがShift_JISよりUTF-8の方が新しいから良いかな、
というようなことで
>>458 でUTF-8と言いました。
UTF-8だとEUC-JPやShift_JISと比べると日本語の情報量が増えると言った問題も考えられますが、
これについては扱うデータが少ないので大丈夫ではないかと思っています。
上記のような流れでUTF-8にしようかとも思っているのですが、
文字列処理時、DB自身の処理時に問題が生じないか心配です。
できればDB中の文字コードと処理時の文字コードを統一しておきたいというのがありますので。
(
>>458 での質問と論点がずれてしまいました。申し訳ありません。)
な、まぁ、たしかに・・・
転送量気にするほど使ってないだろ
SQLiteはUTF-8、UTF-16BE、UTF-16LEしかサポートしてないぞ 他のエンコーディング薦めてる奴や、DB層の話なのに転送量とか、いい加減すぎる
DBはutf8で内部エンコードがeucで、入出力がsjisですね。
sqliteだけ話してるんじゃないんですが・・・ あ、俺つられたんだな
485 :
nobodyさん :2009/01/21(水) 19:00:25 ID:1eNTrwcn
mb_send_mail()を使ってメール送信のテストをしているんですが、以下のソースでは メールの送信に失敗します どこに問題があるんでしょうか? POST値は正しいものが引き継がれています $user_no = mb_convert_encoding($_POST["user_no" ], "sjis", "auto"); $user_name = mb_convert_encoding($_POST["user_name" ], "sjis", "auto"); $order_no = mb_convert_encoding($_POST["order_no" ], "sjis", "auto"); $fromMail = mb_convert_encoding($_POST["fromMail" ], "sjis", "auto"); $quest = mb_convert_encoding($_POST["quest" ], "sjis", "auto"); $jobTitle = mb_convert_encoding($_POST["jobTitle" ], "sjis", "auto"); mb_language('Japanese'); mb_internal_encoding("SJIS") ; $from = $fromMail; $reply_to = $fromMail; $to = 'hoge@'hoge.jp'; $header = "From:".$from."\r\n"; $header .= "Reply-To:".$reply_to."\r\n"; $subject = "メールですよ from".$user_no; $update = date("Y-m-d", mktime())." ".date("H:i:s", mktime()); $message = "送信時間 :".$update."\n"; $message .= "No.:".$user_no."\n"; $message .= "mail:".$fromMail."\n"; $message .= "お名前 :".$user_name."\n"; $message .= "お仕事名 :".$jobTitle."\n"; $message .= "問い合わせ :".$quest."\n"; $message = mb_convert_encoding($message, "JIS", "sjis"); mb_send_mail($to, $subject, $message, $header);
mb_send_mail()にたよってんじゃねえよ! mailでやれよ!
エラーぐらいかいたらどうなの!? あたし女だけどエラーも書けない男ってどうかと思うの
'hoge@'hoge.jp';
mb_send_mail()とかmail()とかにたよってんじゃねえよ! popen()でやれよ!
popen()はどうかと思う。 ポッペン、てw
491 :
485 :2009/01/21(水) 19:19:12 ID:1eNTrwcn
ありがとうございます
すみません、管理者権限ないんでapacheのエラーログ見れないんです
(ほかに見る方法あるんでしょうか?)
>>488 ごめんなさい、コピペのミスでした
実際にはその失敗はありません
もう2時間もにらめっこしてて、、ためしにあるページに載っていた以下をしたら送れたんですが。。
mb_language("Ja") ;
mb_internal_encoding("EUC-JP") ;
$mailto="
[email protected] ";
$subject="タイトルですよ";
$content="内容を入れます\nあああ\nいいい";
$mailfrom="From:" .mb_encode_mimeheader("まさご") ."<
[email protected] >";
mb_send_mail($mailto,$subject,$content,$mailfrom);
この書式にして、だめだったので
>>485 の書き方で試しています
mb_send_mailきめえwwwwww
mb_send_mailおれは好きだけどな
mb_send_mailとかPHP使い始めて5年経つけど1回も使ったことねぇ
495 :
485 :2009/01/21(水) 20:35:42 ID:1eNTrwcn
mb_send_mail()は使わないほうがいいようなので、mail()で試してみましたがうまくいきません
mb_language('Japanese');
mb_internal_encoding("SJIS") ;
$from = $fromMail;
$reply_to = $fromMail;
$to = '
[email protected] ';
$header = "From:$from\n".
"Reply-To:$reply_to\n".
"X-Mailer: PHP/" . phpversion();
$subject = mb_encode_mimeheader("メールです".$staff_no);
$message = mb_encode_mimeheader("本文");
$message = mb_convert_encoding($message, "JIS", "sjis");
mail($to, $subject, $message, $header);
たびたびすみません、いったい何が原因なんでしょうか?
よければご意見お願いします (エラー情報はまだ見方がわかりません)
エラーログがみれない限りどうしようもないな
会員制サイトでユーザーを新規登録するとしたら データベースに格納すべき最低限の情報は? 通し番号、名前、パスワード、メールアドレスくらい?
499 :
485 :2009/01/21(水) 21:01:15 ID:1eNTrwcn
何度もすみません
>>496 エラーログ、 .htaccess に php_flag display_errors On って書けば表示されるんですよね?
今、設定してわざとエラーを起こしてみたらちゃんとそのエラーが表示されました
が、そのエラーを解消したらもうエラーが表示されません。
(検証用のvar_dump()の情報がでるだけです)
ということは上のメールの処理に間違いはないってことなんでしょうか。
sendmail_path /usr/sbin/sendmail -t -i
とsendmailのパスが通ってるのも、送信先アドレスも確認してるんですが。。
>>355 セキュリティじゃない。
PHPの仕様。
501 :
nobodyさん :2009/01/21(水) 21:33:19 ID:Gl08bGOK
一人でプログラミングしてるんだけど、 SMARTYの導入って意味あるかな? ざっと検索してみたかぎりでは、 かえって覚えることが多くなって 時間がかかり、混乱するだけだと思うんだけど。
502 :
nobodyさん :2009/01/21(水) 21:36:12 ID:Gl08bGOK
「実践マスター PHP+MySQL」ソーテック社 小島まさご をゲットしたんだけど、HTML タグのエスケープに stripptag を紹介してるんだけど、これって古いよね? タグごと消えてしまうし、 タグを2重に書かれたらセキュリティ漏れ生じるし。 普通は htmlspecialchars 使うのが、もはや標準だと 思うんだけど。
>>366 PHPのCLI版(コマンドライン版)のこと?
あるよ
> タグを2重に書かれたらセキュリティ漏れ生じるし 笑
509 :
nobodyさん :2009/01/21(水) 22:13:01 ID:Gl08bGOK
PDOの使い方をわかりやすく説明している本を教えて。
phpspotなんてただのアフィ厨だろ ネタ帳作者もきしょい
ただのいがみ合い。
516 :
nobodyさん :2009/01/22(木) 01:56:38 ID:hY50S2yJ
mysql_fetch_arrayで、print_rみたいに配列表示したいときってどうすんのよ 試しにテーブルを一列だけにしたら、普通のarray()みたいな感じになって print_rでできんのかなと思ったら0と1行目しか表示されなかったぞ。 arrayの表示方法って、print_rとかvar_dumpとか、foreachとかあるけど、 mysql_fetch_arrayはwhileだけ? array()とはまったく別もんなの?
お前が大好きなPDOはどうした
518 :
nobodyさん :2009/01/22(木) 02:20:58 ID:448xoden
while使っておこう
別の手紙では、殺害された米山豪憲君(当時7歳)の家族の気持ちについて「何も分からないのが 悔しくてもどかしい。くんれんや努力をすれば分かるようになるのでしょうか」と揺れる心情を つづっていた。
もう冬休みはとっくにおわってるよ
525 :
nobodyさん :2009/01/22(木) 05:50:34 ID:RrSlW4/z
AutoIndex PHP Script で、やはり日本語ファイルを扱うと化けるのだが、 Indexを少しでも美しく扱える方法誰か知らない? (デフォルトでは文字化けしないのに…)
919 名前:nobodyさん[] 投稿日:2009/01/22(木) 05:53:12 ID:RrSlW4/z AutoIndex PHP Scriptのように、 Indexを少しでも美しく扱えるスクリプト (かつ日本語ファイル名が正しく表示できるもの) ご存じないでしょうか?
>>526 何を警察に通報するの?
日本語が不自由なら自分の国の板へお帰り
530 :
nobodyさん :2009/01/22(木) 06:07:35 ID:K1m+qOSv
PARAM_INPUT_OUTPUT ってなに?
少しは自分で考えろ無能
php_selfで、自分自身を指定するのは、 セキュリティ的に、危険な行為?
534 :
nobodyさん :2009/01/22(木) 06:55:38 ID:K1m+qOSv
try catchのコードを試してみたいんだけど、 100%絶対にエラーになるコード何か教えて。
535 :
nobodyさん :2009/01/22(木) 07:13:45 ID:K1m+qOSv
<?php $user='aaaaa'; $pass='bbbbb'; $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); ?> このコードを実行すると、データーベースの ユーザー名とパスワードが画面に出てしまうんだが、 これって、エラーの出力をとめておけば 防げるのか?
536 :
nobodyさん :2009/01/22(木) 07:26:52 ID:K1m+qOSv
エラーを一切出さないように設定したいのだが、 エラーレベル1にしてもダメなのか?
PDOExceptionで制御しろ try { new PDO(dsn, user, pass); } catch (PDOException $e) { } これならなんもでないだろ ただこれだとわからんからcatchブロックに echo "DBに接続できません"; とかいれときゃいい 1ヶ月以上同じとこでぐるぐるループしてんじゃねえ 効率が悪すぎて相手するのもめんどくせえ 勉強の仕方が下手くそだから学校いって習え
538 :
nobodyさん :2009/01/22(木) 07:44:12 ID:K1m+qOSv
>>537 ようは、PDOを使ってデーターベースに接続するときは、
try−catchの使用が必須ということか?
これを使わないと、パスワードが漏洩するぞと。
・∀・
餌を与えないで下さい
自分のことだと理解できるんだw
リアルでも言われてるんだよきっと。
いやリアルじゃ友達もいないだろ 毎日のように昼夜問わずいるし確実にニートだろうしな
Strict Standards: date() [function.date.html]: It is not safe to rely on
the system's timezone settings. Please use the date.timezone settin
g, the TZ environment variable or the date_default_timezone_set() fu
nction.
こういう感じのエラーメッセージが表示されるように設定した。
それで、function.date.html]のところをクリックできるように
設定したんだが、これのリンク先が
http://localhost/phpmanual/function.date.html になっている。ここにマニュアルを入れるんだと思うが、
どこからダウンロードしてきたらいいのか?
551 :
nobodyさん :2009/01/22(木) 11:00:38 ID:K1m+qOSv
552 :
nobodyさん :2009/01/22(木) 11:02:00 ID:wyl7aNQ+
掲示板で投稿されたレスに改行を含む場合について質問です ユーザーから投稿されたレスを1行1データでcsvで記録してます 下記の通りに改行を<br />に変換したのですがレスの中の\nが消えずログがおかしくなってしまいます お手数をおかけし恐縮ですが、どなたかアドバイスよろしくお願い致します $res = $_POST['res']; $res = htmlspecialchars($res,ENT_QUOTES); $res = nl2br($res);
>>551 公式のダウンロードのところにあるよ
※質問の仕方を丁寧にして努力の成果とともに書けば、もう少し情報貰えると思うし、警察に通報しなくても済むようになるよ
>>552 csvで保存するメソッドが正しければ、\nは意識しなくても大丈夫だと思うよ。
保存はどうやってる?
どうしても、変換する必要があるなら、replace系の関数を使えばいいけど。
よく状況がわからないが 出力時ではなく記録時に改行をbrにかえたものを入れる 改行を\nでログに記録しているならreplace系の関数で置き換える など
556 :
nobodyさん :2009/01/22(木) 11:14:07 ID:wyl7aNQ+
$resを他のデータと一行でこのように記録してます 日付(2009/1/02 13:23:44) 名前(坂本) レス(こんにちは<br />テスト)←ここだけ<br />の後の\nが消えなくて困ってます IP(127.0.0.1) 記録の仕方はこのようにしてます $str = $hizuke.",".$name.",".$res.",".$ip."\n"; $fp=fopen("bbs.log","a"); flock($fp,LOCK_EX); fwrite($fp,$str); fclose($fp); $res = $_POST['res']; $res = htmlspecialchars($res,ENT_QUOTES); $res = nl2br($res); のあとに echo "<pre>";print_r($b);echo "</pre>";exit; を入れて確かめたのですがどうしても\nが残ります
nl2brは、\nを<br />\nに変換するから当然かと。 $res = str_replace("\n", "<br />", $res); でいいと思うけど。 そんな記録して出力面倒じゃない? fputcsvとfgetcsv使う方がマシのような気はするが・・・
$list = array ( array('aaa','12\'3'), array('b,b"b',"4\n\n5"), ); $fp = fopen('php://temp', 'w'); foreach ($list as $item) { fputcsv($fp, $item); } rewind($fp); while(($data = fgetcsv($fp)) !== FALSE) { $result[] = $data; } var_export($result); fclose($fp);
559 :
nobodyさん :2009/01/22(木) 14:37:46 ID:b9TqSffK
今、mb_send_mail()を試していて、以下のような状態です
$extra="Reply-To:".$fromMail."\nX-Mailer: PHP/".phpversion();//これは成功
$extra="From:".$fromMail."\nX-Mailer: PHP/".phpversion();//これは失敗
$extra="From:".$fromMail."\n"."Reply-To:".$fromMail."\nX-Mailer: PHP/".phpversion();//これも失敗
mb_send_mail('
[email protected] ', "title", "body", $extra);
みたところ、From:を指定すると失敗するようです
(指定しなければ、php.iniのデフォルトのメールアドレスで送信されます)
どうしてもFromを指定上書きしたいんですが、どうしたらいいんでしょうか?
マニュアルを見て何度も確かめたんですが、上の書式は間違ってるんでしょうか?
>>559 そのソース丸々コピペして3種類試したけど全部に送れたぞ
>>559 spfレコードとfromが一致しなくて、送信先で
跳ねられてるとかはない?
X-MailerにPHP使うと、スパム除けのスコアが上がることあるよ
迷惑メールフォルダに入ってましたとかだったらいいよね(笑
その前に、mb_send_mailの返り値をチェック。 falseなら遅れてないはず
× 遅
566 :
559 :2009/01/22(木) 15:32:25 ID:b9TqSffK
>>560 ありがとうございます、おかげで解決しました
レスをいただいて、送信元・転送先のアドレスをいろいろ入れ替えて試したところ、
$extra="From: " . $fromMail ."\n"."Reply-To:".$toMail."\nX-Mailer: PHP/".phpversion();
上の書式で、$fromMailが***@ezweb.ne.jpの時は送信されないようでした(今までこれで失敗してました)
ためしに$fromMailを***@hoge.co.jpにしてみたら送信されました
よく考えたら送信先アドレスも@ezweb.ne.jpだったため、ezwebのIPアドレス外から送られた
「$fromMailが***@ezweb.ne.jp」のメールは全部受信をブロッキングされてたんだと思います
うっかりしてました
ほかのレスくれた方も、本当にありがとうございました
567 :
nobodyさん :2009/01/22(木) 15:48:24 ID:22+OTvNy
【OS】xp 【PHPのバージョン】5.なんちゃら プログラム初心者で、ソフトバンク社のサンプル集で独学中の者です。 「PDFファイルを使用する」という項でサンプルスクリプト(プログラム?)を入力したら次のようなエラーが。 Fatal error: Uncaught exception 'PDFlibException' with message 'Function must not be called in 'object' scope' in C:\xampp\htdocs\_test\pdf_circle.php:9 Stack trace: #0 C:\xampp\htdocs\_test\pdf_circle.php(9): pdf_begin_page() #1 {main} thrown in C:\xampp\htdocs\_test\pdf_circle.php on line 9 よくわかりませんが、PDFlibというものを使うのかなと思い、付属されてたCD-ROMを起動してみたところ、 それらしきものは、「PDFlib・・(ry・・.zip」というフォルダ?で その中身は「php-510」というフォルダ。さらにその中は「libpdf_phpdll」というもの。 何をどうすれば良いのでしょうか? 「関連付け」がなんちゃらと知人に言われたのですが、まるで意味不明なのです。
まずxamppをやめる
569 :
567 :2009/01/22(木) 16:12:11 ID:22+OTvNy
本当に? xamppやめたらPHP出来なくなっちゃうんじゃないの? テキスト使ってるなら、apacheなどもそこからインストールしろってこと??
じゃお前にゃ無理だから諦めれ
>>567 それはたぶん、サンプルスクリプトのバグじゃないかな。
pdf_circle.phpの9行目のメソッドをスタティックに書き換えてみたらどうかな
まぁ、まずはその本をやめた方がよさそう
はじめてPHPやるやつでxampp使うやつはザコ
ザコとかw
無駄に煽ってる奴は在日PDO通報しました君
【OS名】windows/linux 【PHPのバージョン】PHP 5.2.5(windows) 【質問内容】 基本的なことなのですが、配列(array)のコピー方法がわかりません。 Rubyでいうarray.clone、array.dup(たぶん浅いコピー(sharrow copy))みたいなことをしたいのです。 ググルさんでは、「php array 配列 コピー」や「php 配列 複製」などで検索したのですが、 いまいちわかりません。 どのようにしたものでしょうか?
577 :
576 :2009/01/22(木) 19:06:15 ID:???
ごめん。sageたらID出ない板だった orz ageます。
ageてないし
>>576 普通に値で代入すればcloneと同じ動作するでしょ
579 :
nobodyさん :2009/01/22(木) 20:21:43 ID:MSLv2QA+
40歳前で他業界から入ってきた人って過去に例がありますか。
自己紹介乙
XAMPP叩いてるやつは雑魚 作業効率悪いんだろうなぁ〜〜(w
582 :
nobodyさん :2009/01/22(木) 23:10:22 ID:b9TqSffK
$text = "フジテレビ"; mb_convert_kana($text,"KV","SJIS"); としたんですが、文字化けします $text="こんにちはフジテレビ"; のように、前後に全角文字を入れればちゃんと全角かなに変換されます 半角カタカナのみだと動作しないものなんでしょうか?
583 :
nobodyさん :2009/01/22(木) 23:15:27 ID:LyXoyyr9
[JavaScript+PHPでアカウントIDチェック] 入力フォームの一部(アカウントID)に入力された値を別ウィンドウ で別プログラム(PHPでDB参照して重複あるかないかechoする)に渡して チェックしたいんですが、簡単にできるやりかたわかる方ご教授ください。 window.open("about:blank","MyName","width=400,height=130,menubar=no,titlebar=no,toolbar=no,scrollbars=no,resizable=no"); document.form1.target = "MyName"; document.form1.method = "post"; document.form1.action = "useridcheck.php"; document.form1.submit(); とかすると、今度はsubmitの「登録送信」ボタンも useridcheck.php に いってしまいます・・・ orz
584 :
nobodyさん :2009/01/22(木) 23:25:11 ID:RJ5BK886
一部スレ違いな内容が入ってしまいますがDigest認証について教えてください。 通常のDigest認証だと認証用ウィンドウが出てきますが、これが嫌なので、 フォームにユーザ名とパスワードを入力してDigest認証をするために 以下のようなプログラムを作成しました。 一応プログラム的には動作していますが、 セキュリティ的に間違っていないか心配です。 御指南願います。 [1] サーバ側(PHP) (1) 変数realm, nonce, uri, qop, methodを用意し、適当な値を設定する。 (2) ユーザ名、パスワードを入力するためのフォーム1を作成する。 (3) クライアントがresponseを作成するために必要な情報(realm, uri, method, nonce, qop) をhiddenでフォーム2に埋め込む。 (4) クライアントがサーバに認証情報(username, nc, nonce, cnonce, responce)渡すための フォーム3をhiddenで用意する(まだ空) [2] ユーザ側(Javascript) (1) ユーザ名とパスワードが入力されログインボタンが押されたらJavascript関数が呼ばる。 (2) 関数中でユーザ名、パスワード、フォーム2の情報を元にresponseを得る。 (3) 関数中でフォーム3に認証で必要な情報をセットする。 (4) submit関数を呼び、フォーム3の情報をサーバにPOSTする。 [3] サーバ側(PHP) (1) POSTされたユーザ名からそのユーザのパスワードをDBから取ってくる。 (2) POSTされた情報(username, nc, nonce, cnonce)とパスワードからhogeを生成する。 (3) hogeとPOSTされたresponceとを比較し、一致したら認証完了。 ※ ユーザ側でのresponce、サーバ側でのhogeの生成方法は Digest認証(Wikipedia) にある方法に沿っています。
>>582 下記を実行した結果が TRUE なら出力先がエンコーディングの判断ミスをしてるだけ
FALSE なら mbstring 関数のバグ
$han = "\xcc\xbc\xde\xc3\xda\xcb\xde"; // Shift-JIS表現の "フジテレビ"
$zen = "\x83\x74\x83\x57\x83\x65\x83\x8c\x83\x72"; // 同 "フジテレビ"
var_export(mb_convert_kana($han, 'KV', 'SJIS') === $zen);
>>583 スレ違い。JavaScript スレ行き
>>584 HTTPヘッダでのやりとりをHTTPボディに移すだけよね、問題無いないかと
ケチをつけるならそれはDigest認証じゃなくて”RFC 2617を流用したオレオレ認証”
586 :
584 :2009/01/23(金) 00:49:47 ID:7cLFem7v
>>585 ありがとうございます。
>通常のDigest認証だと認証用ウィンドウが出てきますが、これが嫌なので、
このために
>>584 を考えたのですが、
もっとスマートな方法ってありますか?
587 :
nobodyさん :2009/01/23(金) 01:32:24 ID:Dv21c52a
ereg_replaceでマッチしなかったらそのまま返してくれるんはいいけど ひらがなだけなぜか文字化けの?で返ってくる 全部utf-8にしてるんだけど、これが原因か? 漢字は大丈夫
mb_ereg_replaceでやってみたら?
589 :
nobodyさん :2009/01/23(金) 01:59:12 ID:Dv21c52a
>>588 今やってみた、けど同じで、
全角ひらがな一文字が、(黒に白字)??になる
590 :
nobodyさん :2009/01/23(金) 02:04:15 ID:Dv21c52a
あ!ちゃんとマニュアルどおりにやったら mb_ereg_replaceでできた!勉強になりました ありがとうございます
591 :
nobodyさん :2009/01/23(金) 02:08:05 ID:Dv21c52a
あれ、何度もすまん!
やっぱりできなかった
>>589 の通りになる
592 :
nobodyさん :2009/01/23(金) 02:12:50 ID:Dv21c52a
しまった。mb_convert_encodingでやってた mb_regex_encoding("UTF-8");でmb_ereg_replace やったら、ひらがな文字化け直った ありがとうございました
>>586 Digest認証してブラウザに Authenticate ヘッダを送信させたいのか、
認証用ID、パスワードの平文を隠したいのかで変わる
前者ならブラウザが認証が必要かどうか判断できないので機能しない
後者ならそれでいい。Yahooなんかも非SSL環境で似たようなやり方をしてたと思う
594 :
nobodyさん :2009/01/23(金) 03:44:20 ID:ufSOhBv2
<?php print rand(); ?> このスクリプトをF5連打で実行しまくったら、 どうやら次のことがわかった。 (1)正の数しか出てこない (2)小数はでてこない。整数のみ。 (3)35000くらいが上限らしい...? そこで、上記のスクリプトを10回実行して、 その結果を、どんどん配列に入れていくような スクリプトを作って、上記の仮説を検証してみたい。 どのようなコードをかけばよいか。
595 :
nobodyさん :2009/01/23(金) 03:47:00 ID:ufSOhBv2
<?php $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); print_r ($a); ?> とりあえず、自分の知識で上記のコードを書いてみた。 randを実行した結果がノーマル配列$aに順次、格納され、 最後にprint_rで出力されている。 今度は、この中のMAXの要素を表示したい。 どう書けばよいか?
596 :
nobodyさん :2009/01/23(金) 03:47:32 ID:ufSOhBv2
それと、 $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); $a[]= rand(); この部分も、ループを使って書き直したい。
597 :
nobodyさん :2009/01/23(金) 03:51:08 ID:ufSOhBv2
<?php for ($i = 1; $i <= 100; $i++) { $a[]= rand(); } print_r ($a); ?> 自分で調べて、上記のように、 forループを使って書き直すことができた。 今度は配列の要素の中の、MAX値を抜き出したい。 どうすればよいか。
598 :
nobodyさん :2009/01/23(金) 03:56:43 ID:ufSOhBv2
<?php for ($i = 1; $i <= 100; $i++) { $a[]= rand(); } $b=max(($a)); print_r ($b); ?> ついに完成に近づいてきた。 ランダムに100個の数値を生成し、 それらをすべて、配列に格納し、 その中の、最大値だけ抜き出して表示することに 成功したのだ。 これでrand関数の性質を調べることができるだろう。
599 :
nobodyさん :2009/01/23(金) 03:58:54 ID:ufSOhBv2
$i <= 100 の時は、値にかなりのバラツキがあった。 ところが、 $i <= 100000 にして実験してみると、 32767 で固定されることがわかった。 つまり、rand関数の仕様は、 何も引数に指定しなければ、最大値は32767だということだ。
600 :
584 :2009/01/23(金) 04:00:22 ID:7cLFem7v
>> 593 ありがとうございます。 私の場合Digest認証をしているではなく、 ”パスワードの平文を隠した認証”をしている、と言った方が良いですね。 思い付きの認証ですが、 世間から大きく脱線していない方法のようなので安心しました。
601 :
nobodyさん :2009/01/23(金) 04:04:48 ID:ufSOhBv2
ちなみに、上記コードのmaxをminに変えて実行してみると、 最小値は0であることが確認できる。つまり、 randは0−32767の、合計、32768通りの数値を 生成するということだ。 この条件のとき、ランダムに100個の値を生成したときに、 最大値の32767が偶然、生成される確率はいくつであろうか? 実際に実験したかぎりでは、かなり低い数値だと体験的に理解しているが、、、 また、100、000(10万)個の値を生成したときに、32767がそのなかに 含まれる確率はいくつであろうか? 実際に実験してみたかぎりでは、ほぼ99.9999999%の確率で (つまり全部の試行で)32767がMAX値として表示されたのだが、、、、 これを数学的に「○パーセント」と導き出すことはできるのだろうか?
ID:ufSOhBv2 日記ならチラシの裏かブログにかけ 自己満足検証なんてこんなとこに書かなくていい マニュアル見れば書いてあるのにご苦労なことだ
>>602 お前は暗号センターに勤めたことはないのか?
>>601 は失笑もんだな
こんなこと書いて恥ずかしくないのだろうか・・・
>>603 何が暗号センターだよ笑わせるな
意味不明もいいところだ
俺も暗号センター勤めたてたよ?
擬似乱数がどうこういいたいんだろw 確かにこりゃ失笑もんだなwww
おまえがもし100年前に生まれていたら、 「脚気という病気は細菌によるものである」 って教科書に書いてあったら、調べもせずに そのまま信じ込むんだろうな。
<?php for ($i = 1; $i <= 100000; $i++) { $a[]= rand(); } $b=array_sum($a) / count($a) ; print_r ($b); ?> 0から32767までの数値を、 10万個ランダムに生成し、 それらの生成された数値を 全部配列に格納し、 その平均値を求めるプログラムである。 これを実行しF5を連打すると、 平均値が安定しないことがわかる。
>>607 医学解明とただの関数解析はレベルが違いすぎる
お前のはただの自己満足
だから恥ずかしいといわれる
それでも恥ずかしいこと書きたきゃブログでやれ
高度なことを書きたいのならまずはアセンブラを勉強しろ
それとスレ違い
まぁそろそろ2.3ヶ月居着いてスレ違いなこといい続けてるし、 質問も連投してただ荒らしてるだけだし、 報告してみるといいかもしれないね。 この程度じゃ規制はされないだろうけど、注意の目はくるだろう。
<?php for ($i = 1; $i <= 100000; $i++) { $a[]= rand(); } $b=array_sum($a) / count($a) ; $c=floor($b); print($c); ?> 先ほどのコードで、 小数点以下がウザかったので、 floor関数を使って、切り捨てて、整数にしたみた。
ああ、こいつにはこれがあったな。 1行コピペ荒らしで報告すればいいかもしれない。 まぁそんなことはさておき、 マニュアルを信用できないのならプログラムやめちゃいな。 それかPHPみたいにCでの実装とかじゃなく、 自分でスクラッチから言語作ってそれを使いな。 アセンブラレベルでコンピュータの制御が信用できないならもうどうしようもないけどw
615 :
nobodyさん :2009/01/23(金) 07:15:36 ID:ufSOhBv2
616 :
nobodyさん :2009/01/23(金) 07:21:11 ID:ufSOhBv2
PDOでデーターベースから値を持ってくるときに、 bindParamとbindValueの、どちらを使うべきなのか?
まちがえた、変数をバインドするときに、だった。
618 :
nobodyさん :2009/01/23(金) 07:22:49 ID:ufSOhBv2
PDOで値を持ってくるときに、 fetchを使うべきなのか? そのときの、パラメーターはどうすればいいのか?
619 :
nobodyさん :2009/01/23(金) 07:25:43 ID:ufSOhBv2
もしかして、ANDとORとXORを駆使すれば、 複雑なド・モルガンの問題も、ボタン一発で解ける?
わざわざsageてるとこがキモイ
規制申請してくるか
ど素人のくせに、ちょっと知ってるとこがあるとエラそうに答えちゃうとこがキモイ (しかも、思いこみで間違ってる内容多数)
これ本当に1人でやってるならすげえとおもうわ・・・ 1日何時間張り付いてるんだよ
自覚はしてるんだね。
冷静なツッコミに吹いたwwwwww
630 :
576 :2009/01/23(金) 10:35:48 ID:Qlph62AH
>>578 本当だ!代入でコピーされてました。
arrayはインスタンス返すもんだと思ってた。どうやらオブジェクト脳すぎたようだ・・・
<?php $a=array('hage', 1234); $b = $a; $a[0] = TRUE; var_dump($a, $b); ?>
array(2) {
[0]=>
bool(true)
[1]=>
int(1234)
}
array(2) {
[0]=>
string(4) "hage"
[1]=>
int(1234)
}
631 :
nobodyさん :2009/01/23(金) 10:50:20 ID:Qlph62AH
【OS名】windows/linux 【PHPのバージョン】PHP 5.2.5(windows) 【質問内容】 恐縮ですが、質問させていただきます。 DateTimeクラスを用いて、日付と日付の比較するよい方法はありませんでしょうか? やりたいことは、ある日付が今日から何時間経過していたら、処理をやめる、というようなことをやりたいのです。 DateTime::modifyとDateTimeどおし比較ができれば、いけると思ったのですが、 date_diffやDateTime::diffは実装されていないようですし、 比較演算子は定義されていないようですし、上手い方法がわかりません。 また、DateTimeのリファレンスのようなものも見つけられませんでした。 皆さんはどのように比較されているのでしょうか?
>>631 上手い方法はunixtimestampで計算
もしかして、クラスに依存するのが上手い方法だとでも?
オブジェクト指向マンセーってか。言語をなめてんの?
アンケートなら他所でやるべき
おれはZend_Dateだけどw
633 :
nobodyさん :2009/01/23(金) 13:21:57 ID:G0q2tgbP
jspというのを勉強しているのですが、 <html%>というコードが出てきて、%の意味が分からないので教えてください。
読みは”パーセント” 意味は百分率でぐぐれ
635 :
633 :2009/01/23(金) 13:46:36 ID:???
それはわかるのですが、ブラウザがどういう解釈をするのか知りたかったのです。
スレ違いじゃねーの
637 :
633 :2009/01/23(金) 14:31:34 ID:???
jspとtomcatの本を買えといわれたそうします。 ありがとうございました。
SQLiteManagerでの質問です。 INSERT INTO addressbook ( id , name , zip , address , create_at ) VALUES ( NULL , 'test' , 1234567 , '東京都' , '2008-07-17 01:10' ) SQLからこのリクエストを実行すると東京都の部分が文字化けするのですが どなたか対処方法を教えて下さいませ。 ちなみに挿入からだと文字化けしません。
641 :
nobodyさん :2009/01/23(金) 17:07:46 ID:mpwi3WFw
再帰を使って、同じファイル名のファイルが存在すれば 先頭に「copy_(数字)」を付けたいと思います 以下のようなソースを書いたのですが、 copyの箇所が複製されたファイル名になります「copy1_copy_test.html」 どこを修正すればいいのでしょうか? function fileMake($to_dir,$f_name,$i){ $new_file = $to_dir."/".$f_name; if(is_file($new_file)){ $f_name = "copy".$i."_".$f_name; $num = $i+1; fileMake($to_dir,$f_name,$num); }else{ touch($new_file); } } $to_dir = realpath("."); fileMake($to_dir,"test.html","");
642 :
641 :2009/01/23(金) 17:16:44 ID:???
すみません、自己解決しました 名前を変更したファイル名を再指定して再帰しているから 「copy+数字+変更したファイル名」になってしまっていました。
>630 PHP5にはSPLという、C++でいうSTLの出来損ないみたいなのが存在する。 そいつに含まれるArrayObjectは、おまいの想定しているような動作をする。 <?php $a = new ArrayObject(array('hage', 1234)); $b = $a; $a[0] = true; var_dump($a, $b); ?> object(ArrayObject)#1 (2) { [0]=> bool(true) [1]=> int(1234) } object(ArrayObject)#1 (2) { [0]=> bool(true) [1]=> int(1234) }
phpとかcgiのuploaderで、パスワード付きのみるけど あれって、単にランダムなフォルダ名のフォルダ作って ファイル入れてるだけじゃね? フォルダ名ばれたらファイルまでの絶対パスもばれて パスワードも意味ない気がするけど、そこまでシビアじゃないのかな 例えば、サイトの階層ごと丸ごとダウンロードみたいなツールで 検索かけられても大丈夫なのか
と思ったけどほぼ自己解決しました
>>644 >あれって、単にランダムなフォルダ名のフォルダ作って
なんじゃそりゃ?
>>647 たとえば、うpろだってサイトだと
パスワード付けたら、
ttp://www.uploda.org/ の下にファイル名+適当な文字列のフォルダの下に画像ファイルが入ってる
けど、こういうのて、画像ファイルの絶対パスで接続されたら
パスワード打ち込む必要がないから、なんか条件が軽いなぁと思った
URLのクエリがそうだからって実際にディレクトリが作られてるとでも思ってるの?
getみたいに?でやってるんじゃないの
無法地帯だな
ムホッ
「困ったな僕」とか言ってたらママが助けてくれたんだろうな。 かわいそうに。将来性ないわ。
ひゃひゃ。もう戻って来ないで^^ってかんじ
>>653 いや、上でも言ってるように
ほぼ解決はしたんだけど、あまりにも段階踏みすぎというか。
他のuploaderとかみてても大体そんな感じなんだよね
お前、全然わかってないだろ
>>661 おまえ、「できるのかな」とか「わからない」しか書いてないのに、
>>658 で「上でも言ってるようにほぼ解決」とか、ワケワケメ
# PATH_INFOとかmod_rewriteとかAddHandlerなんかでググったりするなよ。スレチだし。
664 :
nobodyさん :2009/01/24(土) 01:25:06 ID:kFWBnpyA
試してみたら?
667 :
nobodyさん :2009/01/24(土) 02:07:27 ID:lTAVuTjG
PHP5を勉強中です。 タイプヒンティングがググッても理解できません。 バカな私に優しく説明して下さい
理解できないなら必要ないということだ。
669 :
nobodyさん :2009/01/24(土) 02:28:03 ID:+XZf0oGO
ある変数に指定した数字が入っていたら違うページに飛ぶってできますか? IDとパスワードがあってたら違うページに飛ぶみたいなの作りたいんですけど どうしたらできますか?
マニュアル読めよ
被った…のか? 俺のミスかな。
675 :
nobodyさん :2009/01/24(土) 02:47:36 ID:+XZf0oGO
headerを一番上に書いときますよね? で、条件式としてはどんな感じになるんでしょうか?
>667 function hoge(PDO $var) と宣言すると、関数hogeにPDOクラス(もしくはその継承クラス)のインスタンス以外の引数を渡すとエラーになる。 配列もしくはクラスしか指定できないけどな。 「この関数には配列を渡せ、文字列とか渡す屑は俺が殺す」 とコメントに書く事は、非常に良くあることだと思う。 タイプヒントを使うと、意図しない型の引数を渡す相手に対しエラーを発生させて本当にぶち殺せるようになる。 インターフェイスも指定できるし、指定されたクラスの子クラスでも通る。 引数がおかしい事が事前に分かるので「悪いのは俺様のメソッドじゃなくててめえの脳味噌だ」と容易に主張でき、 貴重な時間を脳に障害のある糞の書いたコードのデバッグに使わなくとも良くなるのが利点。 タイプヒントを使わないと実装できない機能は何一つとして無い。分からないなら放置でいい。 PHPの強みを殺す側面もあるから、「デキる奴はこれを使う」ってわけでもないしな。
デキる奴はこれを使うのは真だろ 逆は成り立たないが
678 :
nobodyさん :2009/01/24(土) 03:10:00 ID:+XZf0oGO
すいません、できました header関数教えていただいてありがとうございました
679 :
nobodyさん :2009/01/24(土) 04:53:50 ID:+XZf0oGO
また質問すいません
headerを使うためにはHTMLタグの前に定義する必要がありますよね?
そこで条件式をつかってやると普通の$testみたいな普通の変数では反応しないのに
POSTだと反応するんです
×if($test)header("location:
http://www.yahoo.co.jp/ ");
○if($_POST['test'])header("location:
http://www.yahoo.co.jp/ ");
ID、パスワードチェックに使うため、普通の変数でチェックしたいのですが
方法はありますでしょうか?
エスパー案件だな
$testが偽と判定されてんだろ
682 :
nobodyさん :2009/01/24(土) 07:34:04 ID:+XZf0oGO
異なる2つの<?PHPタグで扱われてるので、submitボタンを押したときに $testの値が失われているのでしょうか・・・ $testをGLOBALにしてもダメでしたし POSTはformが値を入力して更新してもずっと値は保存されるんですけど
var_dump($test)は?
684 :
nobodyさん :2009/01/24(土) 08:01:03 ID:+XZf0oGO
どうやらセッションとやらを使えばいいのかもしれません とりあえず試してみます
人の話シカトする子か
>>685 人の書き込みをまともに読めるやつならググって解決してるよ
687 :
nobodyさん :2009/01/24(土) 09:08:54 ID:u4JOuR9w
>>632 phpにまだ慣れていないのですいません。
アンケートではなく、実際の比較の仕方を教えていただけないでしょうか?
もしかしたら、phpではまだDateTimeは全然使われておらず、
メソッドなども整っていないのでしょうか?
(ベータ段階のAPIというようなことが)その辺がドキュメントに記述がなく、
使ってしまっていたのですが、unixtimestampでやるべきなんでしょうか?
unixtimestampはすでにレガシーかと思っていたのですが、そうではないのかな?
688 :
nobodyさん :2009/01/24(土) 09:10:22 ID:u4JOuR9w
unixtimestampがレガシーだと思った理由は、 検索しても、2038年問題が云々かんぬん→DateTimeを使おうという記事ばかりひっかかるためです。 DateTime使っているところをもどすのマンドクセ('A`)
DateTimeって2038年問題は解消されてるの?
2038年に果たしてPHPの今の仕様がどれだけ残ってるのやら
こんにちは
@pagesというレンタルサーバを使用しているのですが(
http://atpages.jp/ )
1週間程使えたphpmyadminが使用できなくなっていて
(#2002 - サーバが応答しません (あるいはローカルの MySQL サーバのソケットが正しく設定されていません))
web上でもデータベースにアクセス出来ないエラーが出ています
(Can't connect to local MySQL server through socket等)
google等で検索したところ
php.iniファイルを弄れば解決出来るらしいのですが
レンタルサーバを使用してる際も利用者が解決する方法はあるのでしょうか
PHPのバージョンは、5.2.6
phpMyAdminのバージョンは 2.11.4
Mysqlのバージョンは4.1.22
OSはfirefox3です
よろしくお願いします
692 :
nobodyさん :2009/01/24(土) 10:28:49 ID:oMv5fN39
sageるとID表示されないのですね すいません
MySQLが落ちてるんじゃないの?
695 :
nobodyさん :2009/01/24(土) 11:02:04 ID:oMv5fN39
>>693 やはりそれしかないんでしょうか
ありがとうございます
いや、他にもあるけど、とりあえず疑ってみるって話。 以前は動いてたんでしょ?
> OSはfirefox3です
telnet使えないみたいだし鯖缶に聞けばいい
この板の「くだ質」スレは、他の板のものとは何か違うようだ。 他板のくだ質は、初心者のくだらない書き込みを一箇所にまとめて、他のスレ を汚させないためにある。 だから質問者は原則的に叩かれない。初心者が追い散らされて、他スレに書き 込んだりしたら意味がないからだ。また当然、くだらない質問を読むのが嫌い な人がスレに来ることは推奨されない。わざわざ隔離スレに来るのはお人よし だけである。 ところがこの板のくだ質は、どういうわけか、くだらない質問の嫌いな人間が、 質問者をひたすら叩きまくっている。意味が分からない。
叩かれてるのは質問してる人じゃなくて、 ここでブログ書いてる人でしょ?
>>700 そういうのばかりでもない。何スレか見てるけど、単なる質問が叩かれてる。
つうかブログ書いてたって、別に害はないんだから放置すればいいのに。
どうせ隔離スレなんだから。
それはブロガーがIDかくして叩いてるだけだよ。ほとんど。 要するに荒しが一人いるだけ
>687 OS側のtime_t型が64ビットになれば西暦何百億年くらいまで先送りできる。 そして、64ビット環境はそういう実装になっている事が多い。よって2038年までにサーバーリプレースすりゃセーフ。 まあ、どう考えても10年後には32ビットサーバーなんぞ絶滅してるだろ。 >687 DateTime::diffが比較に使えそうだが、俺の環境(PHP5.2.5 for Win)では echo implode(", ", (get_class_methods("DateTime"))); >> __construct, format, modify, getTimezone, setTimezone, getOffset, setTime, setDate, setISODate なので使えん。 >689 echo date("Y-m-d H:i:s", mktime(0,0,0,12,31,65536)) . "\n"; // 1970-01-01 09:00:00 $dt = new DateTime("9999-12-31"); echo $dt->format("Y-m-d H:i:s") . "\n"; // 9999-12-31 00:00:00 $dt->setDate(99999, 12, 31); echo $dt->format("Y-m-d H:i:s") . "\n"; // 99999-12-31 00:00:00
>>702 「ブロガー」がこのスレに来るずっと前から、このスレはこんな感じだよ。
他板のスレと違って、叩きたいだけの人がここには居るように見える。
705 :
らーめん :2009/01/24(土) 11:45:24 ID:/Xl7pqmU
Windowsのファイル属性(隠しファイルとか読みとり専用)やファイルの更新日などを 取得したり変更したりする関数ってある? 探したけど見あたらない。
どこを探したんだ?
普通にstatでできないのか?やったことないけど
>>699 この板では実質的に生きてるのはこのスレだけだから皆ここに集まってるだけ
マジレスするなよ 不自然な改行はいつもの馬鹿だろ 察知しろ
>>705 つ DirectoryIterator
>>708 意味が分からない。書き込みのあるスレは他にいくらでもあるよ。
それともリアルタイムのやり取りでないと不満?そんな目的の人が多いんなら、
くだ質が機能しなくなっても当然か。
>>709 見えない敵と戦ってるの?このスレにはときどき回答する以外、ほとんど書き
込んでないよ。
あと、不自然な改行?君はEmacsを知らないのね。
>>711 あなた、Emacsで原稿書いてから投稿してんの?
それなんて粘着?
>>712 そのツッコミは間違い
質問君もEmacs使ってるってことで糸冬
>>713 そのツッコミも少し足りない。
Emacs用の2chブラウザがあるんだよ。仕事でたくさん開いてるバッファに混ざっ
て、2chブラウザのバッファがあって、それを使って書き込んでるの。
まあ別にEmacs使ったから偉いわけでもなんでもないけど、PHPを書ければ偉い
わけでもないよな。
> PHPを書ければ偉いわけでもないよな。 そういう、突拍子もない話の展開が例のブロガーと一緒なんだよな 同一人物じゃないのかもしれんが、そういう風に見られるよ。その書き込み
>>716 ご忠告ありがとう。例のブロガーの書き込みは読み飛ばしてるんで気が付かな
かったよ。
じゃあ、誰にでも分かるように書き直そう。
PHPが書けるからって、わざわざくだ質に来て、初心者に偉そうに説教して楽しむ
人って何なの?くだ質が機能しなくて迷惑なんですけど。
お前らが偉かろうが偉くなかろうが、Emacs使ってようがHttpRequestクラスで書き込んでようが、質問者には関係ないし、俺にも関係ない。 メアドでもブログでもなんでも晒して勝手にやってくれ。
同一人物だろ 餌をやんな
今日の展開を見る限り、どうみても、
>>717 が機能不全を起こさせてるよな、
そういえば、例の奴が荒し質問乱発してここでブログを書くようになったのも
>>717 とおんなじ主張して暴れてからだったな。
類似点多すぎ。2号誕生か。やれやれ。
もう、ID無しは無視されるスレにしようかw
いつもの気持ち悪いやつが沸いてるな 多重人格で自演するのも大変ですね
724 :
667 :2009/01/24(土) 14:27:48 ID:lTAVuTjG
>>676 ありがとう。
使わないけど、機能だけおぼえておきます。
725 :
nobodyさん :2009/01/24(土) 16:30:38 ID:b4zCx4aL
質問です 改行ありの文章があるんですが、その文章の改行コードを変えたいと思います どうしたらいいんですか? 改行コードだけを変換する関数とかがあるんでしょうか? LFというのからCR+LFに変換したいんですが… また、直接PHPと関係なくて恐縮ですが、textarea に入力したもの$textを mailto: body=$text のようにしてメールに代入しようとしてます auでは代入されたものにもとのtextareaの改行が反映されてるんですが、 docomoでは改行がされずに全部つながっています これはなぜかご存知の方いますか? これも改行コードの問題でしょうか
とりあえず、\nを\r\nに変換してみれば? PHPと関係ないところはスレチ
str_replace("\n","\r\n",$txt);
>>725 あんまり携帯については詳しくないけど、後者の質問は textarea の wrap 属性が関係してる希ガス。
そっち関係あたってみな。
テンプレに回答者としての態度をわきまえることを追加するべきでは? 回答者にも節度というものが必要でしょう
誰だよ、ム板に立てたの。
733 :
nobodyさん :2009/01/25(日) 00:11:57 ID:ah0+T9VC
フォームメールを作ってるんですが、SJISの環境で半角カタカナを送信したいときは mb_send_mail()でなくmail()を使うのが正解なんですか? mb_send_mail()では化けてしまったのであきらめたんですが、 半角カタカナを送る方法があればすみませんが教えてください
メールを送りたい文字コードの選択がに合わせて正しく設定すれば mb_send_mailだって行けるよ。無論mailでも。 でも、 メールで半角カタカナを送るという話は宗教論争になるからやめたほうがいい。
やっぱ偉く振る舞ったり初心者をいじめるのがこのスレの目的なんだなw そりゃクズがわんさか集まるわw
736 :
nobodyさん :2009/01/25(日) 00:50:14 ID:iwXV4Mui
>>734 ありがとうございます
文字コード関連はさっぱりわからなくて、フォームメールはSJISがいいと効いたので
SJISにしたんですが、見たこともない漢字に半角カタカナが化けてしまいます
SJIS自体やめたほうがいいんでしょうか? それともさらに何か手続きが必要なんでしょうか?
メールはiso-2022-jpね
>736 ちょっとは自分で考えてみようや。 フォームをSJISにする ↓ 本文のデータがSJISで送られてくる ↓ (??????) ↓ 本文のデータをJISでmb_send_mail
本文がShift_JIsでも、エンコードすれば送れるよ。
ただ、クライアントによっては受け入れないことがあるから、
対象にしているクライアントがどの程度かによってShift_JISを選ぶかどうかを検討する必要がある。
ttp://q.hatena.ne.jp/1170603143 ここでは、mb_send_mailはsjisは使えないって答えてる人がほとんどだけど、
実際にはエンコード後の文字列はさらにエンコードしたりしないので大丈夫
740 :
nobodyさん :2009/01/25(日) 08:45:49 ID:WR9lsa0F
phpを開いたときに、targetで、別のところにページを表示させたかったのですが header ロケーションではtarget指定できないということで、 ぐぐったりしているとformを使う方法があったのですが、 これだと一回ボタンを押すという作業が増えてしまうように思えます。 どうにかして、”phpを開いたときに、指定したurlを自動で別ページに表示” ということをしたいのですが、javascriptなどはなしで、phpだけでどうにかする方法を教えていただけないでしょうか
無理
742 :
nobodyさん :2009/01/25(日) 08:51:18 ID:WR9lsa0F
>>741 なるほど、action系のものはjavascriptを使わないといけないということでしょうか
ありがとうございました
743 :
nobodyさん :2009/01/25(日) 09:04:02 ID:WR9lsa0F
ちなみに好奇心で、header,locationで、targetが仕様ではないのはなぜなんでしょうか。 あれば便利だと思うのですが。
>>740 PHPで出力したページを開くときに、onLoadでJSで開けば1クリックの手間は要らないのでは?
クリックの手間じゃなくてJSを動かせない環境だとかならしょうがないけど
というかポップアップブロッカーが普及してから、そんな処理実用的じゃないかもなぁ
745 :
nobodyさん :2009/01/25(日) 10:10:48 ID:iwXV4Mui
>>737-739 ありがとうございます、たびたびすみません
エンコードを変えればいいのかと思い、
mb_language('Japanese');
mb_internal_encoding("SJIS") ;
の環境で、
$body = mb_convert_encoding($body, "UTF-8", "SJIS");
$body = mb_convert_encoding($body, "JIS", "SJIS");
$body = mb_convert_encoding($body, "EUC-JP", "SJIS");
$body = base64_encode($body);
mb_send_mail(〜);
と、片っ端から試してみたんですが全部化けます やってることおかしいでしょうか?
本文はJISのままで、BASE64は不要でしょ
>>745 化けるのが普通なんだよ。メールに半角カナなんて使わないのが基本。
mb_convert_kanaして全角にすりゃ済むのに環境依存なコード突っ込む必要ないでしょ。普通。
こういうのは環境依存なところがあるから、不毛な展開になるからね。
が、たとえばUTF-8でシステムを運用してる場合、
$data = "あいうえおアイウエオ";
$data = mb_convert_encoding($data, "sjis-win", 'UTF-8');
mail("
[email protected] ", "test", $data);
これだけで、問題なく送れる。
$bodyの文字コードをsjis-winに変換してmailしてみ。とりあえず
748 :
nobodyさん :2009/01/25(日) 11:49:35 ID:iwXV4Mui
>>746 すみません、理解不足でなんでもやってみました
>>747 詳しいアドバイスありがとうございます
1)いただいたご意見どおり、sjis-winにSJISから変換
2)mb_internal_encoding("UTF-8");後
mb_convert_encoding($body,"sjis-win","UTF-8");
の両方を試して見たんですが、ダメでした
2)のほうはそれまで全部SJISで処理してきたのに無茶なことをしたのかなって感じです
やっぱり半角カタカナはあきらめたほうがいいんですね
今回は携帯サイトなんでSJISで作ってきたんですが、UTF-8 をみんなが推薦してる理由がわかった気がします
どうもありがとうございました
>>748 送信は、mb_send_mailじゃなくて、mailにしてみた?
まぁ、諦めたんなら別にいいんだけどさ。
実際に使う場合は、
>>747 に追記で、本文のほかに
・メールの題名
・名前(アドレスに付加する場合)
もJISに変換要るので注意
って、まて、なんでsjis-winなんだwww せっかくなんで、うちで上手く言っているコード晒す。 元の文字コードはUTF-8(UTF-8のところをSJISに変えたらいけるんじゃね?) $from_name = mb_encode_mimeheader($from_name, 'ISO-2022-JP'); $subject = mb_encode_mimeheader($subject, 'ISO-2022-JP'); $body = mb_convert_encoding($body, 'ISO-2022-JP', 'UTF-8'); sendmail($from, $from_name, $to, $subject, $body); sendmailは自分で定義してな
>>751 それ、
$body = mb_convert_encoding($body, 'ISO-2022-JP', 'UTF-8');
この瞬間に、半角カナが化けるでしょ。JISにないんだから。
まぁ、本気でやるんなら、PEAR::Mailでも使えってことかな
PEAR::Mail(笑)
ここは初心者が初心者をいたぶりあうインターネッツですね
それがどうした?
>>752 あああ、スマソ 元の文見てなかった
半角カナか、ISO-2022-JPには定義されてないなw
以前に届いてた半角カナ含んだケータイのメールを調べてみようとしたが、
文字コードがわからん!つかEdMaxでデータのまま保存する方法がわからんだ
やっぱりSJISなんだろうか
Shift_JIS
マクドだけど Content-Type: text/plain; charset="ISO-2022-JP" Subject: マクドナルド トクするケータイサイト
デコード後のデータ出してどうする
Message-ID: <
[email protected] >
MIME-Version: 1.0
Content-Type: text/plain; charset="Shift_JIS"
Content-Transfer-Encoding: 8bit
docomoから半角カナで送ったメール
765 :
nobodyさん :2009/01/25(日) 15:48:42 ID:vJI7ILVc
ログアウトで $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time() - 42000, '/'); } session_destroy(); とすればちゃんとsessionも切れログアウト状態になるんですが、消したくないsessionがある場合、 何かいい方法ないでしょうか? unsetで消したいsessionを1つづつ消す以外の方法で。 ログイン前・中・ログアウト後 とサイトの状態維持を持続したいのですが。
sessionとcookie 基本からやり直した方がよさそうだよ
>765の考えているセッションは一般的な意味のセッションではない気がする。 「セッション」とか「認証」とか「ログアウト」とか「ログイン」とかいう技術用語を使わずにやりたい事を説明できるか? クライアントに覚えさせても問題ない情報ならば、セッション変数にせずにクッキーを発行してしまう方が手っ取り早い。
769 :
nobodyさん :2009/01/26(月) 21:50:37 ID:S1JqNcOw
<img src=test.jpg width=100 height=50 /> を <img src="test.jpg" width="100" height="50" /> というようにダブルクォーテーションで囲うようにしたいのですが どういう方法で追加させるのでしょうか?
エスパー案件ですね。
772 :
769 :2009/01/26(月) 22:37:16 ID:???
>>771 いや、書いてない文字列に自動的に
ダブルクォーテーションを付けるようにしたいんです。
用途は、例えばタグを利用できる掲示板で
たまにダブルクォーテーションが無い場合があり、そういう文字列に
自動的に付く処理を入れたいんです。
正規表現でと、考えましたが、パターンが思いつきません。
>>768 利用を教えてください。
ローカルでの開発用に apache2 使ってますが、結構レスポンス遅いです。
実機上だとかなり速い。
こういう問題が解決しますか?
774 :
nobodyさん :2009/01/26(月) 22:47:43 ID:1N7QJGx/
質問です。変数名で困ってます。 ↓に英語の変数名を付けるとしたら皆さんならどうつけますか? @国 A関東、近畿、四国、九州など(総称がよくわかんね) B都道府県 C市区町村 D番地
いちいちローカル変数にコピーすんの?
>>774 1:country
2:map_area
3:pref
4:address
5:address_number
アンダーバーはダサい
(先頭じゃなくても)変数にアンダーバーを付けるとエラーの原因になる 実際経験済み
>>768 あくまで個人的意見だが。
xamppを公開サーバーで使う奴なぞおらんと思う。
xamppっていうのは、俺の中ではWindowsマシン上で手っ取り早く手間かけずにlocal開発環境を構築するものかな。
その目的において、xamppに勝るものは今のところないかなと。
んでもう少し凝った環境をlocalで構築するなら俺はVMWareを使うが、そこら辺は人それぞれかなと。
それこそあなたが紹介してるもの使おうが自由だと思うが如何なもんか。
>>769 ,772
$str = '<img src=test.jpg width=100 height=50 />';
echo preg_replace('/(\w+)\s*\=\s*([^\s\/\>]+)/', '$1="$2"', $str);
即興で書いてみた。全然検証してないし、多分駄目なパターンが幾らでもあると思うのでそのつもりで。
適当にググればもっと良い正規表現とか幾らでも見つかると思う。
>>765 クッキーを使わずに特定のセッションキーの値だけ保持したいだけって意味だろうか?
$_SESSION = array();
の代わりに
$conf = array('aaa', 'bbb', 'ccc'); // 消したくないセッションのキー
foreach ($_SESSION as $key => $val) {
if (!in_array($key, $conf)) { unset($_SESSION[$key]); }
}
「unsetで消したいsessionを1つづつ消す以外の方法で」と書いてるから↑は駄目って事かい?
もしそうであれば
1.消したくないセッションを別変数に退避
2.セッションクリア
3.退避してたのをセッション変数に戻す
てな感じの流れになると思うが。
最後の一行はエスパーじゃないのでわからん。
782 :
769 :2009/01/27(火) 00:18:06 ID:???
>>780 出来ました!ありがとうございます。
「PHP 正規表現 ダブルクォーテーション」でググっても
出てこないのですが、もう少し探しつつ自分でも勉強してみます。
>>778 マジ!?
俺、変数はすべてアンダーバー付けてるよ・・・
関数は「testPage」みたいにしてるけど・・・
なんで関数はキャメルケースで変数はそんなんなんだw
785 :
nobodyさん :2009/01/27(火) 01:02:08 ID:hNLt6VET
そういえば皆さん、変数・関数・クラス、それぞれどんなケース(キャメルケースとかアッパーケースとか)で書いてますか?
>>785 ZendとPearのコーディング規約にあわせてる
zendの規約
オレ竜だろJK
>>788 まぁ趣味でやるならそれでいいんじゃねぇの?w
ちなみにCamelCaseは「キャメルケース」、snake_caseは「スネークケース」という通称がある。 俺は関数とクラス名はキャメルケース、変数はスネークケースにする事が多い。 何となく変数名に大文字があると違和感がある。 そもそも変数名にそんな長い命名をする事はあまり無いがな。 表記の差なんぞ大した問題じゃないし、最悪機械的に置換するのも容易だから適当にやってりゃいい。 どんな単語を選ぶかに比べたら瑣末な問題だ。
791 :
nobodyさん :2009/01/27(火) 02:47:16 ID:AxUtLBKR
phpmyadminにurlというフィールドがあったとします urlのフィールドに <a href="hoge.php"></a>とPHPMYADMINを使って挿入させたんですよ でっ表示させてみたらリンクが成功されてました これってエスケープされてないって証拠ですよね? やばいですよね?
794 :
nobodyさん :2009/01/27(火) 03:29:00 ID:qjzUuhbL
GDで画像に文字を書いてjpegのヘッダー吐いてブラウザに表示させると アルファベットの文字の場合は問題ないのだが 日本語の場合、画像がjpegではなくbitmapになってしまいます。 名前もuntitledです。 それでも絵が表示されるので問題は無いのですが bitmapだとデータサイズが大きくなりすぎて回線の都合で困ります。 マルチバイト文字を使ってもjpegで出力させる方法があれば教えて下さい。 ちなみに文字は入力がsjisで、スクリプト中にUnicodeにエンコードして書いてます。 あとセッションを使った時もなぜかbitmapになるんですよね。 なんで?
なぜ最後だけ人をなめくさった口調?
796 :
nobodyさん :2009/01/27(火) 04:29:40 ID:FuIrNp9Y
htmlのformが空のときに、mysqlにnullを送りたくて、 phpからinsertのsql文かくときに $a = null; $sql = "insert〜values(".$a.");"; ってやって、mysql側でinsertされた$aの値をみると、nullじゃなくて文字型のnullが代入されてしまう・・ phpからmysqlにnullを送りたいときはどうしたらいいのでしょうか 今、回避策としてifで、formが空なら、 $sql = "insert〜values(NULLl);"; として、空でないときと空のときとで$sqlを二回書いているのですが、 他に方法があれば教えてもらいたいです
797 :
nobodyさん :2009/01/27(火) 04:30:27 ID:FuIrNp9Y
s(NULLl);"; → s(NULL);";
799 :
nobodyさん :2009/01/27(火) 07:26:33 ID:FuIrNp9Y
>>798 やってみました。ですが、
phpmyadminで確認したのですが、文字型でないNULLが入ると
斜め表示のNULLになるのですが、$a = 'NULL';でやると、
文字型のNULLで入ってしまうのです。
800 :
nobodyさん :2009/01/27(火) 07:37:29 ID:FuIrNp9Y
>>798 すみません、そもそも
>>796 で勘違いをしておりました。
$sql = "insert〜values(".$a.");";
とありますが、$aはformが空でないときも考慮するので、正しくは
$sql = "insert〜values('".$a."');";
で、$a = 'NULL';をいれていて失敗していました。
'のない$sqlで空でないときは、$a = "'".$a."'"でやったら空でないとき空のとき両方でできました
申し訳ありませんでした。ありがとうございました
プレースホルダ使えよ
801 :nobodyさん:2009/01/27(火) 08:42:17 ID:??? プレースホルダ使えよ
803 :
nobodyさん :2009/01/27(火) 10:50:51 ID:txYSEp0E
file_get_contentsを使いたいのですがPHP4.2のため使えませんでした。 自分のサーバではないのでPHPのバージョンは上げられません。 何か方法はありませんか? XMLの取得に使いたいと思っています。
>>803 同等の関数を作ればいい
引数とか全部実現しなくても、自分が使う分だけ想定すればいい
>>779 フイタ(笑)
xamppに頼る事態ザコだろ
>>803 function file_get_contents_($file) {
$str = "";
foreach (file($file) as $value) {
$str .= $value;
}
return $str;
}
別にfopenでもなんでもいいけどよ 実現できれば
わざわざ配列にして文字列に直すとかwwwwwwwwwwwwwww
フイタ
テキストファイルを読みたいわけじゃないんでしょう。
file_get_contentsがほしいんだろ? 別に間違った解答じゃないじゃないか
foreach... function file_get_contents_($file) { return implode('', file($file)); } でいいのでは?
816 :
807 :2009/01/27(火) 12:13:35 ID:???
なるほど そういえばimplodeなんてものがあったな
817 :
803 :2009/01/27(火) 12:28:44 ID:???
いろいろありがとうございます。
試してみたのですがXMLの情報がうまく拾えません...
以下のXMLなのですが
<Title>YAHOO!</Title>
<Contents>
検索サイト
</Contents>
<Url>
http://www.yahoo.co.jp/ </Url>
とあった場合、ContentsとUrlの情報は拾えるのですがTitleが拾えません。
勘で答えるのは失敗したので、回答出来ません。
この中にエスパー、エスパーの方はいらっしゃいませんかー
821 :
nobodyさん :2009/01/27(火) 12:49:41 ID:97r4TD7y
>>817 ereg_repalce('<Title>(.*)</Title> ',\\1,"XML");
とかで行けるかな?
ContentsとUrlはどうやって拾ってるのかな?
わざわざID隠してるし817は偽者だろ
preg_match_all使えば簡単に取り出せたよ
825 :
nobodyさん :2009/01/27(火) 13:18:57 ID:yQe3oXTz
すいませんがeclipse+java+Tomacatでの開発からテスト、リリースまでの質問ってどこできけば手っ取り早いですか?
826 :
nobodyさん :2009/01/27(火) 13:20:24 ID:yQe3oXTz
あ トマキャットになってる。Tomcatです。
トマトケチャップになってスパゲッティに混ぜられて食べられてトイレで流れてから出直してこい
828 :
nobodyさん :2009/01/27(火) 13:23:54 ID:yQe3oXTz
あ 人がいた。 出直してきたので教えてください。eclipseのスレにいったら誰もいそうになかったので
830 :
nobodyさん :2009/01/27(火) 13:36:36 ID:yQe3oXTz
>>829 誘導までしていただきありがとうございます。
ざっとみてみます。
あなたたち好きですよ
関係ないけど、
>>795 の返しに死ぬほどワロタwwww
833 :
nobodyさん :2009/01/27(火) 21:40:54 ID:AxUtLBKR
どうも <?php $db = new PDO('mysql:host=localhost; dbname=bbs', 'root', ''); MYSQLに接続してるんですけど、こういう接続情報はWeb公開されていないフォルダに置いた方がいいと聞きました。 そんなことしてる方居ますか? 優しいご意見よろしくおねがいします。
いますけど何か?
836 :
nobodyさん :2009/01/27(火) 23:19:04 ID:YTQfs/1J
フォームメールでメールを送ると、「車」とか「蛇」とかが「?」になって受信されます どうしたら解消できるでしょうか? フォームメールのエンコードはSJISです よろしくお願いします
837 :
836 :2009/01/27(火) 23:20:52 ID:YTQfs/1J
書き忘れました よくある「\」が勝手に付加されるというエラーは起きていません ググったらそれ関連の対策サイトはたくさんあったんですが、「?」のほうはいいのが 見当たらなくて聞きました お願いします
エスパー伊藤さ〜ん
SJISのフォームメールのページから送信 ウェブサーバが受信してSJISからJISに変換して送信先メールサーバに送る メールサーバに新着が届いてるかアクセスして、あれば受信 どの段階で化けてるか、ログとればいい
>833 むしろWebから見える位置に置いてるのは5行程度の1ファイルのみ。
なぜ5行w
>>836 俺んとこのSJIS/PHP匿メールフォームで車蛇が正常に送られていたから解決方法はある
843 :
nobodyさん :2009/01/28(水) 02:10:53 ID:Q3XQIErM
せっくすって楽しいんですか?ぼくもいちどけいけんしてみたいです。
>>841 フレームワークってことが言いたいんだろ
845 :
nobodyさん :2009/01/28(水) 12:39:29 ID:8L8rzhrr
【OS名】winxp / linux 【PHPのバージョン】php5.2.5 【連携ソフトウェア】mysql 【質問内容】 DBに画像のファイル名だけを保存して <img src="./img/<?=$row[hoge];?>">としてるのですが、 この時点で画像をリサイズしたいとき、 画像の横幅の数値や縦幅の数値などを取得することは可能でしょうか
PHP と mySQL と Apach で簡単なウェブシステムを作りたいのですが、 知識が、html/css しかないひとには、 かなりハードル高いでしょうか?
>>845 すばらしく軽いシステムになりそうだね。
>>847 ありがとうございます、助かりました
>>848 画像容量もあるんで重くてもしょうがないかなとあきらめてます・・・。
>>849 DBにファイルサイズのフィールド作っとくとか、
ファイルシステム上に、調べたファイルサイズをテキストファイルで保存しとくとか。
852 :
nobodyさん :2009/01/28(水) 20:19:09 ID:6Bc6Lkqo
【OS名】CentOS 【PHPのバージョン】5.1.2 【連携ソフトウェア】GD 【質問内容】 GDについて質問です。 以下のコードがエラーになるんですがimagecolorallocateで黒指定ってできないんですか? <? $image = imagecreate(20,20); $permeateColor = imagecolorallocate($image,0,0,0); if(!$permeateColor){ print "ERROR\n"; }else{ print "OK\n"; } ?>
>>852 >>1 ◆質問する時の注意
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
$permeateColor が 0を返してるんだと思います。 エラーの条件見直してね。
855 :
nobodyさん :2009/01/28(水) 20:56:20 ID:Z5zDQiPZ
同一フォーム内にtypeがsubmitであるボタンが複数あるとき、 submit後、そのボタンの名前を知ることは出来ますか? <input name="button1" type="submit"> のようにしても_POSTから「button1」を拾えず困っています。 処理上「同一フォーム内」というのが理想で、 複数フォームを用意してJavaScriptを使うという解決方法も有りますが、 できればPHPのみで処理したいという感じです。
うそつけ
>>855 <input name="button1" type="submit" value="ボタン1だよ〜">
var_dump($_POST);
858 :
nobodyさん :2009/01/29(木) 00:03:25 ID:kTh7UEOg
【OS名】linux (xrea) 【PHPのバージョン】 5.2.5 【連携ソフトウェア】 【質問内容】 <?php require_once('File/Archive.php'); $buf = "テスト"; File_Archive::extract(File_Archive::readMemory($buf, 'test.txt'), File_Archive::toOutput()); ?> 上のコードをローカル環境(windows+xampp1.6.7) で動かした場合、希望通りダウンロードのダイアログボックスが開きますが レンタルサーバ(xrea)で動かしたら、ダイアログボックスが開かず「テスト」と表示されてしまいます。 phpかアパッチの設定だろうと思うのですが何でこうなるかさっぱりわかりません。 よろしくお願いします。
859 :
nobodyさん :2009/01/29(木) 00:06:30 ID:YsrWxu/c
$str = <<<EOD <td>111</td> <td>222</td> <td>333</td> <td>444</td> <td>555</td> <td>666</td> EOD; mb_ereg_search_init($str); $getstr = mb_ereg_search_regs('<td>([^<]*)</td>'); これだと'111'しか取得できないんだけどさ、 '111'.......'666'まで取得するにはどうすれば良い? 単純に回せば良いのかな?って思うんだけど、どう回せば良いんだろう
preg_match_all
861 :
nobodyさん :2009/01/29(木) 09:02:54 ID:lViVhLck
例えばurlの引数に、?p=10&v=1 とかにして、かつ、vが1と0だけに限定したとき、 p=10と30と50はv=1の処理へ、p=20と40はv=0の処理ってしたとき、 意図的にurlを?p=20&v=1で接続されて、20もv=1の処理されると困るから (20が1かどうかを判断しようと思えばできるけど、あえて引数だけで判断したい)、 引数をpathで隠そうと思ったんだけど、隠しても、 たまたま勘のするどいやつが、正確な引数付きの処理違いのurlを直接放り込んで アクセスされた場合は意味内?
863 :
nobodyさん :2009/01/29(木) 09:19:01 ID:lViVhLck
864 :
nobodyさん :2009/01/29(木) 09:46:18 ID:bf47cLsH
複数のファイルを別フォルダにコピーしたいときは copy()をファイル数分ループさせるしかないのでしょうか?
そこ、手抜いておもしろいか?
ループさせないでベタに羅列するという方法もある
867 :
864 :2009/01/29(木) 11:35:34 ID:bf47cLsH
>>865 めんどくさがりなので面白いです
>>866 めんどくさいのでそんなことは出来ません
別の手を抜く良い方法を思いつきました
ありがとうございました
面倒だからってすでにあるコードも捨てて別のを採用しちゃうわけか。
869 :
nobodyさん :2009/01/29(木) 12:21:49 ID:61ZU4Htc
phpとmysqlだけで使えるファイルマネージャ(ファイル共有システム)を探しています。 パスワードが利用でき、セキュリティが確保されていることが条件です。 ウェブで探していたらrelayというパッケージが見つかったのですが、残念なことにcgiを必要としていました。 ご存知でしたら、ご教示のほどよろしくお願いいたします。 #ウェブ制作管理から誘導されてきました。
870 :
864 :2009/01/29(木) 12:42:31 ID:???
>>868 まだ設計・構築段階
すでにコードがあるなんてどこにも書いていないですよ?
exec で cp -r とか、 圧縮して copyは一回だけとか
873 :
nobodyさん :2009/01/29(木) 13:45:32 ID:6/f6dxAE
PHP5でセーフモードがかかっています ファイルの作成からパーミッション666への変更を行いたいのですが fopenやchmodなどが使えなくて困っています pukiwikiは普通に使用できるサーバなので 何か方法があると思うのですが pukiwikiのソースから該当部分を探すことができないので どなたか方法を教えてください
ftpでやったらいいじゃない。 もしプログラムで作ったファイルならその時点で書き込みできてるだろうし。
875 :
873 :2009/01/29(木) 14:06:42 ID:6/f6dxAE
>>874 レスありがとうございます
多人数で使うシステムでユーザごとにファイルを作成することになるので
あらかじめファイル名やファイル数を予測することはできません
あと言い忘れましたがshell_execなどのコマンドも使用できないようです
制約が多いですが何か方法があったらお願いします
>>875 元のディレクトリにWebサーバから読み書きできる権限があれば、
あとは、その下位ディレクトリだってどうにでもなる。
サーバによって設定の仕方は違うけど、変なブログ記事とか参考にしないで
落ち着いて考えてみ
877 :
873 :2009/01/29(木) 15:08:50 ID:6/f6dxAE
>>876 レスありがとうございます
管理権限がないので権限の変更はできません
(そういう意味じゃないのならすみません)
ちょっと頭がかたいのか方法が思いつかないので
とりあえずこの部分はperlで記述して
file_get_contentsあたりでたたくことにしたいと思います
>>877 普通FTP経由でパーミッションの変更ぐらいできるが、
出来ない鯖ならどうもならんわな。
879 :
873 :2009/01/29(木) 17:02:36 ID:6/f6dxAE
>>878 そういうことでしたか
public_htmlを777に変更したところ作成できるようになりました
ただちょっとこの方法は危ない気がするので今回は見送りたいと思います
phpでもcgiが使えれば一番よいのですが(使えるとは書いてるんですが)
使い方がわからないのでやはりperlでやりたいと思います
勉強になりました
レスどうもありがとうございました
880 :
nobodyさん :2009/01/29(木) 17:45:53 ID:5k1XXheb
そよのスレ落ちて誰も答えがなかったのでこちらへ。 //$_SESSION['abc']; は前ページで123を代入 //ここから $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time() - 42000, '/'); } session_destroy(); echo $_SESSION['abc'];//123 と表示したいのですが何か方法はないのでしょうか?クッキーとか使わずに。
session_start()
882 :
nobodyさん :2009/01/29(木) 17:54:24 ID:5k1XXheb
え? <? session_start(); ・・・・・ $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time() - 42000, '/'); } session_destroy(); session_start();//← 2回かけってことかな? echo $_SESSION['abc'];//123
煽りならほかでやれ
ID:5k1XXheb はレスを無視してる
>>765 だろ?そりゃ誰も相手しないわな
質問です。
可変変数に関して、
変数名の途中に変数をつかいたく、以下のように書いてみたのですが
うまくいきません。どう書けばよいのでしょうか?
$a_yahoo_url = "
http://www.yahoo.co.jp/ ";
$str = 'yahoo';
echo "$a_{$str}_url";
echo "$a_yahoo_url";
887 :
nobodyさん :2009/01/29(木) 18:21:03 ID:5k1XXheb
分からないのならわざわざ糞レスしないでもいいですから
888 :
885 :2009/01/29(木) 18:25:36 ID:???
>>886 ありがとうございます。その書き方にかえてみます。
ちなみに、 echo "$a_{$str}_url"; のような書き方はできないのでしょうか?
ム板に隔離できてしばらく静かになったと思ったら、一斉爆撃か。 たちが悪いな
891 :
859 :2009/01/29(木) 20:43:21 ID:YsrWxu/c
892 :
858 :2009/01/29(木) 21:13:14 ID:???
自己解決しました。 xreaの無料サービスでは広告がwebページ上に強制的に表示されるのですが それがまずかったみたいです。 有料プランにするとダウンロードダイアログボックスが表示されました。
894 :
852 :2009/01/30(金) 05:02:27 ID:sgtEAQm/
GD入ってないんでは?
$image = imagecreate(20, 20); var_dump($image); これでFalseが返るなら var_dump($gd_info()); してみれ
>>894 回答、読めないんだな。
$permeateColor にfalseじゃなくて0が返ってるんだよ。
!$permeateColorじゃなくて、false === $permeateColor
で比較しろ
>>852 そのページの変更履歴のところと、貴方のPHPのバージョン チェックもね。
900 :
nobodyさん :2009/01/30(金) 10:22:58 ID:ZSO4xi2M
設定用のクラスがあるのですが、 class Settei { const hoge = "hoge"; } 他クラスからのオブジェクト定数への呼び出し方法なんですが、 どのようにしたらいいでしょうか? staticにアクセスしたいので、 public static function getHoge()のようにして呼び出したいのですが、 PHPのオブジェクト定数は元からpublicなようで、(private修飾子がつけれない) そんなことしないでも、Settei::hogeで呼び出せてしまうようです。 この方法は違和感があるのですが、 PHPではどのような方法でオブジェクト定数を呼び出すのが一般的なのでしょうか?
privateなオブジェクト定数を持ちたいということ?
902 :
初Imagick :2009/01/30(金) 11:04:22 ID:3leczN6Y
PHP5.2.5、Imagick2.0.0-rc1、Windows、Apache2.2 で元々ある画像に文字を入れて出力したいのですが 文字にアンチエイリアスがかかりません。 アンチエイリアスをかけるには何か特別な方法などあるのでしょうか…? よろしくお願いします。 $im = new Imagick("waku.jpg"); $idraw = new ImagickDraw(); $idraw->setFont(".//fonts//ipam.ttf");//IPA明朝 $idraw->setFontSize(25); $idraw->setTextAntialias(true); $idraw->setStrokeAntialias(true); $im->annotateImage($idraw, 0, 0, 0, "新着!"); $im->writeImage("waku2.jpg");
903 :
nobodyさん :2009/01/30(金) 16:26:25 ID:LDxJ1y3L
【OS名】CentOS 5
【PHPのバージョン】php5.16
if ($u_mail == "") {
echo "<p>メールアドレスを入力してください";
$err = 1;
}
if (u_mail == preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $u_mail)) {
echo "<p>正しいメールアドレスを入力してください";
$err = 1;
}
このような構文を使って簡易メールフォームを作ってるんですがメアドチェックで
少し困ってます。$u_mailを空欄にすると確認ページで「メールアドレスを入力してください」
空欄でなくてもメアド書式が適切でなければ「正しいメールアドレスを入力してください」の
表示になる(意図したとおり)のですが、Apacheのエラーログに
PHP Notice: Use of undefined constant u_mail - assumed 'u_mail' in /home/***/public_html/***.php on line 110, referer:
http://***.com/test.php のようなエラーが吐かれます。これの解決方法は何かありますか?
905 :
903 :2009/01/30(金) 16:38:48 ID:LDxJ1y3L
>>904 有難うございます、すごく情けない事に気づきました。
if (u_mail == preg_match のu_mailに$が抜けてました・・・皆さんお騒がせしました
906 :
nobodyさん :2009/01/30(金) 16:58:16 ID:lWjwDRkw
ポストされたイメージファイルのsizeを受け取ることはできるのですが 横、縦のpxを受け取るのはどうしたらよいのでしょうか
>>906 list($width,$height) = getimagesize();
>>900 PHPではアクセスできようが実害はないと思って採用しなかったんでしょう
好意的に考えたら define() 関数の挙動をそのままクラスに当てはめた、かな
理由にはなってないけど動的言語の定数はpublic扱いが多いね
910 :
nobodyさん :2009/01/30(金) 17:30:53 ID:lWjwDRkw
911 :
nobodyさん :2009/01/30(金) 17:44:19 ID:qaDfeklP
すいません 正規化って英語でなんていうんですか? regularですか?
しれっと、すごい質問来たね。PHPとの関連がすごすぎ 正規化が知りたいの?正規表現じゃなくて?
915 :
nobodyさん :2009/01/30(金) 19:49:37 ID:KWmoT5Cz
regular expression でregexpだろ。正規表現は。
jk
でっていう
918 :
nobodyさん :2009/01/30(金) 20:00:42 ID:2/Adsziv
掲示板やフォームなどで名前欄にNGワードを外部ファイル(ng.datに複数記述)から読み込んで 使う事って出来るのでしょうか?ド素人なのでMySQLなどのDB使用はまだちょっと敷居が 高そうですので、現在はif($name == "aaa" and "bbb")のような形でやってますが。 もし可能だったらお教えください。ヒントでも結構ですので、よろしくお願いします。
>>918 >>919 が示してるけど、NGワードを適当なファイルに1行ずつ羅列して
fileで配列に格納、foreachとrtrimとmb_strposで調べてはどうかな。
ただNGが多くなると効率悪くなりそうだし、もっといい方法があるかもしれない。
yahooAPIの形態素解析を混ぜれば楽
>>918 せめて配列にしてin_array
fileでもin_array
mb_convert_kanaを使うと少しだけ楽になる。カナかな変換や全角/半角の相互変換が出来るからな。 自由入力欄のNGワード処理にあまり気合を入れる意義を感じないのが正直なところ。 「死ね」をNGにしても「氏ね」で回避されるわけだし。
1行1データで順次入力文字と照らし合わせて確認するなんて効率悪いことするなよ
>>923 NGワード確認にmb_convert_kanaなんて使わない
ほんと初心者の回答しかできないのなおまえらって
お前はそれ以下だ
クライアントとサーバの話してんのにmb_convert_kanaとか…
ν速のスレ一覧をローカルのPHPスクリプトで取得してNGワードにマッチしたスレを消してるけど、 NGワードが250個以上もあって(日々増え続けてる)、 それにはpreg_replace()を使ってるな 微妙に反応は遅くなる程度 マルチバイト云々で固いこと言わないならそれもありかな 全く使い物にならないって分けでもないし ちなみにmb_*系でも動作を比較してたけど、 NGワードが多くなったら反応しなくなった #2chブラウザ使えよってツッコミはなしで #ノートPCだから3ペインのアプリなんて毛根に悪いのw
NGワードのマッチにpreg_replace・・・?
>マッチしたスレを消してるけど
それが・・・?というかスレとマッチ・・・?
読解力もなきゃ応用力もないって ゆとりか?w preg_matchでも使えばいいだろjk
NGワードのマッチにpreg_match・・・?
お前にはわかるまい オライリーの詳説正規表現を数千円も出して買った俺の気持ちが
m9(^Д^)プギャ-
937 :
918 :2009/01/31(土) 02:15:27 ID:La81Yid/
皆さんありがとうございます、918です。
fileで配列格納をしてarrayを使って何とかなりました。が、
>>920 の教えてくれた
ようにforeachとかも調べましたがまだまだ勉強不足ですので、今後また質問するかも
知れませんが、よろしくお願いします。
938 :
nobodyさん :2009/01/31(土) 03:32:43 ID:XfTt19xw
全部utf-8でやってるんだけど、urlencode()してくれねー mb_convert_encoding($str,"UTF-8", "auto");してからやっても無理だった どうしたらいい
なんて表示されるの?エラーは? 私オカマだけど表示もエラーも出さない 中年の男ってほんとおかしいと思うの。
940 :
nobodyさん :2009/01/31(土) 09:12:40 ID:XfTt19xw
>>939 それがさ、phpのエラー画面はでてこないんだ。
日本語の値がそのまま返って、ブラウザfoxのurlバーのところに表示される
942 :
nobodyさん :2009/01/31(土) 10:28:10 ID:XfTt19xw
>>941 なるほどわかた。とん
もう一つ質問。
urlencodeされた文字列にマッチするかどうかの、正規表現はどうやってかいたらいい
ereg(^[_a-zA-Z0-9],$a)
みたいにしたんだけど、%ととか何があったっけ
おまえ、ホント質問下手だな。
ググればでてきますよね
おいなんか難しそうな関数の使い方を教えたまえ
function orderbyLength($first, $second){ return strlen($second) - strlen($first); } $array = get_defined_functions(); usort($array["internal"], 'orderByLength'); header('Content-Type: text/plain'); print_r($array["internal"]); 俺の環境(PHP5.2.5ベース)で長い組み込み関数名ベスト5 [0] => xmlrpc_server_register_introspection_callback [1] => xml_set_processing_instruction_handler [2] => mcrypt_module_is_block_algorithm_mode [3] => mcrypt_module_get_supported_key_sizes [4] => xmlrpc_server_add_introspection_data [5] => xml_set_unparsed_entity_decl_handler XML-RPC!実に難しそうでいいんじゃないかな。XML-RPCって言ってるだけでSIやさんみたい。
947 :
946 :2009/01/31(土) 13:19:24 ID:???
6件あると思った奴は空気嫁
ム板のお前のブログに書け
わざわざブラウザで見てんの?
自己紹介乙
「通報しました」に続いて「自己紹介乙」を憶えたか 天才チンパンジーアイちゃんの驚くべき学習能力を垣間見た
>>948 お前が会社をクビになったのは
精神異常だから
お顔がまっかっか
954 :
nobodyさん :2009/01/31(土) 19:07:09 ID:8ejdmMTe
sourceforge.jpみたいな海外サイトってありませんか?
sourceforge.net
956 :
954 :2009/01/31(土) 19:54:43 ID:???
世界中にあったんですね、ありがとうございました
文字列が、日本語、中国語、韓国語、アラビア語・・・ どの言語で構成されてるか判定する方法はありますか? 文字コードはUTF-8です。
エンコードの範囲見れば?
960 :
nobodyさん :2009/01/31(土) 23:41:33 ID:EImEHdHV
こんにちはって表示したいのですが表示されません php5.2.6です どなたかご教授お願いします class hello() { $konnitiha = "こんにちは"; } $obj=new hello(); echo $obj->konnitiha;
function hello(){ return $this->konnitiha; } をクラス内に書き足せばいいかも
質問です。 任意の変数に最後にアクセスしたスクリプト名と行数などを 取得できる関数はあるでしょうか? イメージ的にはdebug_backtrace()のような。
963 :
nobodyさん :2009/02/01(日) 00:01:08 ID:JltL2q4s
962です。すみません下げてしまいました。
>>958 そうですね。標準じゃ用意されてないみたい。
ども。
>>960 (1)
メンバ変数をpublicにする
(2)クラス定義に()はいらない。
完成例↓
--------------------------------------
<?PHP
class hello {
public $konnitiha = "こんにちは";
}
$obj=new hello();
echo $obj->konnitiha;
?>
外部URLの一部を読み込んで表示するにはどうすればいいのでしょうか?
例えば別のURLの内容に
Hello World
とある場合Hello World全部を読み込むのではなくHelloだけを読み込んで表示させたいです。
今は下記の方法で全部読み込んで表示させてるので
一部だけ読み込んで表示させる方法をご存じの方は教えて下さい。
<?php
$file = file("
http://読み込み先のURL ");
foreach($file as $line){
echo($line);
}
?>
スレタイをお読み下さい
970 :
nobodyさん :2009/02/01(日) 08:52:43 ID:cfVbpguo
$data = @$_POST["data"]; $txt = @file_get_contents("sample.txt"); if (ctype_upper($data)) { echo "<p>$data は大文字のみです";} 雑誌に付属してた大文字判定スクリプトを元にfile_get_contentsを加えて 改造しているんですが、 if $dataに$txtに記述されている文字列が含まれているか { 含まれている→ echo "$data はOK" } 含まれてない → else { echo "$data はNG"; } このような流れで処理したいのですが、こうした場合の書き方を教えてください。
972 :
970 :2009/02/01(日) 10:55:59 ID:cfVbpguo
>>971 おぉ!有難うございます。先日からいろいろぐぐってみてはいたのですがワードが
悪かったのかなかなか調べられませんでした。strposでぐぐって参考にして
if (strpos($data , $txt) === false) でうまく行きました、有難うございました。
>968
「全部読み込んでから、その一部を出力する」でいいか?
一部だけ読み込ませるのは難易度が非常に高いし、普通の用途なら性能的にも劣る。
それと、「おまじない」でなんとかできる範囲を超えている。そのコードが具体的に何をしているのか理解しないとその先には進めない。
読込先のURLに書いてあるのが
---
Hello World
This is second line.
---
だった場合、$fileは
$file[0] = 'Hello World';
$file[1] = 'This is second line.';
という配列になっている。今はforeachでこの全てを出力しているわけだが、ここから必要なものを抜き出せばいい。
それ以上は、具体的にどういうルールで何を抜き出したいのか分からないとなんともいえない。
例えば、1行目の1単語目を抜き出したいなら
$file = file("
http://読み込み先のURL "); // $fileは上記の通り
$words = explode(' ', @$file[0]); // $wordsはarray('Hello', 'World');
echo $words[0];
974 :
970 :2009/02/01(日) 14:06:21 ID:cfVbpguo
追加で質問お願いします。 $data = @$_POST["data"]; $txt = @file_get_contents("sample.txt"); if (strpos($data , $txt) === false){ echo "$data は含まれていない"; } else { echo "$data は含まれている"; } このsample.txtの内容が1行であればうまく行きましたが、複数行の場合は うまくいきません。sample.txtにtakeshiが含まれていても、含まれていないと 返されます。なおsample.txtの中身は以下の通りです。 takeshi nobita suneo になっていて、各行は改行しています。 そもそもfile_get_contentsはファイル全体を読み込んで1つの文字列として 扱う、とありますのでもしかしたらfile_get_contentsを使うのは間違って いるのでしょうか?
>>974 int strpos ( string $haystack , mixed $needle [, int $offset ] )
文字列 haystack の中で、 needle が最初に現れた位置を数字で返します。 PHP 5 以前の strrpos() とは異なり、この関数は needle パラメータとして文字列全体をとり、 その文字列全体が検索対象となります。
976 :
nobodyさん :2009/02/01(日) 14:29:05 ID:57qIZ8Mn
ソースを読んで勉強したいと思いました そこで海外製でオープンソースのDB不要の掲示板またはフォーラムがございましたら教えてください
977 :
nobodyさん :2009/02/01(日) 14:29:36 ID:57qIZ8Mn
phpbbとusebbはすでに読んで勉強してるので除外させていただきます
>974 それは $_POST["data"] の中に 「takeshi[改行]nobita[改行]suneo」 という文字列がないか検査している。 性能を気にしないなら、fileで配列とかに読み込んで、そのそれぞれについてPOSTデータからstrposで検索、 一件でも見つかったらアウト、という処理を書けばいい。
980 :
nobodyさん :2009/02/01(日) 14:51:00 ID:morOTwuV
PDOのメリットとデメリットを教えてください
982 :
nobodyさん :2009/02/01(日) 15:19:11 ID:57qIZ8Mn
>>979 スレ違いすみませんでした
移動しますのでどちらのスレで伺えばよろしいでしょうか?
個々のRDBMSにあまり依存しないコードが書ける。 (実際にはSQLに100%の互換性がないから、多少は依存する事が多いのだが) 逆に、個々のRDBMSの固有機能などは使えなくなる事がある。 基本性能は五十歩百歩だが、各RDBMSの固有機能を呼べない事で性能的に不利になる事はあり得る。 別にRDBMSに拘るシステムでもないなら、PDOを使っておくと分かりやすい。 PDOを使っている = RDBMS固有の機能は呼べない = 一般的なDB操作しかしていない 事が自明になるからな。 「別になんでもいいんだけど、とりあえずMySQL使ってます」という意図がコードから読み取りやすくなる。 各RDBMSの固有関数よりも、読める奴が多いのも利点。 DB2の関数やOracleの関数なんぞ知らんって奴は多いだろうが、PDOのメソッドなら大半の奴が分かる。 (同じような関数ばかりなので実際は迷う事は少ないのだが、たまに引数の順序とかで引っかかったりする)
984 :
nobodyさん :2009/02/01(日) 15:46:52 ID:57qIZ8Mn
「ベースとなる数字」 12 0.5 3.666 40.24 という数字があります これを四捨五入しないで少数第1位までのを表示し、 また、少数点がない数字(12)は小数点第1位(12.0)で表示したいのですが どのようにしたらよいか見当もつきません どなたかお手数をおかけしますがヒントだけでもお願いします 「このように表示したい」 12.0 0.5 3.6 40.2
宿題は自力でやれ
ム板でやれ
>>984 ヒント:10倍 floor
ちょっとヒント出しすぎたかな
988 :
nobodyさん :2009/02/01(日) 16:29:12 ID:AjzQ70Qx
php5 sqlite利用です。
65$mailadd = sqlite_escape_string("
[email protected] ");
66$send_time = "1";
67 if(!$db=sqlite_open("database/database.sqlite",0666,$err)){
68 die("データベース接続エラー".$err."<br>");
69 }
70 ////////////////////////////変更////////////////
71 $henkou_sql = "UPDATE add_table SET".$send_time."WHERE add=".$mailadd;
72 sqlite_query($db,$henkou_sql)
73 or die('ERROR:変更に失敗しました。');
74 print('変更しました。<br><br>配信時間帯:'.$haisinzikan);
75 sqlite_close($db);
76 ///////////////////////end of file
で、unrecognized token: "@" in URL on line 72
のエラーが出ます。
宜しくお願いします。
add='メアド'
>>984 $keta=array(12,0.5,3.666,40.24);
foreach($keta as $seikei){
$seikei=sprintf("%0.1f",$seikei);
echo $seikei.'<br />';
}
>>991 12.0
0.5
3.7
40.2
残念
ww
994 :
988 :2009/02/01(日) 16:49:21 ID:???
SET の代入式抜けてました ありがとうございました
>>984 $array = array(
12,
0.5,
3.666,
40.24,
);
foreach($array as $value) {
$value = number_format(floor($value * 10) / 10, 1);
echo $value."\n";
}
996 :
nobodyさん :2009/02/01(日) 17:35:46 ID:o7tkfiSb
readfileでphpと同じサーバー上のファイルを転送しようと思っているのですが readfileだとヘッダーのContent-Typeが全てtext/htmlで転送されてしまいます readfile("hoge.jpg")だとheader('Content-Type: image/jpeg'); readfile("hoge.png")だとheader('Content-Type: image/png');…の様に phpを介さず本来送信されるはずだったContent-Typeを取得する方法を教えて下さい
>>995 すごい無駄な処理wwwww
俺が答えてやらないとダメなのかね
>>996 mime_content_type()
ただし非推奨なので、こっから推奨のやりかた探してきて。
1000ブリブリッ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。