【PHP】下らねぇ質問はここに書き込みやがれ 71
1 :
nobodyさん :
2008/07/17(木) 19:42:52 ID:DVaNTncw まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 70
http://pc11.2ch.net/test/read.cgi/php/1214356448/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
【簡易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に保存?
→ 好きにしてください
6 :
nobodyさん :2008/07/17(木) 23:25:16 ID:OURQxnQu
前スレでテンプラについて揉めてたけど、 直ってるの?
これが正式なテンプレじゃねえかな トリップつけろって文言ないしね 質問者はIDだしてあげるこれは鉄則というかマナー
何時から鉄則というかマナーになったんだよw
昔からだろ
マナーだとしてもを義務化するのはどうなんだ?
テンプレに文句があるなら使うなって何度もループした話題
昔からageてID出せってテンプレで書いてるんだから守ればいいじゃん
そんな反発するようなことじゃないだろ?
ID出さないと偽者が出るし、トリップやコテハンは嫌われる傾向なので煽りが出る原因になる
円満にスレを進めるなら質問者はageてID出せばいい
>>1 という無駄な1行レスも増えないしな
23. テンプレ通りに質問しない素人がいるんだけど? → 回答するなり無視するなり好きにしてください
>>15 FAQじゃねぇw
まぁそのとおりなんだけどスレが荒れるのは確実だから
>>14 みたいな人間がいる以上テンプレに添ってやるのが妥当
ますますくだらないスレになってきましたね。
連休だから仕事や課題丸投げはお休みなのれす。
19 :
nobodyさん :2008/07/19(土) 10:28:37 ID:O5rwREQG
perlの $hoge =~ s///g; $hoge =~ tr///; に相当する PHPの書き方って ありますか?
あるよ。 ところで、関係ないけど、trって使い道なくね? なんで一文字ずつ置換しかできない仕様のものを作ったんだろう。
21 :
nobodyさん :2008/07/19(土) 10:57:21 ID:O5rwREQG
23 :
nobodyさん :2008/07/19(土) 11:56:55 ID:O5rwREQG
>>22 str_replaceで、変換元と先を配列にすればOKですか?
データベースの設計手伝ってくれる方いませんか?
DB板池
さっきどっかのQ&Aで聞いてダメだったんだけど
画像のURLを使ってサーバーのディレクトリに画像を保存するのって出来ますか?
$source = "
http://aaa.com/b.jpg "; //保存したいファイルのURL
$updir = "\"; //保存先パス
copy( $source, $updir ); //保存
自分のイメージとしてはこんな感じなのですが。
うん可能
28 :
26 :2008/07/20(日) 02:12:58 ID:???
どの関数を使えばいいのでしょうか
1発でできるような関数はない。 ネットワークの仕組みを考えればすぐ分かるはず。 送り手、受け手両方プログラムを用意する必要がある。 あと、 マルチ氏ね
30 :
26 :2008/07/20(日) 02:34:31 ID:???
マルチになるから最初に聞いたところのは既に消してあります fopenでURLを指定してバイナリモードで開いて そのあと何か関数を使って保存するのかなと思ったのですが
以前そのままにしてすみません。
javascriptで、外部phpから取得し、html書式で返ってきたものを表示させるということがしたいと思っています。
<script type="text/javascript" language="javascript">
<!--
document.write("<script type='text/javascript' src='
http:// 〜/data.php'></script>");
// -->
</script>
--------
data.php
<?php
$KeyWord=$_GET["key"];
$sum1="document.write(\"<a href='{$Keyword}' target='_blank'><img src='
http:// 〜/〜.png' border='0'/></a>\");";
echo $sum1;
?>
このようなプログラムです。いろいろ試したのですが、どうしてもうまくいきません。
phpのほうをこのようにすると動きます。教えていただいたことをやってみてもうまく動きません。
呼び出し方がまずいんでしょうか?よろしくお願いします
<?
echo 'hello';
?>
詳しく見てないけど とりあえず問題切り分けてみたら
data.phpで外部js(data.js)を吐く工程を記述する
fopen->fwrite->fcloseもしくはphp5ならfile_put_contentsなどで
$sum1="document.write(\"<a href='{$Keyword}' target='_blank'><img src='
http:// 〜/〜.png' border='0'/></a>\");";
file_put_contents("data.js", $sum1, LOCK_EX);
とする
そうすると$sum1が記述されたdata.jsができあがるので
それを呼び出す
<script type="text/javascript" src="
http://example.com/data.js "></script>
簡単に言っちゃうと document.write("<a href='「リンク先URL」' target='_blank'><img src='「画像のURL」' border='0'/></a>"); このような値をphpが返してくるんですが、「この画像にリンクが貼ってある」というように表示させたいのです。html形式として。 表示させたいサーバーはphpが動かないので(PHPをおいてあるサーバーは動きます)javascriptで呼び出して表示させたらいいんじゃないかと思いまして。 javaはあまりやったことないのでかなり手間取ってしまって、ずっと悩んでいるんdネスが解決の糸口が見つけられず
>>34 ありがとうございます。
なるほど、そういうやり方もあるんですね。大変参考になりました。
言葉足らずで申し訳ないのですが、今回の場合、多数のリンクを形成したいと思っていますので、なるべくファイルを残したくないと考えています。
別の形で利用させていただきます。
document.write("<script type='text/javascript' src='
http:// 〜/data.php'></script>");
ここの部分の呼び出し方はあっているんでしょうか?
data.phpに?key=****みたいに、リンクを作る際そのつど多様な引数を与えようと思っています。
htmlspecialcharsも挟ませて見たのですが、エラーが出ます。
間違いの可能性のある部分を指摘していただくだけでも大変参考になります。自分じゃ気付けないので\
38 :
37 :2008/07/20(日) 04:12:22 ID:???
scrじゃなくてsrcね
39 :
37 :2008/07/20(日) 04:16:02 ID:???
data.phpは動的に生成される外部jsなのだから(jsのソースはいてるし)
呼び出す側のhtmlで呼び出したいところで上記のやつを書けばいい
>>32 の
><script type="text/javascript" language="javascript">
><!--
>document.write("<script type='text/javascript' src='
http:// 〜/data.php'></script>");
>// -->
></script>
これは変
イメージとしてjavascriptの中でjavascript呼び出してる感じになってる
>>37 そうです。そして、呼び出すと
「document.write("<script type='text/javascript' src='
http:// 〜/data.php'></script>");」
こんな感じのデータが帰ってきます、これをそのまま貼り付けたいというか、メインページに融合させたいんです。
41 :
32,35,36,40 :2008/07/20(日) 04:23:21 ID:7gU9trCQ
ごめんなさい、ID表示忘れてました。
data.phpはjsじゃなくphpです
>>32 ここにソースが。document.writeというjavascript命令を返すようにしてあります。
ネットでこのようにやるやり方を見つけたので、いろいろ試していました。
42 :
37 :2008/07/20(日) 04:37:12 ID:???
43 :
37 :2008/07/20(日) 04:50:08 ID:???
<?php if (!isset($_GET['str'])) { $str = $_GET['str']; } if (isset($str)) { echo "document.write(\"{$str}\" + \"<br>\");"; } ?> に訂正 実際はGETされた値をバリデーション(データが適切なものかチェック)したり そのままgetしたものを表示すると危険なのでhtmlepecialcharsかませたりするけど とりあえずテストスクリプトなので割愛
>>42 親切にありがとうございます。試してみます!
45 :
nobodyさん :2008/07/20(日) 06:43:59 ID:0ZMYxiu9
ある文字が漢字であるか平仮名であるかを判別したいのですが、 何か直接的なヒントになるようなページありますか? 文字コードは、UTF-8を使っています。 ユーザー情報登録用に、姓名の姓が漢字になっているかチェックをかけたいのと、 姓名の平仮名の入力部分が平仮名になっているかチェックをしたいと思っています。 前は全角でチェックをかけていたのですが、ひらがなと漢字を逆にしたり、 平仮名の箇所を片仮名で書いてくる人がいて、量も多いため事後チェックの作業が大変で困っています。 アドバイス宜しくお願いします。
>>47 printf('%x', array_sum(array_map('hexdec', str_split($文字列, 2))));
>>47 おお!やるねぇ
いろいろな関数知ってるんだね
回答もらったらいきなり偉そうな態度に豹変ワロタ
感動してテンションあがっちゃいました。
感動はするけど感謝はしないか。 もう二度と来ないでね。
ID出してないやつに答えるのが悪い
そう、答えるやつが悪い
まんこ
夏だな。
59 :
nobodyさん :2008/07/20(日) 16:28:33 ID:FzqmKs0c
60 :
nobodyさん :2008/07/20(日) 17:29:05 ID:p4V1WPS4
ダイアログ一発で複数ファイルを選択してアップロードするのってマトモなのだとやっぱSWFUploadしかないのかなぁ。 これ時々動かない時があってダルい。
phpでおk
62 :
nobodyさん :2008/07/20(日) 18:20:22 ID:AgdzipKA
環境面でPHPを高速に動かすチューニングについてお手本はありますか?
PEARのMDB2のプリペアドステートメントで格納されたテキスト(例)を、 stripslashes関数で取り出す、ってのは作法的にどうなんでしょうか? もっと正当なやり方とかあるんでしょうか 例) <img src=\"images/example.jpg\" />
何を言ってるのかわからん
勉強してきます
俺の彼女がphpやっているって言ったら、 いやらしい想像をしたらしく、 プチ喧嘩になってしまった。 笑ってやってください。
今一番あついフリーのブログってどこ?なんか新しい事できたりして
>>69 アメブロ
芸能人と直接チャットができる。
>>70 アメーバ躍進の理由はそれか( ̄ω ̄)
センキュ
全く関係ねえ話するな社員の宣伝乙
Livedoorブログの社員必死www
74 :
nobodyさん :2008/07/21(月) 22:38:27 ID:L5j6+omj
アップローダを作っているのですが、アップロード時にDLパスワードを設定して
そのパスワードを入力しないとDLできないようにしたいのですが仕組みがわかりません
アップロードされたファイルに直接アクセスされてもDLパスワードを要求できればいいんでしょうけど・・・
うpろだ.org(
ttp://www.uploda.org/ )さんところみたいなのが目標です
アドバイスよろしくおねがいします
保存先をそもそもアクセス不可能にしたり、ファイルをパスワードでスクランブルするとか
というかファイルの拡張子を実行形式のものに変えれば十分だな
いやドキュメントルート外に置きゃ済む話だろ・・・ むしろ公開したくないものを公開場所に置くのがおかしい
78 :
nobodyさん :2008/07/21(月) 23:23:36 ID:9kbQKGjb
readfileってファイルロックしてしまうんでしょうか? 携帯で動画を出力する時につかってるんですが、同時アクセスがあると 先に読み込みを始めた方しかDL出来ません。 他にはfilesizeも後の方は失敗します。 回避する方法って何かないでしょうか。
$aaa = array(1,2,3); test(); function test() { print_r($aaa); } こうしても何も出力されないんですが、もしかしてfunction内にはデータが持ち込まれてないんでしょうか?
うん function test() { global $aaa; print_r($aaa); } にしてみ
81 :
たまき :2008/07/22(火) 08:21:44 ID:XjAln+x8
サイトのトップに 『現在今★人閲覧しています。機種はDoCoMo<BR>AUです』 みたいなのを表示させたいのですが、どうしたらよいのでしょうか…
82 :
nobodyさん :2008/07/22(火) 09:10:24 ID:aQ5G/uBX
そんな関数あったっけ?
ユーザエージェント取得
85 :
nobodyさん :2008/07/22(火) 10:49:54 ID:rL1pjvb8
sendmailに対してメールを送信し、 その内容をaliasesでPHPに飛ばして処理させるスクリプト作成していますが 〜〜メールの内容〜〜 From *****@****.ne.jp Tue Jul 22 10:07:12 2008 (中略) Date: Tue, 22 Jul 2008 10:07:11 +0900 Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="-----=_NextPart_30836_34884_38932" -------=_NextPart_30836_34884_38932 Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit 内容内容テストテストテストテストテスト -------=_NextPart_30836_34884_38932 Content-Type: image/jpeg; name="080711_1916~0001.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="080711_1916~0001.jpg" /9j/4QHsRXhpZgAATU0AKgAAAAgACgEOAAIAAAARAAAAh(略) 〜〜〜〜〜〜〜〜〜 PHPで今受け取れているのが上記の様なテキストです。 正規表現でFromやTo、Subjectなどは取り出せましたが 本文と添付ファイルを取得する最適な方法は何でしょうか?
PEARやフレームワークのライブラリを使う
>>86 やはりPEARですか
どのPEARが一番軽くて良いでしょう?
Mail_mimeDecode というのを見つけましたが
ライブラリってのは一長一短。 「一番」とか「最適」なんてのは、適材適所で使う単語。
>>89 だから>87は>85の用途での「一番」を聞いてるんだと思うけど。
あなたの言いたいこともわかるけど、今回で言えばその指摘は的外れじゃねーか?
91 :
nobodyさん :2008/07/22(火) 13:44:58 ID:kxanaLkk
$xxx =& DUMMY::factory(); $yyy =& $AAA->test(); この「=&」ってどういう意味ですか?
簡易FAQの4に追加したほうがいいんじゃないかと思うわ
94 :
nobodyさん :2008/07/22(火) 14:11:28 ID:kxanaLkk
95 :
85 :2008/07/22(火) 14:35:28 ID:???
96 :
nobodyさん :2008/07/22(火) 16:13:30 ID:tlpgR1UJ
現在開いているページのタイトル(<title></title>の間)を取得するには、 一旦fopenでページを読み込んで正規表現で抜き取るか、 Javascriptのdocument.title以外に方法はありますか? 出来ればPHPのみで出来ればと思います。
>>96 「現在開いているページ」?
それって今処理中のぺーじだろ?
98 :
nobodyさん :2008/07/22(火) 16:29:29 ID:aQ5G/uBX
できないんじゃないかな? Javascriptでやったほうがよいと思われ
あなたもアダルト動画サイトを運営しませんか? 動画検索ロボットが毎日動画を自動収集!! アクセスアップ間違いなし。 もちろん海外のサーバーなので違法性も一切ありません。 完全無料!!いくらでも動画サイトを作成できます。
PHP全く知らないんだけど、
<?php
include './hoge.html';
?>
ってのをHTMLに組み込んだとき
hoge.htmlよりも下層のファイルからhoge.htmlに記述してるリンクを
うまく読み込めなくて困ってる
ttp://renlit.sakura.ne.jp/dunamis/ で、左側のメニューがindex以外でうまく動いてくれない
助けてエロイ人
103 :
102 :2008/07/23(水) 00:50:46 ID:4OGKT8Zy
ごめん、ageてなかった
/dunamis/top.phpでおk
105 :
102 :2008/07/23(水) 01:21:02 ID:4OGKT8Zy
>>104 ダメみたい。
で、index.phpと、dungeon/top.phpに埋め込みの所、コメント入れてみた
読み込む方のHTMLファイル晒したほうがいいの?
/dunamis/dungeon/top.php
107 :
102 :2008/07/23(水) 01:25:33 ID:4OGKT8Zy
情報小出しになっててごめんなさい dungeon/top.php から、ダンジョン情報(同じページ)クリックしてもうまく動かないって意味
だからメニューのリンクを
>>106 にしとけばいいじゃん
109 :
102 :2008/07/23(水) 01:52:35 ID:4OGKT8Zy
できた ここ数日悩んでたんだ〜 回答くれたエロイ人(達?) 本当にありがとうございました
これPHP関係あんの?
111 :
nobodyさん :2008/07/23(水) 09:49:41 ID:9g9C5JRB
PEAR::Pagerで、A.phpに使ってからB.phpに使うと、 B.phpでのページ移動時に、A.phpのページが表示されてしまいます。 インスタンスを別に生成しても同様の症状が出ます。 Pagerのセッションは、エラーが返ってきてしまい使えません。 何とか対応策は無いでしょうか?
内容がよく分からんけどPagerに読み込んだ配列はA.phpの最後で破棄してる?
113 :
111 :2008/07/23(水) 10:05:57 ID:???
>>112 pagerに読み込んでいる配列は、A.php、B.php共に同じものです。
よって廃棄(初期化?)はしていません。
どういう仕組みになっているのか、
Pagerのソースを読んでも理解できないのですが、
B.phpでのページ移動時に、A.phpそのものが表示されるのです。
A.php
こんにちは
<<PREV 1 2 3 4 5 NEXT>>
B.php
こんばんは
<<PREV 1 2 3 4 5 NEXT>>
B.phpの2ページ目以降をクリックすると、「こんにちは」のページが出てしまうのです。
>>113 何をしたいスクリプトなのか目的がさっぱり分からないが
GETで値渡してないとかキャッシュとか
>>110 どちらとも言えないよ。
以上。
はい、次。
何この流れw
>>110 の人気に嫉妬だよ。
以上。
はい、次。
121 :
はいぽん :2008/07/23(水) 15:58:42 ID:kDNByBKw
携帯の個体識別番号を抜き出すスクリプトを考えました。 DoCoMo/2.0 SH903i(c100;TB;W24H12;ser000000000000000;icc000000000000000000000F) これは考えられました。 $ua = 'DoCoMo/2.0 SH903i(c100;TB;W24H12;ser000000000000000;icc000000000000000000000F) '; if(preg_match("/^DoCoMo\/2\.0\s([0-9a-zA-Z]+)/",$ua,$match)){ $kisyu = $match[1] } echo "携帯の機種".$kisyu; とすれば、SH903iと出力されよかったのですが、 serの部分を抽出しようと考えましたが、わかりません、教えてください この状態で、
122 :
はいぽん :2008/07/23(水) 15:59:50 ID:kDNByBKw
どのようにすればよいか教えてください。 2レスになってしまってすいません、
まずserの条件を日本語で書いてみる
124 :
はいぽん :2008/07/23(水) 16:18:24 ID:kDNByBKw
条件と言うより、 'DoCoMo/2.0 SH903i(c100;TB;W24H12;ser000000000000000;icc000000000000000000000F) これから ser000000000000000 を抽出したいのです。
わからん、、、、 serで始まって数字がn桁あって、セミコロンで区切られてるとこまで?
126 :
はいぽん :2008/07/23(水) 16:33:24 ID:kDNByBKw
取得したいのは serでは始まって、セミコロンで終わるまでの文字列です。今回ならば ser000000000000000
/ser[0-9]+/
何でもPEARで片付けろって所がこのスレの悪い流れだな
move_uploaded_file でアップロードファイルを特定のフォルダに 移動したいんですがPermisionDenyでエラーになります。 移動先ディレクトリの権限はもちろんチェックしていて 777にしてるんですが... 同じスクリプトで別のディレクトリ(パーミション777)を指定すると問題なく アップロードできちゃったりするんですが、ファイル書き込みのpermision deny のエラーの場合って対象ディレクトリのパーミション以外になにか設定で 制限かけられてる可能性があったりするんでしょうか? 環境は、 OS:CentOS4.6 PHP:4.3.9 (cgi) AdobeのFlashMediaServerというのを入れておりまして、ストリーミングの ソースとなる動画ファイルを、FlashMediaServerの特定ディレクトリに 動画ファイルを置こうとして発生しているエラーです。
>>130 エラーになるディレクトリの所有者・グループが違うんじゃね
>>131 オーナー/グループはapache.apacheにしております。
メディアサーバの仕様で、デフォインストール時にはnobody.nobodyがオーナーでした。
パスの途中のディレクトリのオーナーはnobody.nobodyになっております。
これってなにか影響しますかね…
アップ出来るディレクトリと出来ないディレクトリで所有者が違うのであれば それが原因である可能性は高いな
セーフモード?
777ならそのディレクトリ自体の所有者は関係ないと思うな。 othersのrwxが全部立ってるわけだし。 そのディレクトリに到達するためのパスの途中のディレクトリの どこかでxが落ちてるんじゃない?
>>135 x落ちてませんでした;
試しに、execでls -l を実行してみたんですがそれは通りました。
おなじくexecで、touchも試してみたんですがpermision denyでした。
実はSE Linuxでそういうポリシーが設定されてるとか??
138 :
130 :2008/07/23(水) 19:05:08 ID:???
ふむー SELinuxですかー メディアサーバ含めもうちょっとその辺調べなおしてみますー レスありがとうございました。
セーフモードはどうなんだよ
権限apacheじゃなくてユーザじゃないとだめなんじゃね
141 :
nobodyさん :2008/07/23(水) 22:11:08 ID:7ExAaWOD
PHPでの円画像の描画について質問です。 imagefilledarc($image, 100, 100, 200, 200, 0, 180, $blue, IMG_ARC_PIE); imagefilledarc($image, 100, 100, 200, 200, 180, 360, $green, IMG_ARC_PIE); こうすると、半分同士塗られた円が出来るのですが、 上下の塗りになっています。 これを左右の塗りにするには、どういう設定の仕方をするのでしょうか?
使ったことないから知らんけど ぱっと見た感じ、6番目と7番目の引数に角度を表してそうな値があるから imagefilledarc($image, 100, 100, 200, 200, 270, 90, $blue, IMG_ARC_PIE); imagefilledarc($image, 100, 100, 200, 200, 90, 270, $green, IMG_ARC_PIE); とか設定すればいいんじゃない
143 :
141 :2008/07/23(水) 22:59:47 ID:???
>>142 出来ました。角度を計算して表示する必要があるみたいですね。
計算式をまた考えます。ありがとうございました。
>>142 嫌なら無理強いしないが、マニュアルって便利なものもあるんだよ・・
一応、マニュアルには目を通していますが・・。
0と180をみて角度だって想像をつけて、 その数値を変えて試してみたりできないようなら、止めたほうがいいよ、センスないから。
角度の事を分かった上での質問ですが・・。 センス無くてすみません
〜ですが・・・なんだよwwwwwww
149 :
nobodyさん :2008/07/24(木) 08:06:20 ID:oa2Bcwyz
sort, natsort の質問ですが、 $files = array( 'Hoge/Hoge', 'Hoge日本語', 'Hoge', ); のようなものがあったときに、 sort($files); とすると、日本語の先頭バイトが / よりも文字コード的に先の場合 'Hoge', 'Hoge日本語', 'Hoge/Hoge', とソートされますが、ディレクトリ階層を表現したかった、つまり、 'Hoge', 'Hoge/Hoge', 'Hoge日本語', となってほしかったので、 $files = str_replace('/', "\0", $files); とヌル文字に置換してから sort した所、sort では期待通りいきました。 ところが、natsort ではうまくいきません。何か手はないものでしょうか?
150 :
nobodyさん :2008/07/24(木) 08:10:39 ID:oa2Bcwyz
長くなったので、分けますが、natsort では 'Hoge', 'Hoge日本語', 'Hoge\0Hoge', のようになり、変わらずです。上手い方法が見つかったと思ったのですが・・・。
151 :
130 :2008/07/24(木) 09:19:30 ID:???
>>139 セーフモードではなかったです。
ところでセーフモードの制限でのエラーでもPermision Denyって出るんですか?
やってみりゃいいじゃないか
外部コマンドのtouch呼び出して書けないんだから PHPのセーフモードは関係ないと思われ
154 :
130 :2008/07/24(木) 10:11:01 ID:???
解決しました! 原因は137の御指摘の通りSELinuxで何かしらの制限がかけられていたようです。 (おそらく、httpからのファイル操作では /var/www/*** 以外に書き出しが出来ない、 みたいな制限かと)。 とりあえず一時的にSELinuxの動作モードをPermissiveにして試してみたら 問題なくファイル移動できました。 設定方法等詳細調べてやりなおしてみます。 結果的にスレ違いな原因でスレ汚し失礼いたしました。
155 :
nobodyさん :2008/07/24(木) 21:08:45 ID:YKiKdpbn
メタ検索を作りました。
<?php
if(!$_POST['engine']==""){$sh = urlencode($_POST['s']);
switch($_POST['engine']){case "Google": $url="
http://www.google.co.jp/m/search?id=&ie=Shift_JIS&merstrict=chtml&eosr=on&q= ";break;}
header("Location: ".$url.$sh);
}
?>
<html><head></head><body>
<form action="a.php" method="POST">
<input type="text" name="s" size="20"><br><select name="engine">
<OPTION value="Google">Google</OPTION></select>
<br><input type="submit" value="検索">
</form></body></html>
urlencodeしているのに、
携帯だと文字化けしてしまいます。
PCでは正常に機能します。
どなたかわかりますでしょうか?(´;ω;`)
>>155 試してないけど、出力エンコーディングのパラメータ
&oe=Shift_JIS
を$urlにくっつければいいんじゃないかな
157 :
155 :2008/07/24(木) 21:26:51 ID:YKiKdpbn
とりあえず言われるがままに入れてみます。
158 :
155 :2008/07/24(木) 21:34:47 ID:YKiKdpbn
ダメでしたorz 同じく検索ワードが文字化けています。 PCでは正常に動作するのですが… 何故携帯だとダメなのでしょう。それさえわかりません。 これに2日も悩むのは私くらいのものでしょうねorz
160 :
155 :2008/07/24(木) 22:27:05 ID:YKiKdpbn
headerで送ってみ
162 :
155 :2008/07/24(木) 22:37:55 ID:???
header("Content-Type:text/html; charset=Shift_JIS");
164 :
155 :2008/07/24(木) 23:27:16 ID:???
<?php
if(!$_POST['engine']==""){$sh = urlencode($_POST['s']);
switch($_POST['engine']){case "Google": $url="
http://www.google.co.jp/m/search?id=&ie=Shift_JIS&merstrict=chtml&eosr=on&q= ";break;}
header("Content-Type:text/html; charset=Shift_JIS");
header("Location: ".$url.$sh);
}
?>
<html><head></head><body>
<form action="a.php" method="POST">
<input type="text" name="s" size="20"><br><select name="engine">
<OPTION value="Google">Google</OPTION></select>
<br><input type="submit" value="検索">
</form></body></html>
こういうことですよね?
駄目でした…。私には解決策が全く解りません。
headerって先頭でやらなきゃいけないんじゃないっけ
166 :
155 :2008/07/24(木) 23:44:38 ID:???
>>165 「<html>他の記述より」ではなかったでしたっけ?
何よりも先にですか?
だとすると$url.$shの処理自体ができませんね。。。
何故なんだ。。。
167 :
155 :2008/07/25(金) 00:09:28 ID:???
すいません、不安なのでageて寝ます。 明日には回答がありますように・・・
>>155 Locationでリダイレクトしてるから
Content-Typeの指定は無意味じゃないかな
適当なキーワードで検索してから、
携帯でURL表示させてここに張ってみて
面倒だったら全部じゃなくてq=〜だけでもイイから。
たぶんキーワードのエンコーディングが
Shift_JIS以外になってるんじゃないかなぁ
じゃ、俺も寝る。
今日は地震が来ません様に...ナムナム...zzz
この行でphp終了!phpじゃないhtmlも転送しない! 当然phpの命令も実行されない! と、したいのですが、どうしたら良いのですか? header("Location:".$_SERVER['PHP_SELF']);//postを消す でも実行や転送はされているみたいなのですが
exit(); じゃダメ
exitでした その他の基本モジュールのその他にあった…
$_POST['s']のエンコード確認しろよ
Wikipediaのように入力された文字をファイル名にしたいのですが urlencodeをするだけでいいのでしょうか?
俺いつも exit; って書いてるんだけど exit(); って書かなきゃ駄目? どう違うの?
175 :
nobodyさん :2008/07/25(金) 11:25:43 ID:ihOrMOFR
escapeshellcmdに日本語を含む変数をぶちこむと 日本語だけが消えるようになってしまったんですがなにか仕様変わりましたか? ちなみにCentOS4.6で運用してるんですが 7月18日にphp関連のパッケージが4.3.9-3.22.12にアップデートされていました。 7月14日の時点ではescapeshellcmdを使用しているスクリプトも問題なく動作していたのに…
>>176 Shift-JISなんて極力使わないほうがいいと思うけど。
携帯だとだめなんだっけ?
後半部分、何が分からないのか分からないのでもっと詳しく。
178 :
175 :2008/07/25(金) 14:02:05 ID:???
escapeshellcmdじゃなくてescapeshellargでもダメだったんで 自作しようかと思うんですが、 $str=escapeshellarg($str); でエスケープするのと $str="'".ereg_replace('\'','',$str)."'"; でシングルクオート消してからシングルクオートで囲うのとでは セキュリティ的に違いがありますでしょうか?
>>177 もうEUC-JPに対応しない携帯は無視していいレベル
iPhoneみたいな舶来物は知らんが
preg_match()で、 最後尾から検索するにはどうすればいいのですか?
181 :
155 :2008/07/25(金) 15:23:24 ID:???
>>177 Shift_JISな
Shift-JISなんて文字コードは存在しない
>>182 それはHTTPヘッダの記述上の話だろ・・・
185 :
nobodyさん :2008/07/25(金) 22:27:20 ID:B5N4x1kS
予約語 var の意味がよくわかりません。 宣言無しで普通に動作するんですが、これってPHPが自動で補完してるんですか?
php4時代の遺物だから気にしなくていい
>>185 「php var」でググったらまんまあった
189 :
nobodyさん :2008/07/25(金) 23:19:44 ID:UqlR9HfL
PHP初心者です。 zend frameworkのドキュメントを見ると、 $authAdapter->setTableName('users') ->setIdentityColumn('username') ->setCredentialColumn('password'); のような書き方を見かけるんですが、これは2行目と3行目の$authAdapterを省略して、 3つのステートメントを書いているのでしょうか? また、改行せずに1行にまとめても動作するようなんですが、メソッドチェインとの区別が つかないような気が… これについてPHPのオンラインマニュアルを見たのですが、見つからなかったです。
メソッド名で動作が推測できそうな気がするが・・・・・ オブジェクトのメソッドの返値のオブジェクトのメソッドの返値のオブジェクトのメソッドを呼んでる 改行はスペースと区別されない
class Hoge { var $a; var $b; function Hoge($a, $b) { $this->a = $a; $this->b = $b; } } class Hoge { private $a; private $b; public function __construct($a, $b) { $this->a = $a; $this->b = $b; } }
>>190 ありがとうございます。
>>189 の3つのメソッドをよく見てみると、return $thisとなってました。
メソッドチェインなんですね。どうもです。
PHPの勉強を始めて一ヶ月になります。 本を四冊くらい読み、最近はフレーームワーク(ZEND)を一応理解するところまで行きました。 大雑把なプログラミングはできるかなと思います。 でも、それはちゃんとしたものとは言いがたいでしょう。 実務レベルの細やかなテクニックを学ぶにはどうしたらいいのでしょうか。 出来れば、ソース丸見えで赤面するくらいの、参考になるサイトを教えてください。
>>190 Zend Frameworkのソースは読んでないけど、Zend_Auth_Adapterの各メソッドが
Fluent Interface的に使えるようにreturn $this;している予感。
>>195 ちょっと違う気もしますが、ありがとうございます。
newでメソッドを繋げられないのに怒ってる人もいるよね
preg_match_allで全部取って最後から見れば?
>>200 全部とると時間と負荷がかかるので。。。
じゃ検索文字列と検索語を反転だ!
>>202 アイデアすごいですけど、
それでも負荷があるじゃないですか?
逆立ちしてみたらいいんじゃないかな?
206 :
nobodyさん :2008/07/26(土) 22:09:48 ID:NARGMpiL
今、昔の偉人の生年月日を扱う処理をしていますが、、 世界中のパソコンが1900年より前の日付を扱うことが禁忌になっているため、 処理ができません。 そもそも時間は、普遍的なものでありプログラミング言語も含めたパソコンの仕様がこれに手を加えることこそ禁忌だと思います。 実装が出来ないので大変困っているので、来週経済産業省に対して警告するつもりですが、 トリッキーな方法でもよいので、回避する方法はないでしょうか。 phpだけが悪いわけではありませんが、phpが悪くないわけでもありません。
Pear::Date使う
経済産業省に警告して、その結果を報告してくれ。 いや、報告しろ。命令だ。
209 :
nobodyさん :2008/07/27(日) 03:54:29 ID:P7Lb4B4C
<?php require_once("abc.txt"); ?> と書くと、abc.txtの中身が全部表示されますよね? 全部じゃなくて、上から5行くらいだけ表示したいのですが そういう場合はどうすればいいのでしょうか? よろしくお願いします。
>>209 abc.phpにして出したい部分だけechoすれば良いんじゃない
必要ならifとかで
なんだか色んな事を基礎からやったほうがいいと思わせる質問
>>212 こりゃカオスだな
昔の暦は正確に1年が何日か把握してなくてずれまくりだったから
正確に今日から何日前かなんて無茶だな
実際に仕事でやるプログラムって、何行くらいなんですか? カートとかなら一日で作れちゃうじゃないですか。 PHPでの仕事って、どういうことやるんでしょうか?
入門書に載ってるカートと 実際に運用されてるカートは別物
実際に運用されてるカートってどんなもんなんですか? あと、何行くらい?
行数関係ないだろ
言われてみればそうですね。 入門書に載っている、データベースに関するモデルつくってセッション使ってアクションしてビューみたいな 単純なカートを1としたら、実際に運用されているカートの複雑さ、難易度はどのくらいですか?
君は今はちゃんと基礎を勉強しろ
本は6冊くらい読んだんですけど 何をどう勉強すりゃいいのかわかんないです。 みなさんはどうやって勉強されたんですか?
それ読んでない。ちゃんと理解しろ。あと目標をはっきりさせろ。
うーん。 例えば、載ってる言葉は理解してるし、同じプログラムを再現することはできるんですよ。 PEARライブラリとかZENDフレームワークとか、SMARTYなどの 大まかな流れはわかるんですけど 細かいことを書いてあるわけじゃないので 一体自分に何が足りないのかがよくわからない。 書いてあることはわかる、書いてないことがわからない。 つまり、目標を立てようにも、目標となるものを思い起こす手立てがないわけです。 だから、実務レベルのカートというものを教えてもらって、目標にしたいわけです。
何冊本を読んでも中級なんだろうな。 長い経験で得たものとか本にするのは面倒だし だってそんな売れない本つくらないし。 俺は趣味でこのスレ見てるだけだからそれでいいけど。 仕事って仕事しないと判らないよな。 仕事っていかに楽をして客から金を出させるとかそういうことじゃない。 数人が数日働けばすく何十万って金が得られないと赤字だし。
なるほど。 考えさせられますね。 実務レベルの知識は実務で身につけるしかないし 手の抜き方と力の入れどころのバランス感覚も、仕事をしてみないとわからない。 経験に勝る勉強はなしって、昔から言いますもんね。 自分でコツコツ何か作ってみて、物足りなくなったらまた来ます。 ありがとうございました。
他の言語で経験を積め。 そうすれば自分の非力さが理解できる。 PHPは糞だと気づく。PHP一本の自分が糞だと気づく。 そもそも本を買うやつはバカ。俄者。
その程度のレベルで実務を語るな馬鹿者
>>225 本は糞っていうけどさ
意外と本見るといろんな人の考え方がわかるから楽しいよ
寝転びながら気楽に読めるもの楽しいからね
駆け出しのフリーランスだけど、PHPは技術じゃなく納期までにやり遂げることが大事なんだなと思った
技術なんて二の次
あとは仕事のコネかな?
うん、ブラックだね。よくわかるよ。
昨日、ちくわ喰ったら下痢しちゃってさぁ
> 技術なんて二の次 ここまで素直だと逆に良いと思う
本を読まないと、時間がいくらあっても足りないよw
PHP自体を否定する奴は何でこのスレ来てんのさw
否定するためにだろ文盲か
日曜日ぐらい休めよw
毎日がエブリディです
毎日が日曜日
日曜日が毎日
238 :
nobodyさん :2008/07/27(日) 16:32:39 ID:um099hpf
そんなとこのコードなんて参考にすんな
241 :
nobodyさん :2008/07/27(日) 16:58:17 ID:um099hpf
>>241 俺のはうまくいった
どっかで全角入ってる&エラー非表示とかじゃない?
って良く見たらURLが.htmになってるんだが htaccessでhtmでPHPが使えるように設定してあるのか? 基本的にPHPは.phpじゃないと動かないぞ
>>241 PHP自体が動く環境になってないじゃんw
245 :
nobodyさん :2008/07/27(日) 17:08:05 ID:um099hpf
>>243-244 XAMPPで自動設定してくれてるものと思ったのでインスコしてそのままでs。
というか、拡張子php変えたら動きましたorz
いらん手間かけさせてごめんなさい。
XAMPPなんか使ってるから・・・
XAMPPとかって問題じゃないだろ、これはw
ふーむ。phpをやる気はあるのかよwwwwwwww
なんで?
.htmで動くようにするって話で、環境構築方法は関係ないと思うが
htmで動くようにすることそのものが環境構築方法じゃねぇかw
いや、XAMPPは最低限のPHPの開発環境を整えるもんだろ .htmでPHPを動かすのは特殊だからまた別途で設定するのが普通だろ それをXAMPPをあーだこーだ言うやつってなんなの?頭悪いの? それとも何か?デフォルトで.htmでPHPを動かせるように設定しろってのか? そっちのほうが特殊すぎるだろ、アホじゃねーの
普通の方法だと拡張子の設定は当然自分で意識してやるじゃん。 .htmをphpで動かしたければ自分でそうする。 しかし245はXAMPPを使っていたのでそれをしなかった。 自動で「.htmがphpで動くようになっている」と思っていた。 1.これが「XAMPPのせい」でないとする理由は? 2.「XAMPPを使っていなかったらこんな問題が起きなかった」ことが間違いとする理由は?
04webserver+pphpが最強だと何度言ったら…
>>254 知っているから、設定だと思うが
初心者は拡張子設定なんかしない
初期設定のまんまで動かすから、結局同じ
<IfModule mime_module> AddType application/x-httpd-php .html </IfModule> これで普通は逝ける筈〜
258 :
nobodyさん :2008/07/28(月) 10:58:18 ID:apihHBHU
わけあって、PHPで動的にメソッドを定義したいんだけど、できるかな? class Foo { function foo { echo "Foo¥n" }; function bar { echo "Bar¥n" }; } を class Foo { $arr = array('foo'=>'echo "Foo¥n";', 'bar'=>'echo "Bar¥n"'); foreach ($arr as $name=>$body) { define_method($name, $body); } } のようにしたいんだけど、できますか?
どういうわけが?
>>258 動的に作りたい関数を定義したファイルを作る
これをincludeする
使う
定義したファイルを消す(お好みで)
261 :
nobodyさん :2008/07/28(月) 12:42:12 ID:apihHBHU
>>260 えー、そんな方法しかないんでしょうか。
それはちょっとなー。
263 :
nobodyさん :2008/07/28(月) 12:49:05 ID:dgDJYOWr
AというブラウザからBというブラウザを新たに開いて、 Bをボタン等で閉じたときにAを更新するにはどうすればいいでしょうか 宜しくお願いします
266 :
nobodyさん :2008/07/28(月) 13:12:06 ID:apihHBHU
>>265 うひょー なにこれ、すげー
ありがとうございました
>>258 > わけあって、PHPで動的にメソッドを定義したいんだけど、できるかな?
名前が変だがオーバーロードを使う。
あるクラスのメソッドを呼び出したとき、
そのクラスにメソッドがあれば、通常通り呼ばれ(当たり前)
そのクラスにメソッドがなければ、エラーになる前にコールバックが呼ばれる。
そのコールバックで処理をすれば、あたかもクラスにメソッドがあるかのよう。
>>267 >そのクラスにメソッドがなければ、エラーになる前にコールバックが呼ばれる。
ここをくわしく
つマニュアル
全部Python化完了。スッキリしたぁ。
PHP作るの手伝ってくれる方いませんか?
いいよ
じゃあ完全なオブジェクト指向を実装したPHPにしようぜ
空気よめずに申し訳ないですが、今日からPHP始めた俺様が 下らねぇ質問ハンターのみなさまに質問です。 1. fsockopen -> echo fgets() でhtml表示 2. 上記fgets()の出力先はtableなどの別枠内。 例えば1.でググルのhtml取得、2.の枠内でググル検索する、このまま永遠に 2.の枠内をブラウザ代わりに使って検索、検索、検索、エンドレス。 ただし 2.エンドレスの際には1.の手順を都度繰り返しhtmlを表示するように したいけど 2.のエンドレスをどんな作りにしたらいいのかで悩んでます。 簡単に言うと翻訳サイトやプロキシみたいな状態にしたいのです。 (てっぺんのURLの配下として別のURL上のhtmlを表示する) HTTPリクエスト・レスポンスヘッダらへんがキーポイント?と 妄想してますが、よいアイデアがありましたら教えてください。
聞きたいことを3行にまとめて
>>273 必要なのはそんな枝葉じゃなく、変数のレキシカルスコープとcreate_function()じゃないもっと直接的な表現。
レキシカルスコープってどういうときに使うの?無知ですまんが。
278 :
nobodyさん :2008/07/29(火) 13:42:35 ID:AS12gztS
$str = 'あいう189えお256-かきく5'; 上記の$strの中から数字のみ取りだすにはどうすればよいですか? $str = '1892565'; ←このようにしたいです。
279 :
278 :2008/07/29(火) 13:47:16 ID:AS12gztS
すみません事故解決しました
あっそう
質問者の礼儀、、つーか回等側に回ったこと無いんだろうなあ。
PHPでCSV内のデータを検索したいのですが、何かサンプル書いていただけると幸いです。
>>283 ここはPHPの質問をする場所です。
宿題は自分でやってください
>>283 中途半端な糞コードをくれてやんよ
後は自分でなんとかシナ
$array = file_get_contents("hoge.csv");
$result = array_search("検索文字",$array);
286 :
285 :2008/07/29(火) 17:32:34 ID:???
適当すぎて間違ってたw $handle = fopen("hoge.csv", "r"); $i = 0; while ($handle and ($value = fgetcsv($handle, 2000, ",")) !== FALSE) { if ($value == "検索文字") { echo $value; } ++$i; } fclose($handle); これでいいか?
287 :
nobodyさん :2008/07/29(火) 17:49:54 ID:Po2hd/3y
年月日が欲しいときなんかに list ($year, $month, $day) = explode('-', date('Y-m-d')); みたいな事をしてるんだけど、他に良い方法無いかな?
getdate
>>287 dateで公式マニュアルとか検索すると
日付・時刻 関数の一覧に簡単にたどり着けるよ
言語毎に日付取るの何だっけ?とかなるのか面倒なので、おいらは大抵localtime
>>283 fgetcsvでマニュアル検索しろや。
ったくどいつもこいつも下らねぇ質問ばかりしやがって
【PHP】下らねぇ質問はここに書き込みやがれ 71
こりゃいけねぇ、スレタイ通りじゃねぇか
297 :
nobodyさん :2008/07/30(水) 06:05:36 ID:HP8Psezj
質問です String型を短くする場合substrを使いますが float型を短くしたい場合は何を使って縮めればいいのでしょうか? 3.1415926....を3.14にする場合どの関数を使えばよいのでしょう?
299 :
297 :2008/07/30(水) 06:16:54 ID:HP8Psezj
>>298 早速のレスどうもありがとうございます。
mixed argsと書いてるのでfloatでも平気そうですね。
そしてまたまた質問で申し訳ないのですが、
return型がStrigのようなのでparseFloatのようなものはないでしょうか?
よろしくお願いします。
俺だったらround使うけどなぁ
それだと3.15になっちゃう場合もあるにょ
短くしたい場合って大抵四捨五入だろ? まぁceilやfloorもあるし
PHPは暗黙の型変換するからparseとかしなくていいんだけどまあやるとしたら'string'+0とか
304 :
nobodyさん :2008/07/30(水) 12:15:40 ID:JLHPzrod
空文字かどうかだろ
306 :
304 :2008/07/30(水) 12:45:51 ID:JLHPzrod
>>305 空文字かどうかというのは、isset($_post["title"])でチェックするもんだと思ってたんですけども
そのあとの && $_post["title"] もそうなんですか?
notice出したくなかったんでしょ
issetだけで空文字を判断することはできない
309 :
nobodyさん :2008/07/30(水) 13:09:27 ID:8Vu4n542
>>306 !empty($_POST['title'])
これをはしょった書き方だと思います。
中身が空でも、キーがある場合はisset()が真になるので、こうしたチェックをするんです。
310 :
nobodyさん :2008/07/30(水) 13:16:03 ID:Af+1KtEz
issetは定義されているかどうかだけチェックしてる。
$_POST['title']が"false"だと?
true
$_POST['title']が"0"だと?
314 :
304 :2008/07/30(水) 13:49:17 ID:JLHPzrod
なるほど、issetはメモリ上に変数領域が存在するかどうかをチェック (=unsetされてないかどうかチェック?) そのあとの $_post["title"] は、データー存在の有無のチェック (=データ有:tureを返す、データ無:falseを返す !emptyと同意) ・・・というとらえ方ですね。すっきりしたーw ありがとうございました。
$_POST["title"]と!empty($_POST["title"])は $_POST["title"]に文字列0のような空とみなされるものが入ってるとfalseになるよ
>>318 316じゃないがやってみろ
===とかでチェックするのは無しな
>>319 やらなきゃ分からんのか。マニュアル見ればいい。
マニュアル見ての答えが318なら尚更笑える
お前が見ろっつってんだよ知障
何この流れw
けんかするなよ。 おれがマヌアルを見る。
325 :
nobodyさん :2008/07/30(水) 23:04:59 ID:l8kbvEzZ
ある文の中に、特定の文字が何文字入っているか数える関数ってありますか? ありそうなので探したのですが、見つかりませんでした。 for文で一文字ずつ数えるしかないでしょうか。 たとえば、「東京都中央区東銀座」なら、「東」で検索すると二文字あるというようなイメージです。 どうか宜しくお願いします。
327 :
nobodyさん :2008/07/30(水) 23:16:48 ID:l8kbvEzZ
>>326 ありがとうございした!!!
見落としてました。感謝感謝です。
検索 ↓ 400件あった場合 20件だけ表示 ↓ 次へ クエリを使う ↓ ?page=2へ行く 何も表示されない。。。 もうわけわかりません><
お前が何を言ってるのか俺も訳分からない
>>328 page=2でSQLがエラーをはいてないか確認しろ
331 :
nobodyさん :2008/07/31(木) 07:02:15 ID:Dk1YGUwi
FreeBSD7、php5.2.6使ってます php.iniの設定はしたのですが、 〜.dllがloadできないと怒られます 〜.dllを探してみたところ見つからないので、 たぶんこれが原因だと思うのですが、どうすればよいか分かりません どなたかアドバイスいただけないでしょうか
ソース落としてリコンパイル〜
333 :
nobodyさん :2008/07/31(木) 09:29:30 ID:DMpgDcRT
HDDの中を見ていたら 22文字の暗号された英数字が見つかりました 何か気になって仕方ありません 昔暗号化した記憶はあるのですが、その後は不明です どのようなソフトで暗号されたかわかりますでしょうか? 手がかりは全て22文字という事だけです
>>318 >それはfalse
書き方が紛らわしい
同意しているのか否定してるのか、どっちなんだよ
335 :
nobodyさん :2008/07/31(木) 10:30:14 ID:X6YvYw8a
定数とスタティック変数の違いってなんでしょうか?またどういう場合で使うんでしょうか? 関数で呼び出した変数の値を保持させたい場合であれば、定数でやってもいいように理解してるんですが どうかよろしくお願いします
スタティック変数は変数だけども定数は定数
「定数」って言葉を理解していないんだろうな。 初心者に分かりやすく書くと、 ・定数:一度定義したらプログラム実行中は書き換えられない ・変数:実行中に何度でも変更可能 あとは使い方次第。どうぞ。
>>335 勘違いしてるみたいだから、ググってその二つの説明をよく読んだほうがいい
ここで説明されるよりわかりやすいところがいくつも見つかるよ。
いやマニュアル読めよ
今PHPとMYSQLのマニュアル買ってきて読んではいるのだが頭に入らない。 どのような勉強方が効率的で頭に入るのか教えてください。
PHPとMySQLを使って何か作ってみる。
とりあえず基本となるのは掲示板かな。 名前・本文をフォームで投稿し、それが表示される流れまでを作成してみる。 次に文章の色が変更出来る様にとか、削除パスで書き込みを削除出来る様にするとか、 過去ログを見られる様にとか、二重投稿を禁止するとか、 付加機能をどんどん付けていく。 そうやって慣れていったな俺は。
344 :
335 :2008/07/31(木) 11:26:12 ID:???
皆様回答ありがとうございます
一応、マニュアルと大垣靖男さんのはじめてのPHP言語プログラミング入門は読んでみました
>>337 スタティック変数を使う目的は変数の値を保持させたい、つまり変数の値ときですよね
その場合だと定数でもいいんじゃないかと
んんん、ユーザからの入力を受けとって値を維持させたい場合とかで使えますね
できればよく使われる場合、場面を教えていただけないでしょうか
345 :
335 :2008/07/31(木) 11:28:05 ID:???
>つまり変数の値ときですよね 消し忘れました・・・・・・ 連投スイマセン・・・
有名スクリプトのソース見れ
>>344 static変数と普通の変数の区別はついてる?
348 :
335 :2008/07/31(木) 13:08:54 ID:???
>>347 変数:常時変更可能
スタティック変数:?
定数:値設定後は常時変更不可
んースタティック変数は、定数でも変数でも代役可能な感じですか?
349 :
335 :2008/07/31(木) 13:19:47 ID:???
あーすいません解決しました理解しました・・・・とあるサイトに解説ありましたわ <?php function test(){ $a = 0; $a = $a + 1; echo $a; echo "<br />"; } function test2(){ static $a = 0; $a = $a + 1; echo $a; echo "<br />"; } test(); test(); test(); echo "<hr />"; test2(); test2(); test2(); ?> 再帰関数の使いどころは?と聞きたいところですがまた今度にしますw
何を解決したのか知らんが、 「スタティック関数」と連呼していたのがバカな事なのに気づければ良し。
<?php $P=$_GET["p"]; if($P>0){ $Prev=$P-1; $PrevPage="<a href='weapon.php?p={$Prev}'>前の10件</a>"; } $Size=sizeof($Data); if($Size/10-1>$P){ $Next=$P+1; $NextPage="<a href='weapon.php?p={$Next}'>次の10件</a>"; } ?> <p> 全<?=$Size?>件 | <?=$PrevPage?> <?=$NextPage?> </p> <?php for($i=$P*10;$i<$P*10+10;$i++){ $line=explode(",",$Result[$i]); ?>
PEAR::Pagerつかえ
>>335 static変数はクラスでオブジェクトのプロパティとは別に値を共有する場合に使う
例えばいくつかのオブジェクトがあってもDBの接続は一つでよくて、
それを使いまわしたいときとか
singleton使えよって話だけどな
355 :
nobodyさん :2008/07/31(木) 21:38:39 ID:hFDJvSk0
PHP4xのサポート8/8終了って、まだ情報変わってないの? ほんとにおしましか?
356 :
nobodyさん :2008/07/31(木) 21:47:02 ID:LBsOXYef
おしまいです。
357 :
335 :2008/07/31(木) 21:52:44 ID:???
>>350 よく使う場面をひとつでも上げることができてから言おうねボク(><);
358 :
nobodyさん :2008/07/31(木) 22:05:05 ID:ANn4X+PY
タグが <img src=test.jpg width=100px height=100px /> というふうに=の後が"で囲っていないソースがあるとします。 これをPHPで"を付けるようにする関数はありますでしょうか?
$
>>358 単純に正規表現で置換かスクレイピングで部品ごとにしてから再構成
361 :
nobodyさん :2008/08/01(金) 02:04:59 ID:NVSNXw+7
PHP4サポートおしまい! いまの動いてるアプリどーすればいいんだよホント。トホホ めんどくせーーーーーーーー
8/8に完全終了か そろそろだな
<?php $deta="<html><head></head><body> あああ<font color='#ff0000'>いいい</font>うううえええお </body></html>"; $fpos=strpos($deta,"<body>"); $npos=strpos($deta,"</body>"); $body=substr($deta,$fpos,$npos); echo $body; ?> ↑というテストコードを書いたとします、とすると結果的に’あああいいいうううえええお’が出力されます。 同様なコードで$detaを、別のhtmlに変えて、h4タグだけを出力させるため、 $fpos=strpos($deta,"<h4>"); $npos=strpos($deta,"</h4>");のように書き換えて、コードを実行させると <h4>タグに加えて余分なhtmlコードが付加されてしまいます。 例えば、’<h4>PHP初心者です</h4>あああいいううううえええおおお’という感じです。 原因に、htmlコードにスペースや改行が含まれているからとか、エスケープしなければならない文字が含まれてるとか 考え、テスト用のコードにスペースや改行を加えて実行させたところやはり正常に、’あああいいいうううえええお’が出力 されます。 この差と原因はなんなんでしょうか?
>>363 本当に
$deta="<html><head></head><body>
あああ<font color='#ff0000'>いいい</font>うううえええお
</body></html>";
のときは正常なの?
ブラウザ上の表示だけじゃなくHTMLソースみた?
detaが気になって仕方がない 文字列を抜き出すなら正規表現でやってください
PHP + MySQL についてお知恵をお貸しください(´・ω・`) やりたいこと: LIMIT の部分に PHP からパラメータを割り当てたい。 問題: LIMIT 部分に対してだけエラーが起きてしまう。 WHERE に対してパラメータを割り当ててもエラーにはならない。 以下がコード(一部抜粋)です。 $sql = 'select store_id, store_code from store limit 0, :limit_size'; $st = $conn->prepare($sql); $st->bindValue('limit_size', 5); $st->execute(); $rows = $st->fetchAll(PDO::FETCH_ASSOC); print_r($rows); 以下が発生したエラーです。 PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[4200 ]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right sy tax to use near ''5'' at line 1' in ... 間抜けな間違いをしているのだと思うのですが、 LIMIT でだけエラーが出る理由が分からず…orz
>>366 bindValue で data_type を PDO::PARAM_INT にするとどうか
>> 367 書き込む前に単純なコードにして動作確認後、 DB 接続以外は削除して貼り付けてました。 DB 接続で挙動が変わる話なのでしたら失礼しました。 >> 368 おお!できました! う〜む、型指定しないとダメだったとは…勉強になりました。 ありがとうございました。
実行されたSQLログをはかせれば解決したと思うよ。 多分、「〜limit 0, '5'」になってるから。
$xml_str = join("", file("$serv?query=$query_e&appid=$appid&adult_ok=$adult_ok&similar_ok=$similar_ok&language=$language&results=$results_count&start=$start")); 関数を使って80字ルールに収まるように 書きたいです。一行づつファイルを読んで それを文字列として結合してるから、return で fileオブジェクトを返すとか...phpよくわからんorz
372 :
nobodyさん :2008/08/01(金) 14:44:37 ID:EXnjM6sv
あいうえお\r\nかきくけこ\r\nさしすせそ\r\nたちつてと というデータがあって、さしすせそまでを取り出したいときの方法を教えてもらえませんか
>>371 質問になってないのでやりなおし
>>372 substr
preg_match
file
explode
お好きなものを。
374 :
nobodyさん :2008/08/01(金) 16:35:00 ID:axKZA4yx
PEAR DB+PHPでコンテンツを作成しているのですが、 PHPでHTMLタグを書いてそれをDBに放り込むときに 「'」「"」などを「\'」や「\"」に置き換えたほうがよいのでしょうか?
>>374 プレースホルダー使え。自分でごちゃごちゃやるのはバグの元。
376 :
363 :2008/08/01(金) 17:15:19 ID:???
>>364 >>365 ご回答ありがとうございました。
正規表現とstrip_tags()の組み合わせでなんとかタグを抜き出せました。
377 :
nobodyさん :2008/08/01(金) 17:19:18 ID:g19BqkRU
配列のポインタについて質問なのですが reset ? 配列の内部ポインタを先頭の要素にセットする prev ? 内部の配列ポインタをひとつ前に戻す next ? 内部配列ポインタを進める end ? 配列の内部ポインタを最終要素にセットする という関数が用意されていますが 初期のポインタ位置をセットするにはどうしたら良いんでしょうか?
>>374 汎用ライブラリとか使っててプレースホルダが利用できないときはmysql_escape()とかpg_escape()とか使う。
>>377 初期ってどういう意味、先頭じゃなくて?
380 :
377 :2008/08/01(金) 18:11:52 ID:g19BqkRU
>>379 やりたい事は5つの要素を含む連想配列があった場合に
3つ目の要素から次の要素(4つ目)とひとつ前の要素(2つ目)の
値を引き出したいのです。
>>380 分かりにくいので、その配列の宣言部分を書いてくれ
382 :
377 :2008/08/01(金) 18:22:30 ID:g19BqkRU
>>381 $ary = array("st"=>"aaa","2"=>"bbb","34"=>"ccc","99"=>,"ddd","ed"=>"eee")
という配列があった場合に
$ary["34"] の値からみて
前の値 $ary["2"] と次の値 $ary["99"] を取得したい
色々やってみているけどやっぱりeachで読み飛ばすしかないんでしょうか?
>>380 よーするに
array('りんご' ,'ごりら' ,'らっぱ' ,'ぱせり' ,'りす');
とあった時に当然最初のポインタはりんごから始り、なんらかのループ処理とかするが、
何らかの処理をしていきなりらっぱにポインタを置き、そこからの処理をしたいということだな?
ちなみに答えはわからんw
384 :
377 :2008/08/01(金) 18:26:52 ID:g19BqkRU
>>383 そういうことです
らっぱにポイントを初期セットしたい
>>382 34というキーを発見したら、一つ前に戻って(prev)それから二つ進めば(next * 2)いいんじゃないの?
と試していない思いついた事を言ってみる
なんかもっといい方法がありそうだけど・・
あとデータの形をもっと工夫できないのかな・・
>>385 それだと普通のループ処理になるね
DBでいうとこのインデックスみたいなもんだと思う
たしかにそう言われると指定したキーなり値の位置にセットするってあってもいい気はする まぁ、無いって事はループ処理しろって事だと思うが あるのかな・・
388 :
377 :2008/08/01(金) 19:25:48 ID:g19BqkRU
>>385-387 どうしようも無いようなのでとりあえず
while と each で読み飛ばして取得するようなもので
ごまかしておきました…件数が増えるとorz
>>389 PHPの連想配列には順番あるじゃん...
391 :
夜中に質問すいません :2008/08/02(土) 03:58:45 ID:F4PgkzNb
サーバーが自分の鯖内ファイルすらfile_get_contentsしか使えません
file_get_contentsって下記のように書いて取得してみましたがうまくいきませんでした。
どのように書いてあげればいいでしょうか?
yahooにしてますが、URLは自分のサイト内になります。
<?php file_get_contents('
http://www.yahoo.co.jp '); ?>
echo
>>392 こんな夜中に有難うございましたm(_ _"m)ペコリ
394 :
nobodyさん :2008/08/02(土) 05:53:14 ID:Fpbct2Dc
若干このスレとは違うのかも知れませんが、 ブログ内検索のような検索ルーチンを作りたいと思っています。 こういう事が出来るプラグインや作り方の参考になるサイトはありませんか?
>>394 ブログっていっても色々あるだろ
おおざっぱすぎるんだよ
ていうか多くのブログでデフォルトで検索機能はついてるはずだが
ないならNamazuでも入れときゃいいんじゃね?
最近、Namazu使ってるところ見たこと無いな あれ正直使えないんじゃないかと思うよ
397 :
nobodyさん :2008/08/02(土) 18:21:43 ID:QOTyBDTF
394もうちょっとkwsk
googleでいいじゃん
399 :
◆gw9Vq5kGF2 :2008/08/02(土) 19:03:15 ID:37jLYgzM
連続でデータを送信するプログラムを作っています。 for ($rand=0; $rand<10; $rand++){ $data .= $rand }while($i<$count){ $fp = fsockopen ($host, 80, $errno, $errstr, 30); if (!$fp) { error("接続できません<br>\n");
400 :
◆gw9Vq5kGF2 :2008/08/02(土) 19:04:55 ID:37jLYgzM
} else { // 読み書きのタイムアウト設定 fwrite($fp, "GET" . $url . " HTTP/1.0\r\n"); // ヘッダの終了を通知 fwrite($fp, "\r\n"); // 内容の送信 fwrite($fp, $data); // 内容の終了を通知 fwrite($fp, "\r\n"); while (!feof($fp) && $he != "\r\n"){ $d= fgets($fp, 512); } // ソケットがタイムアウトしたかどうか調べる $stat = socket_get_status($fp); if ($stat["timed_out"]) { echo "timeout"; } // ソケットを閉じる fclose ($fp); $i++; $rand++; } } だいたいはこんな感じで、実際にデータを送信してみました 。 一回目は1で2回目は2...... と、ループの回数だけデータを送信したいのですが、レスポンスには、 555555555 と、5が9回帰ってきます。 これを123456789 とレスポンスがかえってくるようにすすにはどうしたらよいですか?
401 :
nobodyさん :2008/08/02(土) 19:34:24 ID:xYLkDBTE
$data ってのは何がはいってるんだい。インクリメントしてるのは$iと$randのようだが
402 :
nobodyさん :2008/08/02(土) 20:01:05 ID:lDM3zReI
ユーザーフォルダのパスを取得する方法を教えて下さい ユーザーフォルダ php だとphpはurlにばっか引っかかってphp関係無いページもヒットするから使えない
無理
404 :
nobodyさん :2008/08/02(土) 23:20:28 ID:WZrTSOfF
関数から複数の"種類"の値を返却したいのですが、 よい方法はないでしょうか? phpの標準関数をみていると、 このような場合、連想配列に入れて返却して、 受け取り側で、連想配列のキーを元にデータを取り出しています。 ただ、これは受け手側がキーの名前が分からないといけないし、 あまりにも無骨過ぎるので、もう少しスマートな方法がないかと思っています。 # そもそもphpの言語仕様としてjavaにあるようなクラスのpublicフィールドがないために、 # このようなことがおこるのだと思いますが、phpにもそれに相当する機構が欲しいですね。 よろしくおねがいします。
こんにちわ 簡単にデータベース作る方法ご存知じゃないですか? MYSQLとCSVは苦手でして(汗
407 :
nobodyさん :2008/08/02(土) 23:31:18 ID:WZrTSOfF
>>406 Javaの場合には、その実装クラス(implementクラスでも可)に、
pubicのフィールド(クラスの定義済み定数)を書いて、
受け手側は、必ずそのクラスのpublicのフィールを用いて、
必要な値を取得します。
phpのスレでこういうこというのは何ですが、
public、privateの区別もないですし、このようなフィールを定義する
機構もありません。生のリテラルで書けばいいのでしょうけど、
これだと、関数の実装が変更された場合にエラーが見つけにくくなります。
# Javaであれば、このような場合、コンパイルエラーが発生して実行できません。
phpはjavaにはない便利な関数があって、生産性が良く気軽に使いやすいですが、
コンパイル時にではなく実行時にしかエラーが分かるのがphpのセキュリティーの点からマイナスです。
>public、privateの区別もないですし、 あるよ
409 :
nobodyさん :2008/08/02(土) 23:38:43 ID:WZrTSOfF
いつまでもphp4使ってんじゃねえよ
テスト環境でやれって話ではないのか
サポートが5日後には終了するphp4をテスト環境で使用しているとしたら、 そいつは紛れも無いばかもんだろ
413 :
nobodyさん :2008/08/03(日) 12:44:27 ID:HcRMDkB6
php初めて2週間の初心者です。 下記のように記録されているbus_data.csvを住所1に含まれている都道府県を検出しながら、 ken_code.csvの都道府県JISコード昇順にソートして同じファイルに書き換えるプログラムを考えてるのですが ソート処理に悩んでいます。何か良い方法はないでしょうか。 @bus_data.csv 会社名,住所1,住所2,電話番号 会社名,住所1,住所2,電話番号 会社名,住所1,住所2,電話番号 ・ ・ ・ (約1000件) Aken_code.csv 北海道 青森県 ・ ・ ・
415 :
nobodyさん :2008/08/03(日) 13:01:09 ID:HcRMDkB6
>>414 MySQLも勉強しようとはおもってますが、
まだPHPも覚えたてで、どうPHPとDBをリンクさせるのかすらわからないので・・・。
>>413 単に北海道から順に検索していけばいいんじゃね?
というか普通にExcelでcsv開いてソートかければ、、というのは無しですか
419 :
nobodyさん :2008/08/03(日) 14:58:32 ID:Tg76RJl4
分からない現象が起きたので質問させてください function room_member_check(){ if(false == ($memfile = fopen($mem_file, "r"))){ Func_Error("関数_".__LINE__); ←なぜかこの処理に入ってしまう } (以下略) } ---------------------------------- room_member_check(); ←これをコメント化するとプログラムは正常に動く if(false == ($memfile = fopen($mem_file, "r+"))){ Func_Error("部屋_".__LINE__); } $flg = 0; (以下略) 大体このような感じなのです。 どちらの関数も同じフォルダにあるので、ファイル名の参照エラーは考えられません。 ヒントか何かないでしょうか?
room_member_check関数の中では$mem_fileは空
421 :
419 :2008/08/03(日) 15:16:15 ID:???
>>420 なるほど。
staticやらglobalの意味を勘違いしていたようです。
ありがとうございました
422 :
nobodyさん :2008/08/03(日) 17:24:00 ID:HcRMDkB6
>>416 都道府県名ごとで47回ループさせて別の配列に移し替えていくという方法ですか?
考えはわかるんですが、具体的にどうコーディングすればいいのかということと、
PHPはソート関数が充実してるようですが
どれが一番シンプルに処理できる関数なのかというお考えをお聞かせいただけるとありがたいです。
>>417 出来ればcsvの受け取りからソートまでを自動化したいと思ってるので。。。
>>418 usortというのも目に付いたのですが、本件についてはarray_multisortが良いというご回答とお見受けしますが、
具体的にどんなコーディングをすればよいか教えていただけると助かります。
・・・ネットのリファレンスで見たんですが、私の浅い知識ではまだ理解するに至らず・・・せっかくのご回答に申し訳ございません。
> 都道府県名ごとで47回ループさせて別の配列に移し替えていくという方法ですか? うん、そういうこと。 俺、PHP詳しくないんだ、ごめんw
>>422 マニュアルにサンプルが載ってるじゃん
そんな難解なものではないから少しずつ理解していけば大丈夫
425 :
nobodyさん :2008/08/03(日) 18:46:12 ID:RMhtfFUN
関数で作ったらいくない?
いいんじゃない?
427 :
nobodyさん :2008/08/03(日) 18:48:58 ID:RMhtfFUN
もしくはDBで
428 :
nobodyさん :2008/08/03(日) 19:22:24 ID:rj+Na7p9
質問させて下さい
文字化けがするので下記のコードにmb_convert_encodingを付け足したいのですが
どのように書いてあげればいいのでしょうか?
アドバイスお願いします。(馬鹿すぎる自分が嫌になる)
<?php
echo file_get_contents('
http:// ●●●');
?>
mb_convert_encoding($str, "UTF-8", "auto");
お前は何を言ってるんだ
この夏、一番の難解かもしれんなw
>>413 暇つぶしに作ってみたお
array_multisort()じゃなくてusort()つかったお
<pre>
<?php
// 比較関数
function compare($a, $b) {
global $ken_code;
$address_a = $a[1];
$address_b = $b[1];
$ken_a = get_ken($address_a);
$ken_b = get_ken($address_b);
$order_a = array_search($ken_a, $ken_code);
$order_b = array_search($ken_b, $ken_code);
if ($order_a > $order_b) {
return 1;
} else if ($order_a < $order_b) {
return -1;
} else {
return strcmp($address_a, $address_b);
}
}
// 住所から都道府県名を取り出す
function get_ken($address) {
if (preg_match('/^(.+?(?:都|道|府|県))/', $address, $m)) {
return $m[1];
}
}
432 :
431 :2008/08/03(日) 19:32:00 ID:???
続き // bus_data.csv読み込み $bus_data = array(); if (($f = fopen('bus_data.csv', 'r')) !== false) { while ($row = fgetcsv($f)) { $bus_data[] = $row; } fclose($f); } // print_r($bus_data); // ken_code.csv読み込み $ken_code = file('ken_code.csv'); $ken_code = array_map('rtrim', $ken_code); // print_r($ken_code); usort($bus_data, 'compare'); print_r($bus_data);
433 :
431 :2008/08/03(日) 19:37:05 ID:???
忘れてた コード中の全角スペースは半角スペースに置換してね
>>428 <?php
echo mb_convert_encoding(file_get_contents('
http:// ●●●'), "UTF-8", "auto");
?>
435 :
nobodyさん :2008/08/03(日) 20:02:41 ID:rj+Na7p9
なにがわからなかったのだろう・・・
関数の使い方だろう。
438 :
nobodyさん :2008/08/04(月) 00:13:33 ID:7EUTIW4h
Iteratorインタフェースを実装すると foreach (など?)の内部動作を変更でき、 マジックメソッドのような働きをしますが、こういったものは他にもあるのでしょうか? まとまった情報を知っていましたら教えてください。
マヌアル
440 :
nobodyさん :2008/08/04(月) 01:49:48 ID:ePD1nbCV
一日費やしてもPHPの設定がうまくできねぇ… 誰か俺みたいな馬鹿でも分かるように書いてあるサイト知らないですか?
442 :
nobodyさん :2008/08/04(月) 02:38:54 ID:LmctVFYq
ちゃんと本買ってよめよ
443 :
nobodyさん :2008/08/04(月) 02:40:58 ID:LmctVFYq
440おれが教えてやるよ。 なにがわからないんだい? そのかわりけつ毛はないものとおもえ
444 :
440 :2008/08/04(月) 02:43:03 ID:ePD1nbCV
>>443 ダウンロードしたあとの設定です
httpdをメモ帳で変えるところが多分違うのかと思います
445 :
nobodyさん :2008/08/04(月) 02:45:51 ID:LmctVFYq
なにでやっているの? windowsか。 ちゃんとphp.iniの設定とかしたのか? httpdconfの設定は? なんか情報が少なすぎてわけわからんよ
__,,/ _, ----`ヽ :. :. / _ ___ 、\ / / i \ \\ :. :. ,'./ i ヽ:. ヽ:.:.. ヽ.ヽ ,'/ / .ハ ヽ ヽ:.:.:.:. ヽ::.. ヽヽ :. :. |i .i i .i / ヽ ト 、 \、:.:.:. ',:.',:.:.lヽ} |i .i l :N_, -弋 \弌弋ナ:}:.:} :. |i∧ ', :{ ,ィjモト \ イjミトイイV :. な… .| :メヽ.', `ozZ} izN。ハ::{ なんでですか? :. | :ヾ_! ゝ "゙゙ ' `゙ ハ.:', :. | :.:_イ .:.ヽ. (二フ , イ :.:.:!:.ヽ なんでPHPの設定 ができないんですか? :. / rィイ | :.:.ヽ: >r/`<ノ .:.::.}ヽ、\:. / ∧l;l ! :.:.:.://{二 ̄ .} ..:..::リ//ハ.:\ :. / .{. ',ヾ、ヽi .:.:.{ /(^` |.:.:.:.//: : :.}: . ヽ.:. / / ) ヽ ヾ、ヽ:.ハ ヤ{ ∧/.-‐'": : |:.:. i ', ./ .,イ .:..} : :\ヾレ'ハ ∧__ノノハヾ、 : : : l:.:.: .ハ ', { /| .:.:ハ : : :i Y {ヾ`Yヽニン'ノ}: : } : : : :/:.:.:/ }:.} V | .:.:/:.:|_,ィ' ̄ ヽ三{ `ー-ノ : イ : : :/:.:i.:{ リ ヽ:.:{、.:.V : : ヘ : : {: : :/:.::∧| ヽ! )人 : : :人 : : : / \! :. " ヽ : : : : :/イ{ :.ノ: : : :.\ :. :. \__///: :\______/: : : : : : : ヽ / //: : :|;|: : : : : : i: : : __: : : : ', :. / 、 {;{ |;| . : i/. : : : : : :|
447 :
nobodyさん :2008/08/04(月) 02:51:18 ID:ePD1nbCV
windows XPで 一応PHP Laboの通りにやりました PHPは新しいのをダウンロードしました iniの設定はフォルダを作ったり メモ帳でいじりました httpdconfはたくさんいじってなにがどうなったのかわからない状況です
サーバ公開するわけじゃないんだからxamppでもいれとけ 外部にポート開いてなければセキュ的にも問題はない 自分で解決できないようなやつは難しいことをしては駄目だ
449 :
440 :2008/08/04(月) 02:59:04 ID:tFXIqt4S
448さん 昨日XAMPPをやっていたら違うスレで 一個ずつやった方が楽って言われて… 最終的にはPHPを公開したいですが…とりあえず勉強がしたいです
>>449 >一個ずつやった方が楽って言われて…
サーバソフトに熟知してるやつでもどっちが楽かといわれたらXAMPPだ
なぜなら必要なパッケージは一通り入ってるし特別設定しなくてもすぐ使える
サーバ設定など細かなカスタマイズが必要になるのは
サーバを外部に公開したりセキュリティが絡んでくる場合のみ
PHPを開発するだけならXAMPPでいい
>最終的にはPHPを公開したいですが…
作ったスクリプトをレンタルサーバで使ったり公開したいってことでしょ?
上でいってるのは自分のパソコンをサーバとして公開する(自宅サーバ)っていうことだから別の話ね
451 :
440 :2008/08/04(月) 03:17:57 ID:tFXIqt4S
そうですか… みなさん親切にありがとうございました とりあえずまたXAMPPを入れてみたいと思います 出来なかったらまたここに来ます ありがとうございました
ちゃんと学びたいなら真っ当な方法で設定したほうがいいよ。 XAMPPは諸悪の根源。
>>452 あんま混乱させるなよ
とりあえず勉強がしたいっていうんだからXAMPPでいいじゃないか
よく使ったりする必要なオプションはあらかじめついてるんだし
鯖屋になるわけじゃねえんだから
なんでそう必死にXAMPPを勧めたがるの?
>>454 開発者と鯖屋は別だから
なんでそう必死に1個ずつにこだわるの?
俺も初学者にXAMPPは薦めたくない。 慣れてる人が手早く環境を作るために使うぐらいがいい。 それにXAMPPでうまくいかないというのは逆にノーマルな手法のほうが 向いてる可能性もあるしな。 全体の構成を頭で覚えるか体で覚えるかの違いだ。
457 :
440 :2008/08/04(月) 03:29:17 ID:tFXIqt4S
とりあえず本を買ってもperlのときみたいに妥協しそうなんで
サイトを見てやっているんですが
とりあえず
>>450 さんの言うように
プログラムを作ってから セキュリティ面をどうするか考えたいと思います
あまり仕組みがわかってないので間違っているかもしれませんが
あまりの手軽さに感動しちゃって、この感動を他の人にも与えたいから
459 :
440 :2008/08/04(月) 03:31:34 ID:tFXIqt4S
>>456 さん
正直頭で覚えるよりも体で覚えていくタイプなので
XAMPPは何か後から後悔しそうな気がしそう
うーん もう一度だけPHPの環境設定してみます
XAMPPなんて使うと何の応用力も発展性も無い低脳プログラマができるだけ
461 :
450 :2008/08/04(月) 03:51:25 ID:???
>>459 俺は業務脳なので業務開発者としての意見をいったまでなので
結局趣味開発なら自分の考えどおりやるのが一番だと思うよ
というわけでぜひ設定頑張ってくれ
462 :
440 :2008/08/04(月) 03:54:32 ID:tFXIqt4S
わざわざありがとです
>プログラムを作ってから セキュリティ面をどうするか考えたいと思います プログラムのセキュリティーとサーバーのセキュリティーを混同してるんだろうな 前者はXSSやSQLインジェクション対策などのプログラムを書くテクニックのようなもので 後者はサーバーを外部に開くときクラッカーからサーバーを守る防衛策のことだな で、PHPを開発するのにWebサーバーやらメールサーバーやらDBサーバーが必要になるから それらをインストールするわけだが それらはローカル上で自分の作ったPHPの動作確認をするためだけに使うのであって 外部に自分のパソコンから情報を発信(サーバーの外部公開を)するわけではないので サーバーのセキュリティーは一般的にはサーバーが外部接続のために使うポートを閉じるだけで良い ルーターはさんでるなら最初から全部閉じてるはずなので問題ないと思うが 設定で先すすまなくて挫折じゃ本末転倒なので俺もXAMPPのようなミドルウェア薦めとくよ 毛嫌いしてるのは何でなのか不思議だなw だって結局中身はApacheやPHPで同じなのに(httpd.confやphp.iniもあるしもちろん設定もできる) 専用コントロールパネルまで入ってて管理もしやすい そこらへんのサイトのhttpd.confやphp.iniの中身をコピペしてるようじゃどっちみち同じこと
最初にXAMPP使って、慣れて細かいことするようになったら、個別で入れればいいじゃん。 文法学びたいとかなら、XAMPPで十分事足りる。
これは読んどけ!ってなお勧めのコードは無いですか 種別はなんでも良いんですが、XOOPSはでかくてしり込みしてます
フレームワークのソースでも読んどけ ていうかフレームワークを使った開発手法覚えとけ
468 :
nobodyさん :2008/08/04(月) 08:07:09 ID:3goeRlYF
まずPHPマニュアルのサンプルソースで基本を学ぶ。
>>467 フレームワークといってもいくつか有ると思いますが何が良いと思いますか?
今はCakePHPを使ってるところだから、この辺でも良いんですかね・・
綺麗なコードとか設計とか、良く判らなくて
PHP(PDO) + MySQL について質問です。 クエリーへ名前形式のパラメータを渡したいのですが、 クエリー側でパラメータの適用箇所が複数あると 期待した動作をしないのです。 申し訳ないのですが解決する方法を教えて頂けたら嬉しいです。 例えば以下のように :p1 を複数箇所に書くと 結果は 0 件になってしまいます。 select * from x where x.a = :p1 and x.b = :p1 MySQL のクエリーログでは、 パラメータが疑問符形式 ? になっていたため、 改めて :p1 に加え :p2 を用意し、 select * from x where x.a = :p1 and x.b = :p2 とすると期待通りに動作します。 ※予め PHP 側からは同じ値を :p1 と :p2 にバインドします。 名前形式パラメータを複数箇所に適用することはできないのでしょうか? PHP 側の設定あるいは MySQL 側の設定で対応できるのでしょうか?
CakePHPはRailsライクだから 同様の他言語のフレームワークでもある程度応用が利く 他言語の理解がまったくなくてもある程度作れてしまうだろう 設計も勝手にフレームワークがやってくれてる めんどくさいことを考えるの嫌いで特段こだわりがないなら フレームワークの勉強をするといい 言語として綺麗なコードを書きたいとかきちんとした設計をしたいというのなら Webの世界を一旦出て完全なオブジェクト指向言語で勉強をするといい
>>471 ありがとうございます
>言語として綺麗なコードを書きたいとかきちんとした設計をしたい
この辺りが近いです
フレームワークの勉強は続けるつもりなんですが、
アプリやフレームワークを作れるようになりたくて
良いお手本が欲しいと思って質問しました
>>467 ,468,471
ありがとうございました
セキュリティの話でちょっとずれますが 予告inのXSSつかれた不正攻撃ってどうやってやられたんですか? URLの投稿のところでエスケープミスがあったとのことですが 投稿といったらPOSTだろうし 掲示板とかでGETで不正なパラメータ渡されたURLが貼り付けてあったわけじゃないですよね? 実際に自分のサイトに脆弱性がないか自分で攻撃をして確かめてみたいけど そんな技量がないので不安です XSSでどういうコードをどう投稿して実験してみるとか 攻撃確認の手法みたいなことをどなたか説明していただけませんか?
予告inに脆弱性があったのか。
ヤフートップでも見れ
3日の午前2時ごろといえば俺もちょうど見てたな・・・ たしかFirefox使ってたと思うが ブラウザ固定じゃなくてたまにIEでも見てたりするから そのときどっちのブラウザ使ってたかは覚えてない・・・ 犯行予告されてませんように
440へ ちゃんとぐぐって調べたりしてわからないところを 聞かないと、おれもXAMPPはお勧めしない。 きちんとひとつずつインスコして設定すべしだな。 windowsなら簡単だと思うのだが
XAMPPを嫌う人って多いんだな そういう人達はtarballからコンパイルして使ってんだろうか
04web+php yare
元々tarballからコンパイルして使ってたからとっつきにくいんじゃなかろうか
Windowsで使うのにそんなこだわらんでもいいのになw
大した手間でも困難な作業でもないんだから面倒臭がらずにやれよ。 そういう問題解決の方法はプログラム書いていく上でも同じだぞ。
xamppと1からWAMP環境作った後の違いを教えて欲しいんだけどw 昔もあったけど、xamppをanhttpdとかと勘違いしてるんだろーなw
お前両方で作ったことあんの?ないだろ
xampp使ってる人は基本的に両方で環境構築しているだろ。 ローカルはxamppで公開鯖は半手動。
xamppを使わずに開発環境を構築するメリットの一つに各種バージョンを 本番環境に合わせられるってのがあるかな xamppの方がバージョンが新しい場合が多いので、うっかり本番環境の バージョンで使えないコードを書いたりすることがたまにある
開発するための環境構築に時間かけるのは馬鹿のすること 上のほうでも出てるがお前らは何をやりたいんだ? プログラムの開発か?それとも鯖屋か?
別にどっちでやっても時間かからんわ
ぶっちゃけlinuxで構築するのが一番楽だし早いよな
>>490 おまえか
anhttpdと間違えてる奴wwwwwww
サイトから各パッケージダウンロード 1からの場合 最低限アパッチ、PHP、MYSQLの3つのサイトのURL探しから xampp xamppのURLのみ 頭の良い奴ならこの時点でわかるよな winならxamppで構築するのが最速 どっちでやっても時間が変わらないというド素人は、どっちの環境も作ったこと無いかリアル池沼 細かい鯖設定を覚えたければ他のスレへw
そもそもWinでやるのがアホだろw
夏だねぇ
それしかできない、と言うか他のことをやってみるような考えが無い保守的な人だからしょうがない。 井の中の蛙ってやつか。
開発できれば別にXAMPPでもなんでもいいお
>>494 開発をWin以外でやる化石なんて今更いない
正直、統合開発環境が使えればどうでもいい
俺はsshさえ使えればなんとかなる
開発作業にWindows使ってない奴は どれくらい要るんだろうな。 動作させるサーバ環境なんて、 最終的に動かす環境のバージョンとの 互換性を満足できれば 正直なんでもいいしな。
>>440 は要領を得ない無駄だらけで開発者には向いていない
何か問題にぶつかるたびに無駄に調べまわってなかなか先に進めないタイプ
>>497 は無駄なく開発に専念できる賢いやつ
>>499 はデバッガつきなら賢い
俺の場合VSもいれるから必然的にOSはWindowsになる PHPだけの開発のためにPC使ってるやつのほうが稀 お前らもMMOとかWindows用のゲームとかを開発してるPCでもやるよな?
XAMPPが嫌われるのは、何度も何度も「Apacheで転送速度が遅いんだけど何で?」 という質問が来るからうんざりしてんだよ。
>>503 仕事用のマシンにはゲーム入れないお
ってかゲームはDSでしかやらないお
>>504 ソフトウェアの性能とユーザーの知識は別問題だろ。
rskえもんの拡張がwinで使えればwinで不自由ないのだが
phpの質問をどうぞ
>>504 こんなんがいるからxamppは迫害されてるのかwwww
とばっちりもいいとこだな
XAMPPでインストールしたんですがapacheでの転送速度が遅いです なんでですか?
>>510 製作者じゃないのでxamppのフォーラムか開発者に問い合わせてください^^
$text = 'あいうえお<!--メイン-->かきくけこ'; $text = split('<!--メイン-->' ,$text); $text[0] = 'あいうえお'; $text[1] = 'かきくけこ'; としたいのですが、うまく動作しません。 splitのとこの書き方が悪いと思うのですが、どう書けばよいのでしょうか?
文字コードじゃ? mb_split はどう?
515 :
512 :2008/08/04(月) 18:18:58 ID:???
>>515 文字コードとか問題ない?
こっちでそのままコピペして実行してもちゃんとわかれるけど。
めったにしないと思うが文字コードをJISにしていて正規表現のメタ文字含んじまったとかか? $text = split(quotemeta('<!--メイン-->') ,$text);
518 :
512 :2008/08/04(月) 18:50:00 ID:???
皆様本当に申し訳ありませんでした 穴があったら入りたいです・・・ $textの中の文字コードとソースの文字コードが違っただけでした>< 1度確認したつもりだったのに お騒がせしました
よし穴に入れ
∧∧ (д`* ) (⊃⌒*⌒⊂) /__ノωヽ__)
522 :
nobodyさん :2008/08/04(月) 22:24:24 ID:mchfEoZH
phpの配列の添え字についてお伺いします。 添え字は、どうして0からスタートしているのでしょうか? もしかしたら、2進法の流れでしょうか? 10進法でいえば始まりは1が基本ですよね? 配列を処理する場合に、$i + 1としなければいけないなど、 生産性が著しく悪いのですが、配列回りの所作について 定義している箇所はありますか?
>>522 10進数でも2進数でも0からなのは同じだろ。
>配列を処理する場合に、$i + 1としなければいけないなど、
わからん。具体例をあげてくだちい
>>522 phpのソースコードから書き換えてコンパイルすればおk
525 :
nobodyさん :2008/08/04(月) 22:38:38 ID:mchfEoZH
>>523 ご回答ありがとうございます。
いや、現実の世界では0ではなく1から始まりますよね。
# 会員番号、出席番号、駅のホームの番号など0からスタートするなんてまれです。
その事から、業務プログラムを作ると、そのような連番処理をする場合に、
for文の中で$i + 1としてから、連番を振らなければいけないなどの
面倒な処理が出てきます。しかし配列は$array_sample[$i]のように$iです。
このような処理があちらこちらに出現すると、バグの元にもなりますし、
$iを使っているのか$jを使っているのか訳が分からなくなります。
添え字を連番として扱うのが間違い
527 :
nobodyさん :2008/08/04(月) 22:42:06 ID:t2yFOOOp
>>525 言語によってはデフォでは配列の添え字が1から始まったりする
だからphpでは単にそう決まってるだけだよ
まぁ最初に作った奴は0からのが便利って思ったってだけだろ
529 :
nobodyさん :2008/08/04(月) 22:49:06 ID:3goeRlYF
>>525 >このような処理があちらこちらに出現すると、バグの元にもなりますし、
変数の使い方をしっかり決めておけばそんな混乱は起こらない。
あと出席番号=添字にするのなら、[0]を使わず[1]から振っていけばいい。
530 :
nobodyさん :2008/08/04(月) 22:51:19 ID:mchfEoZH
>>527 > まぁ最初に作った奴は0からのが便利って思ったってだけだろ
最終的にはそういうことですね。
1からではなく0から使うことのメリットを逆に知りたいくらいですですが・・・。
現実の世界とかけ離れたivory towerの中で作られたという印象を受けます。
phpの新しいバージョンで1から始まるように、願うしかないのでしょうね。
自分に理解できないことは象牙の塔か。
>>525 それは自然数だね。
>for文の中で$i + 1としてから
$iがいくつから始まるとか言ってくれないとわからん。
$iを1から初めて$array_sample[$i-1]みたいに使うこともあるだろ。
>$iを使っているのか$jを使っているのか訳が分からなくなります。
それは別のことの気がする。
>>530 たぶんC言語の影響じゃない。
自然語で先頭から3番目は
プログラム的には先頭+2の場所なんだよね。
>>528 確かにCで1から始まったら変態すぎるw
不毛なんだからその辺にしとけ
自分で好きなように言語開発すりゃいいじゃん どーぞ どーぞ
537 :
nobodyさん :2008/08/04(月) 23:16:12 ID:mchfEoZH
今まで疑問に思っていることでしたが、 貴重なご意見を頂きましてありがとうございました。 phpがC言語を影響を受けるのは必然的な流れで、 よく考えずに実装をしてしまったというのが妥当な推測でしょうか。 例えば、配列$company_memberを処理する際に、 for ($i = 0; $i < count($company_member); $i++) とするのは見慣れてしまっているので、むしろ自然の形かもしれませんが、 これを日本語風に翻訳すれば、「0より大きく最大数未満で処理しろ」ということですが、 for ($i = 1; $i <= count($company_member); $i++) として、「1番目から最大数になるまで処理しろ」というのが自然のリアルの思考です。 自然の思考に従って、後者の書き方で実装すると良さそうに見えますが、 phpの関数の言語仕様が0で始まっている以上、phpの標準関数を使う際に色々と支障が出てきます。 また、チームでやっているので、0から始まったり1から始まったりでは、 認識のズレが生じて、それも又バグの元です。 これを回避する方法はなく、結局郷に入りては郷に従え、悪法も法なりで # 結局、0から始まることのメリットを言われる方がいないのもその裏付けだと思いますが phpの言語思想の中で実装をしなければならないというのが結論と理解しました。 ありがとうございました。
\ ∩─ー、 ==== \/ ● 、_ `ヽ ====== / \( ● ● |つ | X_入__ノ ミ そんなエサで俺様がクマ――!! 、 (_/ ノ /⌒l /\___ノ゙_/ / ===== 〈 __ノ ==== \ \_ \ \___) \ ====== (´⌒ \ ___ \__ (´⌒;;(´⌒;; \___)___)(´;;⌒ (´⌒;; ズザザザ (´⌒; (´⌒;;;
配列の0は無いほうが合理的(キリッ
>>536 てめはPascalでもつかってろってこった
間違えやすいとか面倒というのは俺もそう思う。 混在しているとややこしいね。 以下のxは配列の先頭とか20とか33とかと仮定する。 xから5番目といったら$array_sample[x+5-1]なんだよな。 これはxと同じ位置のことをxから1番目と数えるからなんだろうな。 つまり1から数えるのはデメリットもあるってこと。 >よく考えずに実装をしてしまったというのが妥当な推測でしょうか。 そうは思わない。 >また、チームでやっているので、0から始まったり1から始まったりでは、 >認識のズレが生じて、それも又バグの元です。 配列に関係なく認識のずれがある時点でダメだろ。 ># 結局、0から始まることのメリットを言われる方がいないのもその裏付けだと思いますが なんだその視野の狭い即決は。
>>537 添え字が0から始まる言語のすべてに当てはまることを
さもphpだけに当てはまるように書いているのには
なかなか興味深いものがあるな
>また、チームでやっているので、0から始まったり1から始まったりでは、 詳細設計しろ。 添え字が何を意味するのか曖昧なまま開発したらバグって当たり前だ。 0を使いたくなければ使わなきゃいい。 0を使わない方向でチーム内で意思統一すればいい。
>>537 低脳プログラマ乙。文句たれる前に手動かせ。そのうち使えない奴として切られるぞ。
誰かが>537のperl版やjava版を作りそうな予感・・・
>>537 無知ばかりのメンバ
初心者ばかりのメンバ
暗黙の了解で作業している
失笑されるから質問とかしずらい
そんなチームなのかな。
大変だよな。わかるよ。
>>537 >>526 に対する感想は。
なんで添字をそのまま出席番号に使おうとするのか分からん。
俺の中では全く別物。
あと真面目に議論したいなら、その嫌味口調をやめることと、都合の悪いことは無視せずに人の話をちゃんと聞くことかな。
>>537 添え字なんて使わずにポインタ使うにする、とかそういう実装の言語作ればいいじゃない
きっと君の言う自然に合致するはずだ
MATLABやBASICは配列1からだな。 Pascalは確か範囲を指定できるんだよな。マイナスとかできたっけ? 移植するとき辛い。実際面倒だからMATLABで実験するの拒否したけど。 混乱するから、全部0から始まる言語だけでいいよ。
よく分からないのだが、添字を指定しないと自動的に0としてキーが作成されることを問題としているのではなく、 チーム内で0と1が混在してしまうから面倒だってこと?誰かまとめplz
>>550 それでは、まとめます。(日高義男風)
プログラマー思考の0派と、自然思考の1派がいて、
どちらかに統一しようとすると、思想弾圧に繋がって、
チームがギクシャクするから、困っている。
ということ。
つーかさぁ PHP知ってるやつって全員配列の添字は0から始まるってことを知ってるからチームで動いても問題ないのでは? むしろ知らない奴のほうが珍しいだろw
仕様書や会話や画面表示では番号1番なのに コーディングやデバッグしているときは$i=0とか$a[0]を扱うとかに ついていけない初心者ばかり増員されて苦労してんじゃないの。 気持ちはわかる。プログラムは大変だよね。面倒だよね。 野球には背番号が0番とか00番があるみたいですね。 俺野球に興味無いからよくしらんけど。 プログラマーって大変ですね。
>>552 話のよく聞けよwww
知っているか、知らないじゃなくて、思想の違いがあるから問題が出るってことだろ?
思想の違いってアホか 使う言語に合わせりゃいいだけの話だろ
0から始まるとか、 if文でi=0とか、
>>555 要するに「PHP言語仕様の思想が僕の思想と違うのでPHPは糞です」て言ってるんだよな。
>>554 そんなこと初めて聞いた。
他に事例あるか?
「添字が1から始まるべき」思想を持ってる初心者が大量増員されたんならご愁傷様と言う他無いが。
添え字を番号として使う人で、添え字と内容の番号違いが嫌ならば[0]を番兵チックに利用すればいい。 (出席番号の場合、[0]を担任教師用に確保するんだよ) ただ、ナンバーが01から始まり、最後まで連続しているっていうのは、あくまで例外であり、それを基準にするのは間違っている。
>>554 おまえxamppなんか糞開発環境プギャー
オレは時間かかるけど1から開発環境作ってるぜ (キリッ
の奴だろw
しょーがないからマジレスしてやるけど機械的には1から始まるより0から始まるようが若干高速なんだよ アセンブラ勉強した奴ならわかると思う
>>560 xamppは開発環境ではありません。
あと時間を気にするなんて毎日作り直してんの?
参考までに使った場合と使わない場合にそれぞれかかる時間を教えて。
下らねぇ質問が来るまでこの流れのままなのか・・・
>>561 足りない頭で、レス乙。
高級言語の仕様が1から始まるかと0から始まるかということと、
アセンブル・機械語がどうかとは全く別の話だ。
それは高級言語の実装で吸収すればいいだけの話。
>>564 俺その辺詳しくないから聞きたいんだが、
要素数が255とか65535(2進法)
10、100(10進法)
2147483647(32bitでのintとfloatの境界)
の時は[0]スタートの方が有利に思えるんだけどどうなの?
例えば10個目の配列の参照する時
[0]からの場合【[9]】
[1]からの場合【[10]】
と書くよな。
9は1文字、10は2文字
ソースのサイズは若干変化あるよな。
後、intとfloatの型変化の時も影響がデカイ気がする。
こういうレベルの影響はないのか?
C言語で配列の要素番号が0から始まるのは、配列が存在するアドレスから何要素分進んだかを表しているから。
hogearray[16]は、*(hogearray + 16)の構文糖衣。
多次元配列darray[4][4]は*(darray + 4 * x + 4)。 # xはsizeof(darray[0])
もし要素番号が1から始まったら、多次元配列darray[4][4]は*(darray + 3 * x + 3)。
[]で書くと4なのに、ポインタを使うと3になる。こんなややこしい仕様はバグの元。
だから要素番号は0から。
で、PHPは元々Perlので実装され、そのPerlが配列に関してはC言語の構文を真似たから、PHPの要素番号も0からになったと予想。
悪法でも何でもなく、親しめられてきた言語に合わせて、CやPerlなどからPHPに移ってきた人が混乱しないようにしただけ。
>>561 それは比較するときの話なのでは。x86やx64で言えば、0との比較はcmpしなくてもmovでZero Flagフラグが立つかどうかで分かるから。
# Core 2以降はマクロヒュージョンのおかげでcmpしようがしまいが同じだがな。
>>565 ソースが1文字増えたところでロスする時間は1マイクロ秒以下。それを気にするならソースの余計な空白やタブを取っ払う方がいい。
>>566 お前が、相当技術力があるのは認めるが、
なんで、そんな奴がこのレスにいるの?
phpなんて、単価が安い仕事ばっかだろ。
レスで書いているような内容が分かるなら、
phpよりも、かなり良い仕事が出来そうだが。
おれ何をしているかというと、昔SEをやっていたが今はシステム営業をやっていて、
自分のサイトを作るためのに個人的にphpをやっていたりする。
ただ2chのスレを巡回して、どこかからの受け売りを垂れ流す、技術も糞もない学生ですがな
プログラミングに思想と性欲は邪魔
>>567 WEBアプリほどぼろい商売ないと思うんだけど、低脳のおまえは何で稼いでんの?w
>>562 おまえのとこは客があまりいなくて暇でいいんだな
客に合わせていろんな環境を嫌々作ってみたらよくわかるで
>>571 php程度の仕事で、ぼろい商売なんて思うなんて、お前は相当あれ何だなぁww
xamppを開発環境じゃないといってる馬鹿は放置しとけ
>>573 そのPHP程度のスレをいちいち覗きに来なきゃーいいのにねぇ
( ´д)ヒソ(´д`)ヒソ(д` )
>>573 こういう低脳な奴が相場下げていってるんだろーな
要素番号が1から始まる言語って存在するの?
>>577 VB6までのVisualBasicとか。
>>578 VB6までしか使ったことないけど、
今のVBって配列の要素番号変わっているの?
移植とか困るだろうなぁ。
>>578 VB.NETは0からになったはず。
どうせほとんど別言語の体裁を取ってるし、
元々Option Base 0使ってる奴が大多数。
大差ないと思われwww
0から始まる言語を初めて使ったとき、0からだとこんなにスッキリ書けるんだ! と、思ったもんだがな。
>>582 典型的な馬鹿か?
開発するために必要な環境全般をさして開発環境というんだよ
IDEのことだけをさすわけじゃない
当然デバッグのための環境(xampp)も開発環境という
IDE全てにデバッガが含まれてると思ったら大間違い
まったく、さすがphpのスレだけあってレベルが低すぎる。 馬鹿でも出来るphpだが、それさえも出来ないって救いようがない。
>>583-584 初心者さんなのかな?^^ 頑張ってピー・エッチ・ピー習得してね^^
xamppはテストには必要だがステップ実行するデバッガとはまた別 そのテスト環境も開発環境の1つなのは間違いないが 文字どおり開発するのに必要な環境なわけだからな xamppとメモ帳だけだって立派な開発環境だ IDEにだってxamppをパッケージとして含めることはできるわけだし オールインワンにした場合そのxamppが含まれたIDEに対して xamppの部分は開発環境でないなんて意味不明なことはいえないだろ
>>587 php5.3って、当然配列の添え字は1から始まっているんだろうな?
590 :
nobodyさん :2008/08/05(火) 13:17:21 ID:WvP0Kt9J
xxne.jpみたいなサブアドサイトを作りたいんだけど PHPで出来るのかな?
配列の添え字で不都合するのは糞プログラマだけだろ いっぱしのやつならそんなの気にしない たとえ添え字が14とかわけわからん数字からはじまっててもな
俺はJAVAを中心に仕事をしているが、 配列の添え字なんて、そもそもプログラムで意識しない。 配列が必要なデータはクラス化(ListやMapなど)してしまう。 配列の添え字を意識しなければいけない時点で、 オブジェクト指向が出来ていない証拠だよ。 今まで、そういう指摘が出ないのが不思議。 まだ、php4とか使っているのかよ?それともオブジェクト指向すら知らない?
何でもかんでもコレクションにブチ込むのがOOPなんですか 配列を返す関数とかも色々あるんですけど、全部コレクションに入れ直すんだろうか でもその場合でも配列は扱うよね
> でもその場合でも配列は扱うよね 使わねーよw Iteratorとか知らねーのかよw 配列を生で扱うことに何の躊躇もないなんて、可哀想な脳みそ。
>>586 これだから初心者は^^;;;
Web開発するんだからWebサーバなども含めて開発環境に決まってんだろ
必要とあらば各種SDKフレームワークなども含める
使用する統合開発環境(IDE)だけに含まれてるものだけで開発できるとは限らん
結局自分が何を作るかで必要なものが個々に必要になってくるわけ
IDEはその土台に過ぎん
ここはPHPのスレですよ? だいたいOOPとかスレ違いもいいところ PHPで無理にOOP使う必要はない
OOよく分かってない人はイテレータとか使うだけで感動する傾向がある気がする。
597 :nobodyさん:2008/08/05(火) 13:38:52 ID:??? ここはPHPのスレですよ? だいたいOOPとかスレ違いもいいところ PHPで無理にOOP使う必要はない
いちおうSPLとかあるけど、使ってる人は見たことがない
PHPの質問をどうぞ
JAVA厨がしょぼPHPユーザをいじめてると聞いて飛んできますた
>>595 javaには配列からコレクションに変換する関数があるんだな
iterator全く関係ない訳だが
ひとまずスレタイ読めるようになってから来てくれ
まだやってんのかお前らwwwwwwwww
ワケ ワカ ラン♪ ∧_∧ ∧_∧ ∧_∧ ( ・∀・) ( ・∀・) ( ・∀・) ⊂ ⊂ ) ( U つ ⊂__へ つ < < < ) ) ) (_)| (_(_) (__)_) 彡(__)
>>587 ・名前空間
・クロージャー
・SQLite3デフォ
きたああああ
もちけつ、まだalphaだ
おまえらせっかく10年遅れでパターン覚えたのに残念だったなw
あれ、青山は辞めさせられたの?それともオリンピック取材?
614 :
nobodyさん :2008/08/05(火) 23:00:21 ID:8enGip0r
プログラムが実行しているページのURLを取得したいと思います。
echo "
http:// ".$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"];
で一応取得できるのですが、
http://とすると 、
SSLページの場合は適さないと思います。
何か良い方法、または関数って無いでしょうか?
>>614 var_dump($_SERVER);
PHPよりJavascriptで取得した方が正確だったのでそうします。 お騒がせしました。
617 :
nobodyさん :2008/08/06(水) 01:34:58 ID:1xe8Gdey
597 名前:nobodyさん[sage] 投稿日:2008/08/05(火) 13:38:52 ID:??? ここはPHPのスレですよ? だいたいOOPとかスレ違いもいいところ PHPで無理にOOP使う必要はない
618 :
nobodyさん :2008/08/06(水) 01:38:34 ID:nCuNNad/
20万件のデータを配列に格納して、 あるデータがその配列にないかを検査する 処理を書いています。 in_array()で一個ずつマッチングしているのですが、 これが一番早いやり方でしょうか? アルゴニズムの勉強をすればもっといい方法があるのかもしれませんが、 なるべく簡単にできるやり方で良い方法があれば教えて頂きたいと思います。 ちなみに、DBは使えない環境です。その代わりメモリーは16GBあります。
自前でインデックス作って管理
620 :
nobodyさん :2008/08/06(水) 01:45:20 ID:nCuNNad/
>>619 回答ありがとうございます。
ただ、今日の夕方までが納品なので、それを今からやるのはちょっと辛いです。
現在、パフォーマンステストの段階まで来ていて、
この部分の処理をもう少し早くできればと思っています。
質問です
PHPだけの質問ではないのですが、
Google Picasa内の画像の直URL
例)
ttp://lh3.ggpht.com/Josythecook/RqUmb2H6U0I/AAAAAAAAAAw/A2d0MFM8N6Y/Adriana_Lima89.jpg IEでもFFでもブラウザに直にURLを入れると表示されるが、
Javascriptで
image = new Image(); image.src = '
http:// 〜';
と入れても表示されない。※先にブラウザURL直打ちしたあとなら表示される。おそらくキャッシュを使うため
さらにPHPの
fopen('
http:// 〜'); や file_get_contents('
http:// 〜');
でも開けません。
PHPのCURL関数もだめでした。
※FFのLivehttpheadersでFFで画像を表示したときのヘッダー情報を真似てみました。(UA偽装など)
また、上記のいづれもPicasa以外の画像なら表示できるため、根本的にやり方が間違っているということはないと思われます。
上記のことから、Picasa側でどのような制限をかけているか判別できるかた居ますでしょうか?
また、もし可能ならPHP+CURLを使用した取得可能なサンプルを教えいただけますでしょうか?
よろしくお願いいたします。
自前でインデックス作るのってそんなに難しいことか? 1カラムに限定すれば楽だと思うけど。36進数で管理すればファイルサイズも節約できるよん。
>>622 FFってなんだ?
もしかしてFxのことか?
FireFoxって書いてると恥ずかしいから、
今のうちにFirefoxって書く練習しておいたほうがいいよ
fopenで普通に取得できたから、やり方が悪いんじゃないの?
Final Fantasyだろjk 火狐とかきもい略称もあるよな 支那人かお前はと・・・ と思って中文のFirefox説明を見てきた Mozilla Firefox(正式縮寫為 Fx,非正式縮寫為FF),俗稱火狐(目前無官方中文名) 意味はなんとなくわかったwwwwww しっかりFFも非正式ながら使われてるようだwwwww
626 :
nobodyさん :2008/08/06(水) 03:29:38 ID:nCuNNad/
>>621 >>623 レス感謝します。
なんだか、自分が想像していたより、
どんどん話が大きくなってしまって、
怖くなったので、この辺で終わりにしたいと思います。
私としましては、ただ簡単に速く出来ればと思って書いた質問でした。
なので、正直なところとして、それ以上の事はよかったのです。
可愛らしいな、おいw
1.テキストボックスに入力します(html、submit) 2.fwriteでtxtファイルに書き込みます(php) 3.@に戻ってテキストボックスに入力、txtファイルに書き込み …と、したかったのですが、 上書きされてしまい、最後に入力したデータしかtxtファイルに保存されません どう回避すればよろしいでしょうか?
いや、、、どうしたいのさ。 追記したいなら追記モードでオープンとか。
魔乳亜留嫁(fopen
>>629 fopen(書き込みたい文字, 'a')
訂正 fopen(書き込みたいファイル, 'a')
php5使ってるならfile_put_contentsがいい int file_put_contents ( string $filename , mixed $data [, int $flags [, resource $context ]] ) flagにFILE_APPENDやれば追記する
文字列 $str = "abcdefg.php" から、後ろ3文字を取り除くとき、どう書くのがいちばんスマートですか。
echo substr($str, 0, -3);
PHPのクロスプラットホーム開発について 質問させて下さい。 前提として以下の様なフルパス指定のソースが大量にあります。 requiere "/export/home/hoge.php" このソースを変更せず、windowsのeclipse pdt で動かしたいと思っています。 windowsにはルートディレクトリがないため、 requiereでエラーとなりますが、これを回避する 方法はないでしょうか? 考えているのは、 1、SFU、Cygwinでなんとかならないか 2、requiereのソースを探してきて改造するか 以上、よろしくお願いします。 そのほかPHPクロスプラットホーム開発の ノウハウがあるサイトがあれば教えてくださいませ。
s/requiere/require/
誰もアルゴニズムには突っ込まない。さすがだなPHPユーザーどもw
>>640 「あー・・・だるいから突っ込まなくていい?」という心境
ルートディレクトリが無いんだって ヒソヒソ( ゚o゚)ヤダァ(゚o゚ )ネェ、キイタ?( ゚o゚)オクサン(゚o゚ )アラヤダワァ
アルゴリズムって、日本語に訳すと数学的律動体操ってことか? 何のこっちゃ?
>>642 おっしゃるとおり、windowsにもルートディレクトリがありますね、
ごめんなさい。
「/」のルートディレクトリに訂正です。
apacheだかphpだかをインスコしたドライブに フォルダツリーを作ってやったら出来るんじゃないの? cドライブにインスコしてたら c:\export\home にファイル置くとか
>>645 ありがとうございます。
試しましたが、ダメでした。
が、ボケてただけかもしれないので
もう一度やり直してみます。
Cygwin版のpacheで動くphpなら/でいけそうな気がするけどどうなんでしょうね
648 :
638 :2008/08/06(水) 22:26:36 ID:???
家のPCで試してみました。
>>645 さんのおっしゃる通り、正常に動作しました。
失礼致しました。
環境の違いは以下ぐらいです。
正常動作する:PDT v1
動作しなかったと思われる:PDT V1.0.3
スレ汚しごめんなさい。
PDTなんて使うなw
phpspotメソッドというものがあるようなのですが どのように使うのでしょうか? LINUX、PHP5.2.6、ROOT有レン鯖です。 宜しくお願いします。
最初に…、長文になってしまってすいません。 SQLインジェクションを防ぐために、SQL文を生成する際、「escape_string」を使用しています。 しかし、人為的なミスで「escape_string」を使用せずにSQL文を生成していまうことがあります。 そこで、mysqliクラスを完全にくるんだクラス(OrgDBクラス)を1つ作成して、DBに対する操作を OrgDBクラスを介して行うようにしました。
〜OrgDBクラス(抜粋)〜 class OrgDb { private $p_oConnect; private $p_sSql; public function OrgDb_connnect() { $this->p_oConnect = new mysqli(…); if ($this->p_oConnect->connect_errno !== 0) { return false; } return true; } public function OrgDb_makeSql($sSql) { for ($nCnt = 0; $nCnt < 10; $nCnt++) { $sSql = str_replace("<" . $nCnt . ">", pack("C", $nCnt), $sSql);//☆1ココ } $this->p_sSql = $sSql; } public function OrgDb_setSql($nIndex, $sData) { $this->p_sSql = str_replace(pack("C", $nIndex), $this->p_oConnect->escape_string($sData), $this->p_sSql); } public function OrgDb_execSql() { for ($nCnt = 0; $nCnt < 10; $nCnt++) { if (mb_strpos($this->p_sSql, pack("C", $nCnt)) !== false) {//☆2ココ return false; } } return $this->p_oConnect->query($this->p_sSql); } }
〜OrgDBクラスを使用する〜 $oDb = new OrgDb(); $oDb->OrgDb_connnect(); $oDb->OrgDb_makeSql("select * from table where key = '<0>'"); $oDb->OrgDb_setSql(0, "クライアントから送信されたデータ(要サニタイジング文字列)"); $oRes = $oDb->OrgDb_execSql();
やっていることは、SQL文を生成する際、 1.静的なSQL文を定義する。この際、動的に設定される部分を"<N>"と記述する。 2.動的に設定される部分を実際のデータで置換する。 3.生成されたSQL文を実行(発行)する。 と、いう流れです。 上記ソースの通り、発行されるSQL文はOrgDbクラス内に閉じ込めてあり、動的に設定される部分は、全て、 OrgDb_setSqlメソッドを介して設定されるので、必ず、サニタイジング(escape_string)されるようになっています。 ※やり方はいろいろあると思うのですが、このやりかたしか思いつかなかったです...orz... 〜質問〜 「☆1」部分と「☆2」部分なのですが、クライアントから送信されないデータを 置換対象としたかったので、pack関数を使用して、バリナリデータ(制御コード)としましたが、 この方法で何か問題が発生することはあるでしょうか? ※ちなみに、置換対象の種類は10個と決めています。 長文、本当にすいません;;
>>653 早々のご意見ありがとうございます。
諸事情により、PDOは使えないです。
使えるのであれば、PDOでやりたかったです;;
諸事情って?
>>658 システム的な理由ではなく、もろもろの事情です;;
すいません、上手く説明できません;;
try catch汁
>>660 ご指摘ありがとうございます。
実際のソースには記述しております。
ありがとうございました。
>>661 「PDOを使わずに…」という条件で作成するというのがテーマでして…。
ただ、それだけです;;
※サーバには、PDOもインストールされているので、使用可能です。
他環境がどうとかじゃなくて使わないってだけの条件って・・・ 宿題ですか?
>>662 そんな糞条件はやぶり捨てろ。
宿題ですか?
自分に課したテーマだろ 俺もプログラム能力向上にたまにやる ただ人に聞いてるようじゃ本末転倒
666 :
652 :2008/08/07(木) 14:58:02 ID:???
>>663 ,664
宿題ではないです^^;
>>665 ソノ通りです。自分で決めただけです。
おっしゃるとおり、自分で解決しないとダメですよね。
一通り、動作することは確認したのですが、pack部分がどうしても自信がなくて…
そもそもなのですが、今回の問題(質問)は、mysqliやPDOといったことではなくて、pack関数や文字コードについてなのです。
※ここから、憶測と過去の記憶で話をしますので、間違いが大量にあるかと思います。
〜私が認識している「pack関数」の仕様〜
pack関数を使用して、アスキーコードの制御コード部分をバイナリ文字列で作成しています。
<今回のソースでは以下の部分で使用しています>
$sSql = str_replace("<" . $nCnt . ">", pack("C", $nCnt), $sSql);//☆1ココ
$this->p_sSql = str_replace(pack("C", $nIndex), $this->p_oConnect->escape_string($sData), $this->p_sSql);
if (mb_strpos($this->p_sSql, pack("C", $nCnt)) !== false) {//☆2ココ
例えば、pack("C", 1)とした場合、pack関数は、SOH(ヘッディング開始)の制御コードをバイナリ文字列で作成します。
もっと、簡単に言ってしまえば、"01"というバイナリデータを作成します。
667 :
652 :2008/08/07(木) 14:58:37 ID:???
〜私が認識している文字コード(SJIS)について〜 今回、pack関数を使用して何をしたかったのかというと、 置換対処となる位置へ制御コードを設定する です。 なぜ、置換対処となる位置へ制御コードを使用したのかというと、記憶の片隅で 制御コードと重なる文字(文字コード)はない と、あったからです。 具体的にいうと、SJISでは、 あ:82 A0 い:82 A1 : と、文字コードが定義されています。ここで、(XX部分は任意) XX 01 もしくは、 01 XX という文字コードは存在しない。 ※SJISの文字コードは、「81 40」から始まるので問題ない。
668 :
652 :2008/08/07(木) 14:59:42 ID:???
〜再度、質問〜 以上のことを踏まえて、 サニタイジング対象となる文字(クライアントからポストされるデータ)には、制御コードが含まれていることはない という前提で、置換対処となる文字に制御コードを使用することにしました。 1.上記 「〜私が認識している「pack関数」の仕様〜」、「〜私が認識している文字コード(SJIS)について〜」 で、間違っている/誤って解釈している箇所はないでしょうか? 2.今回、置換対象部分に制御コードを使用しましたが、他の値を使用する場合(置換対象部分)どういった値が考えられるでしょうか? 以上、みなさんのお知恵を拝借できればありがたいです。 ※説明するのが下手ですよね;;。すいません;;。
いい加減にしてくれ
670 :
nobodyさん :2008/08/07(木) 15:24:17 ID:czWOVMJR
100万件の文字情報を処理するのに、 40分くらい掛かるのですが、これが普通でしょうか? CPUは3GHzのものを使っているため、 理論的には一秒間に300億件処理できると思っていたのですが、 300億どころか400件ちょっとです。 その差がどこで出るのかちょっと分からないです。
>>670 クロック数をなんだとおもってるんだwwwww
一クロックに10件ってw
その処理内容がわからんと判断できん。
> 理論的には一秒間に300億件処理できる すげー理論だなw むしろその理論の根拠を知りたい
>>670 の使ってる鯖は全くロスのない画期的なシステムを積んでいるw
676 :
nobodyさん :2008/08/07(木) 15:36:55 ID:czWOVMJR
一秒間に300億件処理できると書いてあったのは、 日経ソフトウェアという雑誌です。 日経が出しているということで信頼できると情報ソースだとは思うのですが。 処理内容についてですが、100万件の文の中に特定の文字列が含まれていないか 検査して、含まれていたら、文字をくっつけたり削除したりする処理です。 最新のCPUを買ってきたので、あまりにも遅すぎて絶句しました。
>>670 ディスクが遅すぎるんだ。
SSDに変えろ
>>676 お前の言う1処理と、CPUの単位で使う1処理がまったく違うんだよ。
>>676 日経は正しいけどCPUがパチモン掴まされたんだよ。
くだらないレスしてる奴って面白いと思って書いてるのか?
>>670 スレ違い
>>676 お前のプログラムに無駄な処理が多すぎるから遅いんだよ
CPUの所為にするんじゃありません
682 :
nobodyさん :2008/08/07(木) 15:40:57 ID:z7k1C/ZX
>>676 とりあえずGは10億だよ
細かく説明しても分からないだろうから大雑把に言うけど(大雑把だからある意味間違ってるけど)
一秒間に30億処理できるのは、
CPUに与える命令の処理を数段階に分けたうちの一段分の処理です。
SQLで処理させるときはいろいろな命令を組み合わせているので1クロックではすみません。
まあそのくらいの処理で400件/秒は普通じゃね? 結果の入出力もあるんでしょ?
684 :
nobodyさん :2008/08/07(木) 15:52:30 ID:czWOVMJR
すみません、私が勘違いしているようですね。
処理件数としては
>>683 さんがおっしゃられるように妥当な線なんでしょうね。
分かりました。お騒がせしました。
無知って罪だよな
686 :
本質論 :2008/08/07(木) 17:18:34 ID:???
お前たち、昼間からそんな余裕ぶっていると職失うぞw 証券取引の電算化で、場立ちの職員は失業した。 自動改札口の登場で、切符きりの職員も失業した。 ICチップの登場で、数年後にはレジのババも失業する。 そして、自動プログラミング機の登場で、お前等も失業する。
「では、立ち上げてください」 ガタッ 「はい。立ちました」
まぁまぁ。誰でも最初は無知でしょ。 彼はここで質問して恥をかくことで、前に進んでいるわけだから 全然オーケーでしょう。 …そのシステムを明日納品というなら話は別ですが。
自動プログラミングとかマジ最高じゃん 作業効率がぐんと上がる でも、生きてる間にできるだろうか・・・
690 :
nobodyさん :2008/08/07(木) 18:10:53 ID:jtfieMzI
自動プログラミング機があったところで、やっぱり理論的に仕様を構築しなきゃいかんのだろ?
そこで自動仕様構築機ですよ
PHPは保守案件多そうだから定年まで後30年は安泰だろw
そこで自動保守機ですよ
自動保守機の保守は?
>>686 > 証券取引の電算化で、場立ちの職員は失業した。
> 自動改札口の登場で、切符きりの職員も失業した。
> ICチップの登場で、数年後にはレジのババも失業する。
> そして、自動プログラミング機の登場で、お前等も失業する。
うーん。失業するようなのは職業の内容によって決まると思うな。
仮に同じ能力を持った人がいたとして、
二人になれば、こなせる作業の量も二倍になるという
ような内容の仕事、つまり作業内容がほぼ同じで並列実行可能な
単純作業は自動化できるから失業するんだよ。
だからこれプログラミングには当てはまらないのね。
>>695 うおぉ、目が覚めるような達観な意見だわ。
暑い時にも、こういう論理的に物事を観察できる人と仕事したいわ。
基本的に、IT化によって単純作業は減るだろ。 でも、IT化によって増える単純作業もある。 たとえば、有害サイトを監視する人たち。大量の人力を投入している。 結局、仕事の内容が変わるだけ。だから、路頭に迷うのはその変化について行けない人。 つまり適者生存。自助努力で生存はできるんだよ。だから、ワーキングプアなんていう人は単に努力が足りない怠け者。
いま酷い自作自演をみた
プログラミングだって同じ能力の開発メンバーが二つあったら同じ期間で二倍のソフト作れるだろwwwwww 半分の期間で一本つくるとかは無理だけどさ
700 :
nobodyさん :2008/08/07(木) 19:52:55 ID:nCGT/HD5
ファイルからの読み込みに関して質問があります。 freadなどによる読み込み処理は基本的にアトミックでしょうか?非アトミックでしょうか? fwriteに関してはマニュアルに書いてあるのですが、読み込み系の関数については書いてなく、またそれに触れた記述のあるサイトも見つからないので困っています。 どなたかわかるかたいたらよろしくお願いします。
前者
>>699 ソフトってのは数をたくさん作るものじゃないからね。
一つのソフトを分業してつくる。
そしてなにより、同じものは作らないのよ。
703 :
nobodyさん :2008/08/07(木) 20:26:54 ID:0HdcDnNY
\ やあキム! ./< `∀´ >∧_∧∧_∧<`∀´ >∧_∧<`∀´>ノ \ ∧_∧ ∩ ./∧∧ つ<`∀´∧_∧∧_∧∧∧*`∀´>∧_∧ \ < `∀´>ノ______ /∧∧ |\ ∧ `∀´ >∧_∧∧_∧∧_∧∧∀´> キム!∧ ∧.\ (入 ⌒\フ /| ./<`Д´>| \ _人_人_从_人ノヽ_人_人_ ∧∧_∧ <`∀´ >_\ ヾヽ /\⌒フ/ | /∧_∧) て`Д´>`∀´> / ̄ ̄∪ ∪ /| .\ || ⌒| ̄ ̄ ̄| / ∧∧´ >) キ・ム!! キ・ム!! ( ∧_∧ /∧_∧ホルホルホル \ ∧∧∧∧ ./ `Д´> ) (<`Д´# > / < `∀´>_/ \ < ま >∧_∧ ⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒.∧∧∧_∧ || ̄( つ ||/ \< た >∧_∧∧_∧< `∀´ >∩∧_∧<`Д´.<`Д´∧_∧ || <_○___> || < キ >∧ ∧ <`∀´*∧_∧∧_∧`∀´>O∧_∧∧∧.∧ ――――――――――――――― .< ム >――――――――――――――――――――― ∧_∧キムを呼べ! < か > ∧_∧ ∧_∧ ~~・━⊂<`∀´#>⊃-、 ∨∨∨ \ < `∀´> <`∀´ > ←キム /// ノ:: //| ./ はい\ ( ↑キム)_( ) |:::|/< ̄ ヽノ:::::::|::::|/| / ∧_∧キ\∧_∧ ∧_∧  ̄ ̄ ̄/.//| / ̄<__> ̄ ̄ ./| | .| /γ(⌒) `∀´ >ム \`∀´> < `∀´> / ┃| | / ∧_∧ 三// |__|/ /(YYて)ノ ノ 君 \↑キム ↑\)_/ |__|/ キム→ < ;>はいニダ / \  ̄ ̄ ̄ ̄\ !! \ キム | | ┃. __
>>703 正論言って悪かった。
反論できないことはわかっていた。
いじめすぎたと思っている。
706 :
700 :2008/08/07(木) 20:47:58 ID:nCGT/HD5
707 :
nobodyさん :2008/08/07(木) 20:49:27 ID:0HdcDnNY
>>702 お前のとこは一度に一本しか開発せんのか?
今ですら不安定なのに6になったらまたいろいろ変わるからなぁ… 他のやったほうがいいのかな
うむそうしろ
710 :
700 :2008/08/07(木) 22:27:04 ID:nCGT/HD5
>>701 すいません今試してみたら非アトミックみたいですね
ていうか最初から自分で試せばよかったですねすいません
そうだね
PHPはもう終わり。これからはFORTRANの時代がくるお
Yahooのサイトは、ほとんどがphpで出来ているって知ってた?
714 :
nobodyさん :2008/08/08(金) 00:03:37 ID:LL9yeWvg
WEB2.0風のロゴを作ってくれるスクリプトがありますがどういう風に画像を生成しているのでしょうか?流れを教えて頂けると幸いです。
716 :
714 :2008/08/08(金) 01:06:33 ID:BmBMQdVo
>>715 http://creatr.cc/creatr/ 先ほどは携帯からで情報量が少なくすみませんでした。
上記URLのようなスクリプトを作成するにはどのようにすればよいでしょうか?
GDやImageMagicというようなものを使えばできますか?
また、できるならば処理の流れや参考になるサイトなどを教えて下さい。
お願いします。
PHP
GDで出来そうだな。 処理の流れとしてはsubmitしたときにセッションIDを割り付けてユニークなURLをつくり JavaScriptのXMLHttpRequestでセッションIDを投げる。 受けるほうはXMLHttpRequestでlistenしなくてもimgタグのsrcを変更すればすむな。
719 :
714 :2008/08/08(金) 01:56:31 ID:???
すげーばかww
preg_replace_callbackを使って特定の文字を別の文字へ変換しようとしています 拡張子を含んだ文字列であり、空白や<br>が来るまでを抽出したいのですが その拡張子が不定なため、 "files_[A-Za-z]+\..+ "など試しています。 しかしこの場合は空白も持っていかれてしまい結果がくるってしまいます。 空白や<br>特定の文字を抽出し、しかし空白や<br>はパターンにハマらないようにするには どのようにしたらよいでしょうか。
722 :
nobodyさん :2008/08/08(金) 15:57:09 ID:5aObnylF
すみません IDをだし忘れました>721です
723 :
nobodyさん :2008/08/08(金) 16:26:17 ID:EUK3hcbO
予定があり外出しているので携帯からですが 拡張子という事を考えると締めの部分を \.[0-9A-Za-z]+ とすればでうまく出来そうですね 失礼しました
724 :
nobodyさん :2008/08/08(金) 21:06:31 ID:vetvuCDP
http://www.2ch.net/2ch.php?saba=a のようにパラメータもたせて
<?php
$saba = $_GET[saba];
if($saba == ""){
$saba = 1;
}
switch ($saba){
case 1; $file = "PHP"; break;
case 2; $file = "RERL"; break;
}
html部分
include("$file.php");
<img scr="$file.gif">
html部分
?>
のようにテンプレ表示させるものを組みました。
脆弱性があったらしくサーバを不正利用されてしまいました。
自分で考えてみて
・switchにdefaultをいれなかった
・一部にパーミッションの設定を忘れた(これは直しました)
・.htaccessでindexなしはエラーになるようにしてるのでindex.htmlを作らなかった
など思いついたのですが、自分で気づいていないだけで悪い部分があるのでしょうか?
>脆弱性があったらしくサーバを不正利用されてしまいました 詳しく
726 :
nobodyさん :2008/08/08(金) 21:44:20 ID:vetvuCDP
>>725 いつの間にやら変なファイルがアップされてました。(自分のファイルではありません)
ちなみにファイルアップロード機能はつけてません。
>>727 書き忘れていました(すみません)がレンタルサーバなのでiniファイルの確認ができません。
defaultを付け加えるのとecho file_get_contents("$file.html")で作り直して
register_globalsについては問い合わせてみます。
ありがとうございました。
729 :
728 :2008/08/08(金) 22:46:19 ID:vetvuCDP
730 :
nobodyさん :2008/08/08(金) 22:51:05 ID:4kmu6RVl
マイクロソフトのサイトのWindowsUpdateなど、 サーバー側で処理している際に進捗状況を表示させるサイトがありますが、 あれって、phpでどうやるのでしょうか? 画面が変わらずに進捗バーだけが変わる処理って、 設計すら想像ができないのですが、 キーワードだけでもいいので、教えて頂けませんか?
SMTPでソケット通信してるんですが、telnetでehlo localhosとか送信すると 250-localhost 250-PIPELINING 250 8BITMIME なんて返ってくると思います。 ストリームを開いた後fgets()を2回実行すれば2回目で「250-PIPELINING」が取れるかと思いきや、 反応が返ってきません。(1行目は返ってくる) どうやれば2行目を取得できるのでしょうか。
732 :
700 :2008/08/08(金) 22:51:35 ID:+1/Xusuf
昨日の質問(
>>700 )に関して追加で聞きたいことがあるのですが、
今度は書き込みに関して、書き込むデータのサイズが1バイトである場合にはアトミックであることが保障されますか?
アトミックでないことを確認するのは簡単なんですが、アトミックであることを確認するのは難しく困っております。
どなたかわかるかたよろしくお願いします。
734 :
nobodyさん :2008/08/08(金) 23:57:15 ID:fWWc32nm
php初心者です。 データベースプログラムを書いています。 ph_connect関数を使用してPostgreSQLサーバに接続を行っていますが、 接続に成功 or 失敗したかの戻り値が返却されません。 原因がわかりませんので教えてください。 開発環境は以下の通りです。 ■linux ■Apache2.2.8 ■PostgreSQL8 ■PHP5
PHPってregister_globalsとか糞な言語だな
>>734 var_dump
error_reporting
display_errors
737 :
nobodyさん :2008/08/09(土) 00:01:42 ID:I6AK6Coj
php初心者です。 データベースプログラムを書いています。 ph_connect関数を使用してPostgreSQLサーバに接続を行っていますが、 接続に成功 or 失敗したかの戻り値が返却されません。 原因がわかりませんので教えてください。 開発環境は以下の通りです。 ■linux ■Apache2.2.8 ■PostgreSQL8 ■PHP5
ITが高度に進んだ現在、 課長、部長は要らないんですよ。 天才的なエンジニアが一人いて、 それを補佐する秘書役が数人要ればいいんです。 いすに座って、前時代的な価値観で決済する課長や部長に何の価値がありますか?
エンジニアに秘書とか頭沸いてるんじゃね?
>>739 お前馬鹿だなw
堀江も元々はエンジニアだったんだよ。
途中から、お金に目がくらんで買収の道に進んじゃったが。
馬鹿なのはお前だろ知ったそぶりで物語るな 堀江は経営者であって技術者ではない 元々って経歴も調べずに適当なことをいうな 東大在学中にベンチャー起業して中退したんだろ 東大に入ったのも人脈を作るためだけ(テレビでそう語ってる) 仮に堀江がエンジニアだったとしてもエンジニア時代に秘書とかつくわけなかろう
742 :
nobodyさん :2008/08/09(土) 08:46:05 ID:CO+6pVsH
質問です 文字数制限最大10文字でフォーム入力を受け付けて、sqlでのカラムの最大文字数も 10文字を設定しているとき、「"12345678"」という入力値を入れられた場合、 クエリ直前でaddslashes()したら実際の送信値は\"123456789\"となりSQL側での 文字数制限はオーバーしてしまいエラーになります。 この問題はどうクリアしたらいいんでしょう? 送信前の文字数チェックの段階ではSQLでの文字数制限の2倍まで許可すればいいんでしょうか?
>>742 カラムのサイズを大きくするなり、
POSTされてきたデータを正しく処理してから、
格納すれば良いだけの話。
addslashesなんて使わない
>>741 これだから馬鹿は・・・ペラの資料で読んだことが全てだとでも?
実際エッジ時代の堀江は技術者でもあったんだよ。
てゆーか弱小ベンチャーに専任技術者なんているわけないだろ。
人なんていないんだから、社長だからって経営だけしてりゃいいってもんじゃないんだよ。
営業やら開発やら、果ては使いっぱにやらせるようなことまで全部やるんだよ。
>>745 ベンチャーといっても1人でやるわけないだろ。
兄弟でやっている会社で兄は営業、弟は開発っていうところも知っている。
本当に全部やるのは個人でやっているやつだけ。
妄想を語るのは構わないがスレ違いなのに気づいてくれ。
よそ逝けガキども
そりゃ困るなw
750 :
nobodyさん :2008/08/09(土) 16:18:34 ID:dbZpQNfP
あるPHPスクリプトをWebサーバーでうごかしたら所有者がapacheの削除できないディレクトリとファイルを 勝手に作られてしまいました。 アンインストールしてもこれらのディレクトリとファイルがのこってしまってるのですが削除するには どうすればいいのでしょうか? 話によるとPHPスクリプトなどで削除するしかないらしいとのことですが、こうしたディレクトリとファイルを 削除するスクリプトなどがあるようでしたた教えて頂けませんか?
>>750 rmdir
unlink
PHP関数を知りたいんじゃなくて制作依頼なら、ここは自分で作りたい人のスレなのでどこか別スレへ
>>752 どうもありがとうございます。
適当に↓のようにやったらできました。
$files = glob( "dir/*" );
foreach( $files as $file ){
unlink($file);
}
rmdir( "dir" );
754 :
nobodyさん :2008/08/09(土) 18:21:46 ID:q0bTOCvY
あるPHPスクリプトをWebサーバーでうごかしたら所有者がapacheの削除できないディレクトリとファイルを 勝手に作られてしまいました。 ファイルを削除するPHPスクリプトを使って削除しましたが、 あるPHPスクリプトで作ったファイルの所有者がapacheになるってことは 同じサーバの別の人のPHPスクリプトが作ったファイルの所有権もapacheってことですよね? ファイルを削除するPHPスクリプトを使って自分のファイルを削除しましたが、 パスを変えれば、他人のスクリプトも削除できるってことじゃないですか?
やってみれば
756 :
nobodyさん :2008/08/09(土) 19:00:16 ID:q0bTOCvY
やってみませんよ。そんな悪いこと。 でも他人がやるかもしれませんよね?
誰もやらんよそんなこと。
758 :
nobodyさん :2008/08/09(土) 19:12:07 ID:z9jw78px
>>754 同じサーバの別の人のPHPスクリプトが作ったファイルの所有権もapacheってことですよね?
所有権はphpで自由に変更できるから、必ずしも所有権がapacheになるわけではない
HomeディレクトリはUnix権限が絡むから単純に所有権がapacheでも削除できないと思う
/var/www/html で共有してるなら別かもしれないけど
759 :
nobodyさん :2008/08/09(土) 19:18:53 ID:ldipYcTh
"nph-test.php"というファイルを作りました。 httpレスポンスをキャプチャしたものをコピペして echoで出力してみたんだけど、サーバーにヘッダを つけられててnphとして動いていないみたいです。 何かphpとかIISとかに設定が必要なんでしょうか? 何のためにそんなことしてるのかというと、ちょっと したテストなので気にしないで下さい。
超エスパーが回答 nphって鯖を介さないのが前提だからapacheモジュールだと機能しないんじゃね?
超PHPerが珍答 IISって書いてあるけど?
762 :
nobodyさん :2008/08/09(土) 23:05:38 ID:CO+6pVsH
質問します phpでプログラムを書いていたら、動かすときにやたら時間がかかります。 機能としては、履歴書の項目をDBに登録・引き出してフォームにプリセット・そこからダイレクトに編集と保存 ってくらいのものです。(一度に操作されるカラムは最大で70個、全部同じテーブル) それで、 ・動かし始めてしばらくの間はサクサク動く、登録もデータ引き出しも再登録もサクサク ・しばらくブラウザを閉じずにいじってると遅くなる。画面にフォームが映るまで20秒とか、酷いときは30秒でタイムアウト。 これって、何が原因なんでしょう? 根本的にはソースを見せなきゃわからないとは思いますが、 それは無理なんですが、、マシンが遅いとかありえるでしょうか? プログラムそのものが悪いなら、最初だけサクサク動くっていうのがわかりません しばらく時間が経つ(何度かページ移動を繰り返す)と処理が遅くなるという条件の場合、 どういった原因の可能性が考えられるでしょうか? 無茶な質問ですみません php5 apache2 mysql5 winXP Pen3-900Mhzのマシンで動かしてます
>>762 >phpでプログラムを書いていたら、動かすときにやたら時間がかかります。
自分で答えだしてますがな
>php5 apache2 mysql5 winXP Pen3-900Mhzのマシンで動かしてます
>>762 ブラウザ閉じたて開きなおしたら動作は戻るの?
そうならブラウザとかクライアント環境の問題だと思うが。
もしくはセッションデータが異常に巨大化してるとか、コネクションプールがおかしくなってるとか。
まったくプログラム組めない釣り師が1名ほど常駐してるなw
766 :
762 :2008/08/09(土) 23:43:16 ID:CO+6pVsH
>>763-764 ありがとうございます やっぱりスペックがしょぼ過ぎるのかなぁ
平行してフォトショとか動かしまくってます(メモリは512)
セッションデータが巨大化してるっていうのは考えても見ませんでした
確認します echo $_SESSION;でいいのかな? また質問するかもしれませんが
よろしくお願いします
お前は何を言ってるんだ
http://www.igros.net/workroom/bbs/workroom4-12.html このサイトのプログラムを丸々コピー、bbs.phpとしてサーバーにアップロードしてみたのですが、入力フォームだけ表示されて、後はメッセージを送信しても何の返答もありません。
これはこのサイトのプログラムが間違っているのでしょうか?それともこちら側に問題があるのでしょうか?
エラーメッセージも表示されない為、何がなんだか分からなくなってしまいました。
サーバーはさくらインターネットプレミアム、PHPのバージョンはPHP 5.2.6です。
設定等は一切弄っておりません。
コード古すぎ
770 :
768 :2008/08/10(日) 01:56:00 ID:z5q4t0dA
>>769 そうなんですか
phpをはじめたのはこれが始めてでよくわからないのですが、php4とphp5では大幅な仕様変更がされていると言うことでしょうか?
だとしたら、php4の講座は使い物になりませんよね・・
>>771 php4とphp5は別物と考えても良い。
今なら当然php5。
773 :
nobodyさん :2008/08/10(日) 02:08:33 ID:z5q4t0dA
>>772 php5向けの講座を探してみます
ありがとうございました。
774 :
nobodyさん :2008/08/10(日) 03:28:06 ID:c6gQIYUS
PEAR使ってキャッシュ生成したんだけどキャッシュファイルが見えないもの? でも指定したディレクトリ消そうとするとキャッシュファイルが存在してる なんで? PHP5 サーバ:さくら
日本語で
776 :
nobodyさん :2008/08/10(日) 04:18:01 ID:c6gQIYUS
はてなで同類の質問見つけたんだけどFFFTPでディレクトリ見ると空状態。 キャッシュ収納用に指定したディレクトリのパーミッションは777に設定。 ディレクトリが見た目が空状態なんでディレクトリを消そうとすると Cache_ごにょごにょファイルが存在しているって表示される 理由分かる人お願いします
778 :
nobodyさん :2008/08/10(日) 06:27:37 ID:vDTyiIHP
ログファイルのサイズが2Gになっていて、 それ以上書き込めずエラーになっていました。 ですが、ファイルシステムはext3で、 ファイルシステム自体には、2Gのファイルサイズ制限なんてないはずです。 「PHPで書き込めるファイルサイズの制限」ってありますか?
ディスクフルというオチではないよな
ファイルポインタが32ビット符号付だからじゃねーの?
それはメモリマップドファイル
782 :
774 :2008/08/10(日) 11:40:20 ID:???
はいはい
784 :
774 :2008/08/10(日) 12:06:16 ID:???
>>783 いや毎度レスつまんないから来なくていいよ
日本語とか朝鮮語とか煽りあわずに、PHPスレなんだからPHPという言語で問題を示したら お互い意思疎通がスムーズになると思うんだ。
return true;
die;
788 :
774 :2008/08/10(日) 12:48:17 ID:???
phpに関係ないから気の利いたレスはできないよ
俺はPHPに関係があっても気の利いたレスなんてできないぜっ!
792 :
nobodyさん :2008/08/10(日) 23:04:05 ID:+zJ2I0fE
別スレで聞いたのですが誰も答えられなかった質問です。 コメントの書き方についてですが 質問@ ユーザー変数を英語で書く場合みなさんはどう書きますか? 質問A システム変数についても普通はこう書くみたいな定番はありますでしょうか? 例えば <?php # user settei ←質問@(あなたならどう書く?) $pass = 'abc'; # system settei ←質問A(ここも英単語でどう書く?) $a = $pass; とこのようにコメントの書き方に付いての質問ですがよろしくお願いします。
>>793 フレームワークもいろいろあるので
みんなのコメントはどう書いてるのかな?と思ったので。
まあどうでもいいですね。ごめんなさい。
PEARのソース見たらいいんじゃね?
>別スレで聞いたのですが誰も答えられなかった質問です。 やたら挑戦的なのはなぜなんだぜ
797 :
778 :2008/08/11(月) 08:12:30 ID:y4BtjT7Y
ddで5Gのファイルを作成すると、作成できました。 またRubyでそのファイルへの追加をしてみたところ、出来ました。 どうやらこれはPHPの制限のようです エクステンション等で解決できるのか、わかりませんが
798 :
nobodyさん :2008/08/11(月) 15:38:43 ID:4sR4BI/C
PHPにJavaScriptって必要なんですか?
自動車にカーナビって必要なんですか?
>800 PHPとJavascriptは別物。 ウェブシステムをPHPで作る場合、 ・ 画面のフォームに入力して送信ボタンを押してサーバから結果を返せばいい場合、Javascriptは不要 ・ googlemapの様にマウスの動きで画面が変わるような場合、Javascriptは必要 ・ フォーム入力で、他の入力を元にプルダウンメニューの中身等を変える場合、Javascriptは必要
像のエサに毒を入れるのって必要なんですか?
ひきこもりに2chって必要なんですか?
801へ 必要。ないと僕は運転できません。 803へ なんてこというんだ。君は 804へ 必要。いいかいひきこもりは自称自宅警備員をしているらしい。 僕は今週で卒業だが、名残惜しい。 ひきこもりに休憩として、またヒッキーが巡回パタロールをしている から2ちゃんが安全なんだ。 わかるかな
>>805 すみません、どこらへんを立て読みですか><?
夏だね ガキが湧いてきた
>>805 アンカーも出来ないなら読むだけにしろ。
806へ 立て読みって何ですか? 808へ アンカーなら去年の体育大会でやりました。
810へ 優先順位は自分が何を優先するかによって決まります。 自分の胸に聞きましょう。
>>810 PHPとJavaScriptが何なのかをまずWikipediaあたりで調べて来い
優先順位とか謎なこといってるあたりよくわかってないんだろ
>>810 違う。
PHPはサーバで動くモノ。Javascriptは、クライアントで動くモノ。
処理結果を表示するのに、一々サーバに問い合わせて画面全体を書き換えて処理するなら PHP:必要 JavaScript:不要
AJAXアプリみたいに非同期通信をしたり、入力チェックをクライアント側で済ませたりするなら PHP:必要 JavaScript:必要
サーバとの通信が不要なソフト(簡易ゲームやら画面の飾りやら)なら PHP:不要 JavaScript:必要
JavaScriptの部分は、FlashやJavaアプレット、VBScript(※)に置き換え可能 (※:クライアントをIEに限定する場合)
(PHPスレ的には余談だが、PHPの部分はASPやJSP、Perlなどに置き換え可能)
ケイタイ相手とか、古いブラウザ相手なら別だが、今はクライアント側で(暫定的に)入力チェックぐらいしとくのが一般的。
(もちろん、クライアント側のチェックはページ捏造で回避されたりするから、サーバ側で再チェックは必要だが・・・。)
送信ボタン→入力エラーだと、使い勝手が悪いウェブアプリになる罠。
残りの9995点について補足してくれんかのう
100点の回答があるわけがない
お前ら相手しすぎだぞ
不真面目なレスばかりで嫌気が差すね。 さすが、夏休み真っ盛りで感じか。 補足して説明すると、 女性は正しいか間違っているかではない、好きか嫌いかってこと。 ここまで言えば、分かるよね?
821 :
nobodyさん :2008/08/12(火) 07:02:35 ID:E4lJmioa
phpのマニュアルをよく読んでいますが、 関数の説明の後にサンプルコードがありますが、 あれは検証済みのコードなのでしょうか? 自由に投稿できて、全く検証されていないコードなのか? 何らかしらの検証過程を経て載せられているものなのか? そうだとしたら、どの程度の品質レベルなのか? ご存じの方いらっしゃいますか? 目的に合うソースがあっても、ソースのロジックがわかりにくく、 結局自分で作ってしまう場合が結構あります。 信頼できるソースなら(例えば、本に載っているようなサンプルコードのレベル)、 そのままコピペと多少の検証テストで使いたいと思っています。
本のソースを信用するとかw
>ソースのロジックがわかりにくく 自分が理解できてないだけじゃんw
自分で作成した掲示板などのWebアプリがあるんですが、 XSSなどに対するセキュリティ評価をする方法ってありますか?
ここにURL載せる
829 :
nobodyさん :2008/08/12(火) 12:27:05 ID:JPLu1eak
初歩的な事なんですが、phpMyAdminにログインが出来ません。 初心者なので「実践マスターPHP+MYSQL 小島まさご著」という本を買って試みているのですがログインのユーザー名とパスワードを拒否されます。 実践マスターでは「config.inc.php」←これのログの中のパスワードとユーザーIDを好きな文字に書き換えているので私も好きな文字(自分の名前とか…)に書き換えました。 何回も書き間違えがないか調べてもミスが見当たりません。 おかしい所はphpMyAdminのログイン画面の一番下あたりに「mcrypt拡張をロードできません。PHPの設定を確認してください」と注意文が書いてありました。 まったく意味がわかりません。誰か教えていただけませんか? よろしくお願いします!
DBのIDとパスワード入れろ
831 :
エスパー :2008/08/12(火) 12:40:29 ID:???
DBのIDとパスワード入れろ
832 :
nobodyさん :2008/08/12(火) 13:03:35 ID:JPLu1eak
>>830 >>831 返答ありがとうございます。
rootでログインって事でしょうか?
rootでログインするとログイン画面が文字化けするんでが・・・
初心者でごめんなさい・・・
どうすればいいですか?
>>826-828 ありがとうございます。
どれも現実には難しそうですね・・・。
自前でチェックするために、チェック項目を揃えたサイトはありませんでしょうか?
>>832 エンコードの設定がおかしい。
あともしCDからコピーしてるなら最新版使ったほうがいい。
>>833 ぐぐれば星の数ほどある
835 :
nobodyさん :2008/08/12(火) 13:40:14 ID:JPLu1eak
>>834 返答ありがとうございます。
CDからではなくダウンロードサイトで落としたので最新版だと思われます。
設定はmy.iniで大丈夫でしょうか?
52番目と57番目と81番目は「default-character-set=ujis」
82番目は「skip-character-set-client-handshake」に変更して日本語が使えるようにしているのですが文字化けします。
ちなみにPHP5です。
ご指摘があればよろしくお願いします。
mysqlとphpmyadminのどっちのこと言ってるか分からんけど両方ね。 あとmysqlの設定の文字コードだけ変えても意味ない。 phpmyadminはconfigログインに設定してるの?configログインで「ログイン画面」て何のこと指してるか良く分からんが。 httpログインで出てくる窓の文字化けなら気にスンナ。 今時euc-jpもないので全てutf-8で統一にしたほうがいい。 1.mysqlをutf-8でインストール。 2.php.iniのmbstring関連を全部utf-8にしてapache再起動する。 3.phpmyadmin最新版を落として入れて、config.inc.phpのauth_typeをhttpにする。 でおk
837 :
nobodyさん :2008/08/12(火) 13:58:28 ID:JPLu1eak
>>836 返答ありがとうございます。
質問があやふやで申し訳ありませんでした。
ご指摘受けた通りにやってみます。
ありがとうございました!
結局どっちのことか言わないのは、どっちかわかってないってことか。
839 :
nobodyさん :2008/08/12(火) 14:31:52 ID:WorMlqBO
$thisという変数について解説してくれてるページはありませんか? $が検索に反映されないから全然でてこない
検索に反映されていないって、 それはrobot.txtが置かれていないか、 metaタグで拒否しているからじゃないの? どっちみち、phpとは関係ないぞ。
842 :
nobodyさん :2008/08/12(火) 14:40:46 ID:WorMlqBO
いや$thisについて調べたいんだけどググっても「this」で検索されちゃうから 関係ないページがたくさん出てきちゃってみつからないってことです
843 :
nobodyさん :2008/08/12(火) 14:42:20 ID:WorMlqBO
ああリロードしとくんだった
>>841 ありがとうございます
言っている意味が全然わかんない。 検索されちゃうって、誰からに検索してもらっているのか? インターネット使えるから、こうやってレスできるんでしょ?
質問者のくせに偉そうだな。自分で検索すればいいだけだろ。
848 :
nobodyさん :2008/08/12(火) 15:06:01 ID:rWPCXvDX
そもそも、C++のWeb系言語のくせして 変数に$つけるとか間違ってる。$つけていいのはPerlとその後継のRubyだけ。
シッシッ
850 :
nobodyさん :2008/08/12(火) 15:08:23 ID:rWPCXvDX
変数に$つけたら、書くときも読むときも面倒だろ。だれだよ、こんな習慣を Web系スクリプト言語にもちこんだやつは。Javaの後、PHPやると必ずエラーがでて 無性に腹立つ。
各言語の表記法に即座に対応できない糞の戯言はよそでやれ
852 :
nobodyさん :2008/08/12(火) 15:20:55 ID:rWPCXvDX
うるせえ、うんこやろう。はなくそでもくってろ。
854 :
nobodyさん :2008/08/12(火) 22:53:17 ID:Pr6MmFHo
なんでPerlはいいんだろう。
Perlだからさ
>>824 丁寧なご回答どうもありがとうございました。
比較的信頼性は高くて、誰でも気軽にnoteに入れることはできないんですね。
それで少し安心しました。
ただ、公式のHPにもかかわらず自己責任という名の無責任体質には腹が立ちました。
結局、信用できるのは自分だけってことでしょうか。
ここの皆がいるじゃないか・・・!
他人に責任を取ってもらいたいなら金を払うことだ
サンプルが公式サイトに載ってるのって すっごくありがたいことだと思うんだけど そういう風に感じないのは他の言語を触ったことが無い人かしら
あと公式まぬあるが逆引きなのが良い やりたい事から調べられるからとっつき易い MSDNとか探すの大変
>>862 どこが逆引き?
関数ベースで並べられているだけじゃん?
>>857 PHP自身のバグに無責任じゃ困るけど、読めるコードを
読める形で記述してるのに検証せずにコピペするのは自己責任。
そういえば関数一覧が使い難くなってリニュしてたな 前のに戻せよ
>>860 > そういう風に感じないのは他の言語を触ったことが無い人かしら
他の言語でいうなら、JavaDocは分かりやすい。
phpにもJavaDocのような機構があれば便利なんだが。
phpdocですね
>>867 おおお、あったのかphpdoc。
サードパーティー製ならあるだろうなぁって思っていたけど、
まさか本家にあるとは。これは最近できたのかな。
>>869 何?その今まで知らなかったのが馬鹿みたいな言い方は?
そんな風に取るほうがどうかしてる気がするが
872 :
nobodyさん :2008/08/13(水) 11:43:36 ID:FG6j8C0r
ばーかばーか
>>871 クーラーが去年壊れて、暑くって気が立っているんだ。
>これは最近できたのかな。
>>868 >ずいぶん前からあるぞ
>>869 一体どう読めば馬鹿にしてるように見えるんだ?
>>870 は日本語が不得意なのか?ww
>>863 phpの関数探す時何から探すんだよ
全部中身でも見るつもりか
>>874 は?
これは最近できたのかな。→ずいぶん前からあるぞ。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
これは高校で習うことかな。→小学生で習うことだぞ。
どう考えたって馬鹿にしているだろが。
>>876 頭が弱い上に性格まで歪んでるのか・・・
本当に冗談である事を祈ります。
クーラー直せよwww
>>877 それは何らかの方法がわかっての事じゃないの?
>>881 例えば、文字を切り出す処理をしたい時に、
「文字 切り出す」で検索かければ一発じゃない?
逆引きに並んでいるっていうのが何を指しているのか知らないけど。
夏だなぁ。涌いてるなぁ。。
正引き 名前で検索→機能を知る 逆引き 機能で検索→名前を知る
それなんてDNS?
正直オンラインドキュメントは逆引きちょっと弱い気がする。 と思っていたらonline documentationで検索すると結構使えるのな
887 :
nobodyさん :2008/08/13(水) 23:44:23 ID:smcSjLcU
こんばんは。親切な方教えてください レンタルサーバー借りて、独自ドメインとって、 DBを使い、登録する画面と、登録されたものの一覧を表示するという WEBシステムを作っています。 トップ画面はindex.phpでDBからの一覧を表示しているだけなんですが、 この画面が見れないというユーザーがおります。 phpがダメなのかと思い、test.htmlというファイルで 見れますか?というだけの画面を作ったんですけど これもまた見れないとメールがきました・・ もちろん、普通にアクセス・登録できる人もたくさんいるのですが、 この「見れない」というのはどういうことなんでしょうかね?? メールでエラーメッセージの内容などきいているのですが、 返事もこなくて、へこみます 特定のURLは見れない、ってことがあるんですかね?
文字コードがおかしいんじゃね? metaタグで指定されていなければ指定してみたら? ApacheならAddDefaultCharsetを確認してみたら?
889 :
887 :2008/08/14(木) 00:10:45 ID:OO/Qi0nM
>>888 ありがとう、文字コードはメタタグで
指定してるんだよね・・
<meta http-equiv='Content-Type' content='text/html; charset=shift_jis'>
Apache/1.3.39 (Unix)ってサーバー情報に書いてあるが
レンサバ(さくら)なのでちょっと分からん・・
AddDefaultCharset調べてみる。
負荷で503 Service Temporarily Unavailableを吐いてるんじゃね? まあhtmlでも見れないようだから、クライアント側のブラウザとかがおかしいのだろうけども
>>890 なんで、こういう根拠もない無責任な回答する奴がいるだろう。
ユーザーによって見れたり見れなかったりするのなら、
DNSの設定が間違っているに決まっているだろ。
892 :
887 :2008/08/14(木) 00:35:21 ID:OO/Qi0nM
>>890 そうなんだ・・ あんまりOSとかブラウザ情報とか聞くのもナニかな、と
遠慮しているんだけど
クライアントの問題、といってもどうなってるんだか想像がつかなくて。
アクセスログみたら、エラーログすら残ってないんだよね
メール情報のプロバイダ・IPで検索すると。
もうちょっと突っ込んで状況を聞いてみることにします。どうもありがとう。
>>892 だから、webサーバーのアクセスログする残っていないなら、
DNSの設定が間違っているから、お前のサイトに到達できていないだろ。
httpレベルの話じゃない。だから、専用スレで聞け。
894 :
nobodyさん :2008/08/14(木) 00:52:17 ID:oz+RaL8c
test.htmlに 1<hr> <?php $a=1; include test.php ?> 2<hr> test.php <?php if ($a == "1") exit(); ?> のようにした時に$a=1の時に処理を中止してその後の2<hr>を表示する方法ってありますか? なぜphpから抜けたしただけなのにhtmlの処理もそこで止まるんだろう???
>>881 マニュアルの話なのに検索とか出してる時点で・・・
897 :
887 :2008/08/14(木) 00:57:49 ID:???
>>893 りろってなかった・・
レンサバなのに、DNSまで設定する必要があるの?エエエ
専用スレさがします。ありがとう。
898 :
nobodyさん :2008/08/14(木) 01:03:19 ID:njR6ZB/n
自分が今作っているPHPプログラムなのですが、テスト環境と本番環境のサーバがあり、 それぞれphpのインストール場所が異なります。 そのため、テスト環境でphpプログラムをテストした後、本番環境にコピーし、 #の1行目のところを変更する必要があります。(本当はテストした後なので修正したくない) これを、変更しなくてもよい方法はないでしょうか?
>>898 >>#の1行目のところを変更する必要があります。(本当はテストした後なので修正したくない)
の意味が分からない
そこに何が書いてあるの?
切り替えるべき値があるなら定数とかで宣言しておいて設定ファイルのようにincludeするとか
>>894 1<hr>
<?php $a=1; if ($a == "1") exit(); ?>
2<hr>
includeを展開するとこう書いてるのと同じことだ。
↓のようにすればいいんじゃないかな
include test.php;
1<hr>
<?php $a=1;test1() ?>
2<hr>
test.php
<?php
function test1() { if ($a == "1") return();}
?>
901 :
nobodyさん :2008/08/14(木) 02:43:32 ID:njR6ZB/n
>>898 envでインストールしてる場所がとれたと思う。
#!/usr/bin/env php
みたいなかんじで。
でも、envが使えないUNIX環境もあると思うが、そういう場合はどうするんだろ。。。?
岡田有希子さんの死因について未だになっとくができません。 スレ違いですが、何かの縁ですし、みんなで語り合いませんか。
phpspotメソッドというものがあるようなのですが どのように使うのでしょうか? LINUX、PHP5.2.6、ROOT有レン鯖です。 宜しくお願いします。
905 :
894 :2008/08/14(木) 10:07:45 ID:oz+RaL8c
>>900 お返事ありがとうございます。
それでやってみたけど駄目でした。
素直残りの処理をElseで括るしかないのかな
>>894 >>905 >>900 さんではないですけど、横から・・・
> 1<hr>
> <?php $a=1; include test.php ?>
> 2<hr>
>
> test.php
> <?php if ($a == "1") exit(); ?>
exit()の代わりにreturn;を使ってみて下さい。
includeしたファイル内でのreturnは、そこで処理を中止して呼び出した方の処理へ戻ることを意味しますよ。(PHP4以上)
907 :
894 :2008/08/14(木) 10:28:07 ID:???
return()
ではなく
return
としたらできました。
()の単純なミスでした
>>906 様どうもありがとうございます。
こんなことで昨日4時間ぐらい悩んでいたorz
908 :
nobodyさん :2008/08/14(木) 10:45:38 ID:Q1OktP3J
ずっとMSのVisualStudio系の開発をしてきたのですが、 phpをはじめたとしたweb系の仕事をしたくて勉強しているのですが、 phpでの求人広告を結構あります。 それで、phpが必要な案件というのはVerが幾つのことをさすことが多いのですか? Verまで書いてある求人広告があまりないので、分かりません。 教えて下さい。
>>908 少し前ならPHP4が主流でしたね
PHP4のサポートも終了ですから今後はPHP5です。
リリース番号まで気にすることはないでしょう。
それでもPHP4とPHP5の両方を勉強しておくことをオススメします。
PHP4で作られたシステムは山ほどありますので、それの改造や保守をすることになった場合に必要です。
それにPHP5に完全に移行していないサーバを使った案件でもやはりPHP4ですね
上位互換とは言え、PHP4からPHP5では大きく変化してます。(PHP5にはPHP4互換モードがあるくらいです)
PHP5を主にPHP4も押さえましょう。
ここで質問をしていいか悩みましたが、わかる方がいましたら回答をお教えください。 ■現象■ CSVファイルがダウンロードできない ■環境■ Microsoft Windows XP SP2 Microsoft Internet Explorar 6 Norton Internet Security ■詳細■ PHPを利用してデータの抽出結果をCSVファイルとしてダウンロードさせる機能を作成しています。 Mozilla系のブラウザ、Norton Internet Securityがインストールされていない環境では 正常にダウンロードを行う事ができるのですが、Norton Internet Securityが入っていない 環境でInternet Explorarを用いて実行すると、ダウンロードができないのです。 << 該当プログラムコード >> header("Cache-Control: public"); header("Pragma: public"); header("Content-disposition: attachment; filename=".$File_Name); header("Content-type: text/csv; name=".$File_Name); いろんなサイトを調べてみると、「headerで"Cache-Control:public"を指定する」等の 対応策が書かれていましたが、同じ状態になっているにもかかわらず改善されないです。 header("Content-disposition: inline; filename=".$File_Name); に変更したところ、「保存」は正常な処理を行っているように思え、ダウンロードができました。 しかし「開く」を実行すると、「〜.phpは有効なファイルではありません。」といったダイアログが表示され、"はい"でも"いいえ"でもCSVファイルはExcelで開かれます。 IE7で「開く」を実行すると、ブラウザでExcelが起動されるらしく、ダイアログは出ませんでした。 できることなら、ダイアログも出ずにIE6で正常に開く処理ができるといいのですが、なにかいい方法はないでしょうか。 ブラウザを変える・ノートンを削除するといった方法は、客先に注文できないためコードの修正、もしくは何かの設定を変える方法でお願いいたします。
>>911 やりたいことは「IE6でPHPから出力したCSVファイルをダイアログなしにExcelで開く」と・・・
現状が良く理解出来なかったが・・・
リンククリック時の挙動はContent-typeで決まるってことを考えれば、
> header("Content-Type: text/csv");
よりは、
> header("Content-Type: application/vnd.ms-excel");
じゃないか?(未検証、あくまでヒント程度に)
あと「開く」動作はIEのテンポラリから開くことになるから、環境によっては正常に動作しないこともあり。
913 :
912 :2008/08/14(木) 11:23:51 ID:???
> header("Content-Type: application/vnd.ms-excel"); application/x-csv の方がイイかも、か?
914 :
nobodyさん :2008/08/14(木) 13:46:30 ID:Q1OktP3J
>>909 >>910 詳しいご説明どうもありがとうございます。
アドバイス頂いた通り、php5をメインにphp4の差分を勉強していきたいと思います。
感謝です。
VSで開発してたんならおとなしくASP.NETでもやったほうがいいぞ Web系でどのシステム開発依頼が多いかというとASP.NET>Java>PHPって感じだし 会社としても単価が低いPHPより単価の高い案件とってくるほうがいいからね
916 :
nobodyさん :2008/08/14(木) 14:06:40 ID:ilLTwblx
PHP+MySqlを勉強してて、ある本に載ってたコードなんだけど、 ------------------- <?php if($cat_id){ $sql = "SELECT * FROM businesses b, biz_categories bc where"; //このb, bcとは何? $sql .= " category_id = '" . $db->quoteSmart($cat_id) . "'"; $sql .= " and b.business_id = bc.business_id"; //ここは何してるの? $result = $db->query($sql); ------------------- この3行目にある、bとかbcとかって、何ですか?
>>916 ここでの使い方は別名だよ
「businesses」などを「b」などと別名を割り当てておけば、
「and b.business_id = bc.business_id」を
「and businesses.business_id = biz_categories.business_id」って書かなくて済むね
>>917 っていうか、スレ違いに何で回答しているんだよ!
そういう奴がいるから、このレスの半分がスレ違いで埋め尽くされるんだ。
お前は、うちの近所で野良猫に餌をやっている腐女子と一緒。
キモイ。キモスギル。シネ。
919 :
916 :2008/08/14(木) 14:33:45 ID:???
>>917 な〜るほど。よくわかりました。ありがとうございました。
ASを省略したようなもんかと
愛における喜びについて語ろう 喜びとはすなわち生まれるということ 込み上げる感情の発芽であります しかし一方で決して永続性はない ただただ、その瞬間におけるプラスの感情であり つまりはそこからマイナスのエネルギーがなだらかに広がる あるいは、急速に落ちてくんです たとえば子供が産まれる その瞬間に対する喜びはしだいに消え失せる 自分の老いの確認 経済的不安 成長する子供は決して期待にそぐわない その緩やかな絶望 父性や母性は永続性があるじゃないか 父性や母性とはいったい何か 数学的、物理的に質量が測られるものではない 世の中に当たり前のことなどありません すべて原因があり結果がある 愛における喜びとは原因であり結果への誘導 絶望への過程を作る 喜びなどなければ、絶望しない 人間の感情の中に喜びなどいらないんです あらゆる犯罪は喜びに発動される 自分の喜びのために あるいは、他人を喜ばすために 人間は犯罪を犯す 喜びを貪るお前たちは罪悪の源だ
長い 3行で まとめろ
923 :
nobodyさん :2008/08/14(木) 15:55:45 ID:lAjhzaxs
コードを作成してブラウザで確認すると文字化けしてしまうのはなぜですか? ブラウザのエンコードを変えても文字化けしています。 utf-8ですべてまとめています。 文字化けしないようにするにはどうすればいいか誰か教えてください。
>>923 php.iniの設定見直せ。
phpinfoの内容確認しろ。
925 :
nobodyさん :2008/08/14(木) 16:15:20 ID:DCpr3k6v
つーか、PHPもASP.NETも難易度そう変わらないだろ。。 後々の手間を考えたら、ASPの方がいいかも。
eAcceleratorとかXcacheの質問ってここで良いんですかね
いいけど1読んでな
928 :
926 :2008/08/14(木) 16:54:49 ID:kPaTSKvd
929 :
nobodyさん :2008/08/14(木) 17:02:17 ID:60bQ7ofp
質問です。 PHPをローカルのパソコンで実行することってできないのでしょうか。 PHPコーディングが含まれるhtmlソースを、 ”php実行”結果のhtmlに変換する処理です。
>>928 Windows版PHPの初期のiniは知らんが、
extension_dirがちゃんと設定されてない可能性を考えて見る、と言うか見れ
それとiniの定義は以下の方が良くないか?(freebsd使いな俺はそうなのだが)
「extensions」でも問題ないが、絶対パスが使える分見落としも少ない
---------------------------------
[eaccelerator]
zend_extension="dllの絶対パス"
〜(eacceleratorで始まる項目が続く)〜
---------------------------------
>>929 >>928 のようにWindows版(ローカルがWindowsなら)のPHPを入れたらどうだ?
HTMLってことだから必要ならApacheも入れてしまえばイイかと
ブラウザで見る必要ないなら、PHPだけ入れてプロンプトから確認ががが
>>928 DirectoryIndex は全てのバージョンにあるぞ。無かったら作ればいい。
でも今回の件とは関係ないけど。
あとApache2.0と2.2は別物。2が動かなくて2_2が動くのは当然。
で、extensionsフォルダの場所は自分の環境の正しいところに入ってる?
933 :
nobodyさん :2008/08/14(木) 17:40:11 ID:lAjhzaxs
>>924 phpinfoの何処をみればいいんですか?
php.iniは本を見てそのまま真似たので他に変更箇所があるのか分かりません。
php.iniの変更場所を晒しますので変更場所があれば教えてください。
※矢印の方向に変更しました。
;default_charset = "iso-8859-1" →→ default_charset = "utf-8"
extension_dir = "./" →→ extension_dir = "c:/php/ext"
;extension=php_mysql.dll →→ extension=php_mysql.dll
;mbstring.language = Japanes e→→ mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP →→ mbstring.internal_encoding = utf-8
;mbstring.http_input = auto →→ mbstring.http_input = auto
;mbstring.http_output = SJIS →→ mbstring.http_output = utf-8
;mbstring.encoding_translation = Off →→ mbstring.encoding_translation = On
;mbstring.detect_order = auto →→ mbstring.detect_order = auto
;mbstring.substitute_character = none; →→ mbstring.substitute_character = none;
;extension=php_mbstring.dll →→ extension=php_mbstring.dll
;output_handler = →→ output_handler =mb_output_handler
何をしたらどう化けるのか
935 :
926 :2008/08/14(木) 17:53:12 ID:kPaTSKvd
>>931 >>932 紹介されていたサイトの指定だと「extension_dir = "C:/php/extensions"」ですが
自分の環境ではC:-php-extとなっているので"C:/php/ext"と指定して見ても変わりなく
ドライブCの大文字&小文字、仕切りの/を\でも試して見たんですが反応が無いです
eacceleratorの場所はアドバイスして貰った通りに
zend_extension="C:\php\ext\eAccelerator.dll"で指定もしましたが変化無い感じです
後ろでsquidやpolipoが走っていたりしますが特にエラーメッセージも無いので関係は無いでしょう
とりあえずDirectoryIndexは最後尾に追記しました
936 :
nobodyさん :2008/08/14(木) 17:55:31 ID:/DkD0y7+
あれじゃね?単純にソースコードをutf-8で保存してないとか。。
937 :
931 :2008/08/14(木) 18:03:56 ID:???
>>935 PHP5.2.6だよな?最新をダウンロードしたなら問題ないか・・・
phpinfo()で見た時の「extension_dir」は正しいか?
Apacheの再起動を忘れてて反映されてないってオチだったらポカーンだが
_SERVER["SERVER_SOFTWARE"] Apache/2.2.9 (Win32) PHP/5.2.6
http://127.0.0.1/phpinfo.phpに繋ぐと↑のように表示されます 。バージョンは新しい物の筈ですが…
なんとなくApache側の問題のような気がしなくもないです
LoadModule php4_module "C:/php/sapi/php4apache2.dll"がデフォの指示ですが
ウチの構成に/sapi/というディレクトリが無いのでここの変更はしょうがないのではと…
とりあえずあまり突飛な事はしてないと分かっただけでもおkです
凡ミスかもしれないので設定を洗いなおしてみます
939 :
926 :2008/08/14(木) 20:02:27 ID:kPaTSKvd
上のやつ名前書いてなかった…orz 実に初歩的な問題でした。"="の両端にあった半角スペースを取り除いたらあっさり認識しました .dllの場所とキャッシュは各々、 extension="eaccelerator.dll" eaccelerator.cache_dir="C:\php\cache" で問題無く適応されました。アドバイス頂いた方々本当に感謝です、勉強になりました
940 :
nobodyさん :2008/08/14(木) 23:34:07 ID:g5LH5b33
PEAR::Authを使って認証すると、md5のハッシュを比較して認証するようですが 検索してみるとmd5は辞書攻撃に対して脆弱だという意見があるようです。 そのまま使っても問題ないのでしょうか? それともsaltを付加して比較するようにオーバーライドした方が良いのでしょうか?
お前は何を言ってるんだ
942 :
nobodyさん :2008/08/15(金) 01:19:47 ID:6/CM4ZPR
ユーザー認証の処理にパスワードを入力すると思いますが、 みずほのインターネットバンクだと、パスワードの2番目と4番目を入力しろとかいう指定があります。 このような認証方法だと何かセキュリティーに有利な点がありますか?
はっきり言うわよ。 お前たちは、低脳。
>>940 salt使ってもmd5。だいたい辞書攻撃なら同じことだろ・・・
>>942 インターネット経由と郵便局経由のパスワードの両方で認証する点が最大のメリット。
>>942 マトリックス認証のことを言ってるのならば、キーロガー対策だと思う。
スレ違いだとは思うんで、続きは他で。
946 :
nobodyさん :2008/08/15(金) 08:06:55 ID:6/CM4ZPR
947 :
929 :2008/08/15(金) 08:28:51 ID:VdYE+goq
日付の変換ですが エクセルで DATEVALUE(2008年08月11日) →39671 を PHPでやるにはどうしたらよいですか?
$amount_day = 365 $amount_month = 12 $start = 1900 $end_year = 2008 $end_month = 8 $end_day = 11 $diff_year = $end_year - $start $datevalue = $diff_year * $amount_day + $end_month * $amount_month + $end_day
$amount_month = 30
strtotime('2008年08月11日') / (24*60*60)
953 :
nobodyさん :2008/08/15(金) 12:40:52 ID:k2b6NQX0
次のような目的のような関数を作りたいのですが、 下記の場合複数のcsvファイルがあっても1つしか取得できません ミスをご指摘いただけませんでしょうか。 // 書式: array dirflist_re ( string $directory, string $pattern ); // $directoryに存在するファイルから$patternで指定したパターンを含むファイルリストを取得する。 // $patternはデリミタで囲む必要はありません。 function dirflist_re($directory, $pattern ) { $flist = array(); $pattern = '/' . $pattern . '/'; $handle = opendir($directory); while ( ($f = readdir($handle)) !== FALSE ) { if( FALSE !== preg_match($pattern, $f)) { preg_match($pattern, $f, $flist); } } return($flist); } $f = dirflist_re('.','.+csv$'); print_r($f);
954 :
953 :2008/08/15(金) 12:44:18 ID:k2b6NQX0
読み返したら日本語がおかしいですが、その点のご指摘はご遠慮くださいorz
>>953 whileの中の$flistがループの度に上書きされてないか?
preg_matchの後にマッチしたかどうかをifで判定して、$flistを別の変数に移さないと・・・
if( FALSE !== preg_match($pattern, $f)) { preg_match($pattern, $f, $flist); } ここをコメントアウトして、while内でprint
956は誤爆。while内でprint $f;してみ。
>>956 関数内でprintしちゃマズくね?
最終行のprint_rはデバッグ目的だと思うが
>>953 よ、どうなんだ?
959 :
nobodyさん :2008/08/15(金) 12:51:13 ID:k2b6NQX0
>>957 全てのファイル名が表示されます。
>>958 その通りです。
因みに、csvファイルは2つ存在してますが
一番最後のcsvファイル名のみが出力されます
960 :
958 :2008/08/15(金) 12:54:19 ID:???
こんな方法も考えられるか・・・ テストしてないから、アレだが「array_filter」は便利だぞ function firflist_re($directory, $pattern){ $dirs = scandir($directory); // scandirが使える環境用 return array_filter($dirs, create_function('$name', 'return preg_match("/'.$pattern.'/", $name);')); }
まず、最初からきれいな実装をしようとせずに、 一つ一つの原因を切り分けて実装してみることです。 特になんでもかんでも一行の正規表現で文字列を引っかけようとしたら はまります。正規表現は万能でもないし、コードがわかりにくい。 うちの会社の品質管理部が正規表現を見たら、一発でアウトです。 正規表現を使わずに分かりやすいコードを書く方がバグがすくなくて済みます。 趣味でやっているんじゃないでしょ。利用者が迷惑しますよ。
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags [, int $offset ]]] )
matches を指定した場合、検索結果が代入されます。 $matches[0] にはパターン全体にマッチしたテキストが代入され、 $matches[1] には 1 番目ののキャプチャ用サブパターンにマッチした 文字列が代入され、といったようになります。
つまり↑の方法では最終ループで一致したファイル名しか返さない。
>>955 が正しい。
while内で$i++;して、$ret[$i] = $flist。そんでreturn $ret;とか。
963 :
nobodyさん :2008/08/15(金) 13:12:09 ID:k2b6NQX0
>>960 まだ初心者で知らない関数がいくつか含まれてますので勉強してみます;
>>961 PHP勉強し始めて3週間です。
他のプログラムの知識もないに等しいのでまだ趣味というにも程遠いのですがorz
しかし、逆に正規表現は業界標準の表記なのかと勘違いしてました。
勉強になります。
>>962 今からさっそく試してみます
>>955 すみません、読み飛ばしてました
修正してみます。
964 :
953 :2008/08/15(金) 14:24:58 ID:k2b6NQX0
報告しにきました。
まず
>>962 氏を参考に修正しましたが、
matchしないファイル、ディレクトリを読み込んだ際には、
配列が空白にだったので、6行目のif文の判定をFALSEではなく
NULLにしたところ上手く行きました。
(FALSEはNOmatchという意味ではなかったんですね、勘違いしてました)
function dirflist_re($directory, $pattern ) {
$i = 0;
$pattern = '/' . $pattern . '/';
$handle = opendir($directory);
while ( ($f = readdir($handle)) !== FALSE ) {
if( preg_match($pattern, $f) != NULL) {
preg_match($pattern, $f, $flist);
$ret[$i] = $flist;
$i++;
}
}
return($ret);
}
$f = dirflist_re('.','.+csv$');
print_r($f);
皆さんのご協力感謝します。
965 :
nobodyさん :2008/08/15(金) 15:16:46 ID:zS1QTwus
SmartyとZend Framworkを組み合わせて作ったらライセンスはどうなるの?
966 :
nobodyさん :2008/08/15(金) 15:16:46 ID:6pQMDtTM
phpの環境変数って何を元にどのタイミングで決定されているのでしょう・・・
>>966 環境変数はApacheが設定するもの。
環境変数の仕様を換えたかったら、自分でApacheのモジュールを自作するしかない。
俺もスパム対策用にApacheモジュールを作って組み込んでいる。
968 :
nobodyさん :2008/08/15(金) 15:30:26 ID:6pQMDtTM
>>967 それはApacheEnvironmentにあたるものですよね?
http://www.21style.jp/ たとえば上記URLのEnvironmentにある
USERはatwなのにHOMEが/rootになる
このサイトのatwユーザのHOMEが/rootなのかもしれませんが
このような状況は自分のサイトでも起こっており何故なのかと思いました
>>968 環境変数って言うくらいだから、Apache起動時にセットされるんじゃね?
(ソース見る余裕はないから妄想)
試しにApacheを停止して、suでrootになった普通のユーザでApacheを起動したら
そのユーザの環境変数が継承されたから、正解と言えなくとも近いはず
970 :
nobodyさん :2008/08/15(金) 16:10:55 ID:6pQMDtTM
>>969 起動ユーザの環境変数だったんですね・・・
ありがとうございました
971 :
nobodyさん :2008/08/16(土) 01:53:07 ID:MsTyjZua
phpで生の画面的なものを生成しようとする場合に、 変数のスコープのレベル感が無駄になるようなのですが、 これは仕様的なのでしょうか? if文の中に定義してある変数的なものが、 その外においても有効になっていて、 同じような変数とコリジョンを起こして結果が不正になります。
972 :
nobodyさん :2008/08/16(土) 01:58:16 ID:P/MDsP8S
∩___∩ | | ノ\ ヽ | / ●゛ ● | | | ∪ ( _●_) ミ j 彡、 |∪| | J / ∩ノ ⊃ ヽ ( \ / _ノ | | .\ “ /__| | \ /___ /
∩___∩ | | ノ\ ヽ | / ●゛ ● | | | ∪ ( _●_) ミ j 彡、 |∪| | J / ∩ノ ⊃ ヽ ( \ / _ノ | | .\ “ /__| | \ /___ /
974 :
nobodyさん :2008/08/16(土) 10:18:20 ID:8euwbT+o
おはようございます 次のようにセパレーターを含まない文字列を指定文字目(或いは指定バイト目)で分割する関数ってありますか? 情報収集不足なのかもしれませんがよろしくお願いします。 "20080816" ⇒ 4文字目、6文字目 ⇒ "2008" "08" "16" "abcdefgh" ⇒ 4文字目、6文字目 ⇒ "abcd" "ef" "gh"
976 :
nobodyさん :2008/08/16(土) 10:39:24 ID:8euwbT+o
>>975 ありがとうございます
一気に指定数に分解できればと思ったのですが、無いでしょうか?
無ければstr_splitで1文字づつ分解後に結合する関数を作るしかなさそうですね。。。
>>976 地道にsubstr()で分割したら?
$aに'20080816'とか入ってるとして
substr($a, 0, 4); // '2008'
substr($a, 4, 2); // '08'
substr($a, 6, 2); // '16'
でいいじゃん。
他には正規表現使って
preg_match('/^(.{4})(.{2})(.{2})/', $a, $m);
ってやると分割された文字列が$mに入る
他には正規表現使って 他には正規表現使って 他には正規表現使って 他には正規表現使って 他には正規表現使って
何か? 何か? 何か? 何か? 何か?
たてる気ないならくだらんレスで踏むなっつうの たててくる
よろしく
985 :
nobodyさん :2008/08/16(土) 12:11:55 ID:8euwbT+o
>>977 今、関数作りかけてたところに助け船が!
そのほうが断然簡単ですね。
無駄な事しなくて済み、本当に助かりました。
986 :
nobodyさん :2008/08/16(土) 12:26:19 ID:A4u+7Tq3
次スレたったので、下らん質問を。 お盆休みでおもしろくない。どっか面白い本やホームページ教えて。 できれば、PHP関連で。無かったら他の言語でもいい。 もう、あきた。
>>986 PHP関連で面白いホームページ作ればいいじゃまいか
梅ッシュ
989 :
nobodyさん :2008/08/17(日) 08:37:37 ID:BvSuXUrB
php6アルファがでたのですが、基本的にはphp5.2系から移行するに当たり気をつけるところってありますか?
そんなのも分からない段階ならアルファ版なんか使うな
白根絵ならレスするな
アルファだし積極的に人柱推奨 埋め
梅
産め
997 :
nobodyさん :2008/08/17(日) 16:41:58 ID:iSRyr/QI
埋め
PHPうめぇw
宇目
1000 :
nobodyさん :2008/08/17(日) 18:46:23 ID:oIc5WcqC
うめ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。