のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:126,368,797人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    元スレくだすれPHP(超初心者用)5

    php覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    351 = :

    つ⑤ 御縁がありますように。

    353 = :

    htmlかphpかわからないのでこちらで質問です。
    formのプルダウンメニューの値を送信ボタンで渡すのはわかるのですが
    プルダウンで選択しておいてリンクをクリックしたときにその値を一緒に
    送るような使い方はできるのでしょうか。
    ようはメニューでレイアウトの種類を選択して、リンク先をそのレイアウトで
    表示させるといったことをしたいのですが。

    355 = :

    そうですか、phpで操作できたらよかったんですが。
    その後ググってるとJavaScriptでメニューの値が取得できるようですので
    これとonClickだかでどうにかできるのかなってことでJSはわからないんですが
    少し勉強してみようとおもいます
    スレ違い失礼しました。

    356 = :

    JavaScriptのほうが最適ではあるだろうけど
    工数増えるけどPHPでできないこともない
    まぁガンガレ

    357 = :

    素直にやるならJavaScriptだろうな。
    プルダウンを変更した時点でリンク先を書き換えるか、クリック時にフォームのsubmitイベントを呼び出すか。

    358 = :

    >>353
    リンクにonclickといれてsubmitさせてやればいい

    359 = :

    俺ならselectが変更された時点でJavaScript経由でcookieに表示設定を放り込む。
    一度選択したら2回目以降は覚えていて欲しいだろうからな。

    360 = :

    URLに数字等を入れる事により1つのphpページ画面をそのパラメータによりページの内容を
    変えたいと思います。

    どうすれば同一phpページをパラメータURLを指定する事により表示内容を変更する事が出来ますか?

    http://www.test.php=1234
    http://www.test.php=1235


    361 = :

    httpのクエリストリングから調べろ

    362 = :

    >>360
    http://www.example.com/?page=1234
    こういう形なら$_GET['page']で1234が取得できるから
    これを使って切り替えれば良い
    ただしpage=1234の1234は誰でも値を入れる事ができるから
    チェック等は必ずするように

    363 = :

    >>361
    ヒントをありがとうございます。

    >>362
    詳しくご解説頂きありがとうございました。
    早速「ガキ使い」を見ながらプログラミングしてみようと思います。

    364 = :

    phpでシステム開発をする場合には通常次の階層の直下に*.phpファイルを置いて
    動作確認を行いますよね?
      C:\Program Files\Apache Software Foundation\Apache2.2\htdocs

    しかし、1つのPCで複数サイトの開発を行う場合には、次の用にフォルダを切った上で
    開発を行っているのですが、この方法は正しいですか?

      C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\site1
      C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\site2

    ※要するに動作確認をする場合には次の用にしなくてはならないので。(まっ、これしか方法は無いかな?)

      http://localhost/site1/index.html
      http://localhost/site2/index.html

    365 = :

    hosts にサイト名追加して、VirtualHost つかうとかもあるな。

    366 = :

    俺はZF使ってるからmod_rewrite

    367 = :

    使ってれば偉くなった気になるんですね。わかります。

    368 = :

    お前は何を言ってるんだ

    369 = :

    俺も毎日ちんこ使ってるので偉くなった気になっています。

    370 = :

    >>365
    LinuxじゃないとVirtualHostは使えないのではないですか?
    それともWindows環境でも出来るのですか?

    >>366
    取り敢えず、
      http://tech.bayashi.net/svr/doc/apache/mod_rewrite.html
    のサイトで勉強してみようと思います。

    実務でphpを使ったWEBサイトの開発とかした事が無いのですが、
    実務でphpで開発を行う場合にテキストエディタだけを使っているプロジェクトは少ないですか?

    あと、複数サイトの開発を1台のPCで行う場合に、>>364みたいな感じで行うのは
    能率が悪いでしょうか?

    371 = :

    >>370
    べつにWindows環境だってIPベースでも名前ベースでもできるさ

    373 = :

    >>370
    人の話を疑うぐらいなら聞くな >>364の形で運用するわけじゃないんならダメだろ。 >>365がFA

    375 = :

    んんんだこのgdgdはw

    複数サイトをプロジェクト(複数人数)でやるんだから、ファイルのアップロード方式の方が重要。複数の人間がftpでアップするのなら、それを管理しやすい方法で

    あと、htdocs/aaa/bbb/ とかでやった場合、mod_rewrite の RewriteBase が後でアレな時あり

    プロジェクトを管理できれば良いので、エディタは何でもいい



    378 = :

    >>371 ~ >>375 あざーす。
    ぐぐって勉強してみます。

    379 = :

    Subversionを使っているのに何故かデプロイがftp経由ファイル単位なうちのプロジェクトは滅ぼしていいと思う。

    >370
    同時にいじるなら、何も考えずにやってるとアクセスログが同じファイルになってしまうので、やりづらいと思う。
    そのままでもできるけど、バーチャルホストの方がエラーログの切り分けが簡単。
    あとは両プロジェクトで同名のクッキーを使った場合衝突が発生する点かな。セッション周りが特に危険。
    あと、本番環境に持っていく際に、相対リンク/絶対リンクとか周りで絶対いくつかリンク切れが発生すると思う。
    以上のような点を気にしなくて良いのならば、そのままでもいいんじゃない?

    380 = :

    ああ、そもそもセッション変数が共有されてしまう点の方が問題か。
    クッキーは発行パスを適切に指定すれば混ざらないが、本番環境への移行の際に適切な修正をする必要がある。

    381 = :

    パール互換の正規表現についてなのですが、
    preg_matchなど公式マニュアルに出ている内容については理解したのですが、
    Perlとは微妙に違うリテラルやトークンの使い方について詳しく説明してある
    ドキュメント等はないでしょうか?

    382 = :

    PHPって確か鬼車使っているんだっけ
    だとしたら
    http://www.geocities.jp/kosako3/oniguruma/doc/RE.ja.txt
    補記 3. Perl 5.8.0と比較して存在しない機能
    + \N{name}
    + \l,\u,\L,\U, \X, \C
    + (?{code})
    + (??{code})
    + (?(condition)yes-pat|no-pat)
    * \Q...\E
    但しONIG_SYNTAX_PERLとONIG_SYNTAX_JAVAでは有効

    383 = :

    ありがとうございます!
    参考にメモさせていただきました

    384 = :

    くだらない事なんですが、一つ気になっている事があります。
    PEAR::Logでログでログ管理をしようと思っているのですが、
    手元の参考書やWebで調べると、解説のサンプルプログラムが

    <?php
    require_once 'Log.php';
    $file = &Log::factory('file', 'out.log', 'TEST');
    $file->log('ログ内容');
    ?>

    みたいな場合が多いのですが、この場合Log::factoryで作成した
    インスタンス(?)の$fileは明示的にcloseか何かしなくて言いのでしょうか?
    例えば、普通のファイル操作ならfopenしたら最後はfcloseをするので、
    Log::factoryもそれに該当する操作が必要ないのか?と気になりましたので・・・・

    385 = :

    マニュアル嫁

    386 = :

    テキストファイルを読み込んで一行ごとに配列に入れ
    配列を検索して特定の文字が含まれていた場合そのインデックスを返す
    っていうのをやりたいのですが、わかりません。よろしくお願いします。
    インデックス1を返して欲しいんですが、何も返ってきません。

    ***テキストファイルの中身*******
    群馬県
    栃木県
    茨城県
    埼玉県
    東京都
    ****************************

    <?php
    //ファイルを開く
    $filename="test.txt";
    //配列に代入する
    $f1=file($filename);
    //特定の文字が含まれる要素を探す
    $word="栃木県";
    $key=array_search($word,$f1);
    print($key);
    ?>

    387 = :

    返り値
    ファイルを配列に入れて返します。 配列の各要素はファイルの各行に対応します。改行記号はついたままとなります。 失敗すると file() は FALSE を返します

    389 = :

    >>387
    >>388
    レスありがとうございます。

    この検索の場合は完全に一致するものしか検索できないんですね。
    例えば
    $word="玉";
    とした場合に
    埼玉県のインデックスの3を返すというのは無理なんでしょうか?

    390 = :

    >>389
    データーベースに入れて
    「like」検索をすればできる。

    391 = :

    >>389
    DBなんて使わなくてもstrposでできる

    392 = :

    >>391
    strposって、最初に出てきた位置を返す関数じゃない?

    「あるかどうか」を調べる関数のほうがいいんだけど。

    393 = :

    最初に出てくる=ある

    395 = :

    俺なら何も考えず配列に格納→foreachでループ→中でstrpos

    >392
    strposは文字列検索としては最速の部類。
    他の選択肢はpreg_match位しかないが、preg関数とstr関数じゃお話にならんほど速度が違う。

    396 = :

    説得力を持たせるためにベンチマークを載せてはどうかね?

    397 = :

    自分でやれ

    398 = :

    >>396
    395ではないが暇なので作ってみた

    $imakara_ikude = microtime(TRUE);

    $dokowo_sawatte_hosiinya = '検索対象にしたい任意の文字列';
    $kokoga_eenka = '検索したい任意の文字列';
    $kokoga_eenka_pattern = '/' . preg_quote($kokoga_eenka, '/') . '/';
    $itte_itte_ikimakuru = 100000;

    for ($i = 1; $i <= $itte_itte_ikimakuru; $i++) {
    if (strpos($dokowo_sawatte_hosiinya, $kokoga_eenka) !== FALSE) {}
    // if (strstr($dokowo_sawatte_hosiinya, $kokoga_eenka)) {}
    // if (preg_match($kokoga_eenka_pattern, $dokowo_sawatte_hosiinya)) {}
    }

    $doya_yokattaka = microtime(TRUE) - $imakara_ikude;
    echo $doya_yokattaka;

    ■結果 - Windows XP(ペン4 3.2GHz)+XAMPP(PHP5.2.2)
    strpos():0.060ぐらい
    strstr():0.052ぐらい
    preg_match():0.28ぐらい

    strstr()の方が微妙に早いが、公式マニュアルでstrstr()の説明見ると
    strpos()使えカスと書いてるので俺は素直にstrpos()使う。

    399 = :

    >>392
    というわけで、
    if (strpos($str, 'search') !== FALSE)
    を使え。必ず「!== FALSE」にするように。理由は説明ダルいからマニュアル見れ。

    >>389
    $index = FALSE;
    $word = '玉';

    if ($ary = file('test.txt')) {
    foreach ($ary as $key => $val) {
    if (mb_stripos($val, $word) !== FALSE) {
    $index = $key;
    break;
    }
    }
    }

    var_dump($index);


    strpos()はマルチバイト対応してないので、mb_系使うように。

    400 = :

    >>399で書き忘れたが、大規模検索なら素直にDB使う。

    >>384
    気持ち悪いなら明示すりゃいい。というか、色んな意味で明示したほうが良いと俺は思う。
    phpは、リソースのオープンは明示しなくても自動的に閉じてくれる。(ファイルであれDBであれ)

    >>382
    PHP5から鬼車。mb_ereg()系で。
    preg_match()では使われてないのでは?


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について