PAGE NOT FOUND Oops! Looks like the page you're looking for was moved or never existed. Make sure you typed the correct URL or followed a valid link. This site is hosted by FastWebHost! Build your website today and Save!
※ã“ã®è¨˜äº‹ã¯VOYAGE GROUP エンジニアブãƒã‚° : Advent Calendar 2012ã®15日目ã®è¨˜äº‹ã¨ã—ã¦æ›¸ã„ã¦ã¾ã™ã€‚ 3種ã®ç¥žå™¨ PHPUnit, Stagehand_TestRunner, Phake åˆã‚ã¦ã®æ–¹ã¯ã˜ã‚ã¾ã—ã¦ã€‚ã„ã¤ã‚‚ã®æ–¹ã“ã‚“ã«ã¡ã¯ã€‚ VOYAGE GROUP ã® adingo ã¨ã„ã†ä¼šç¤¾ã§ 広告é…ä¿¡ã«é–¢ã‚ã‚‹ Webアプリケーション開発エンジニアをã—ã¦ã„ã‚‹ @brtriver ã§ã™ã€‚ 今日ã¯å®Ÿéš›ã®ç¾å ´ã§ã‚‚使ã£ã¦ã„ã‚‹PHPã®é–‹ç™ºç’°å¢ƒæ§‹ç¯‰Tipsã¨ã„ã†ã“ã¨ã§ ã¿ã‚“ãªå¤§å¥½ã PHPUnit 〠自分ã¯å¤§å¥½ã Phake ã€æ¯Žå›žãƒ†ã‚¹ãƒˆã‚’手動ã§å®Ÿè¡Œã™ã‚‹ã®ãŒè¨±ã•ã‚Œã‚‹ã®ã¯å°å¦ç”Ÿã¾ã§ã よãー Stagehand_TestRunner ã® 3ã¤ã‚’3分ã§ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã”ã¨ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã™ã‚‹æ–¹æ³•ã‚’書ã„ã¦ã¿ã¾ã™ã€‚ 何も考ãˆãš composer.jsonをコピペã§ç”¨æ„ プãƒã‚¸ã‚§ã‚¯ãƒˆã®
ã“ã‚“ã«ã¡ã¯ã€é£¯å¡šã§ã™ã€‚ ウェブ上ã«ã¯ãŸãã•ã‚“ã®ãƒ‡ãƒ¼ã‚¿ãŒã‚ãµã‚Œã¦ã„ã¾ã™ã€‚ãã®ä¸ã‹ã‚‰ã€Œè‡ªåˆ†ã®æ¬²ã—ã„データã ã‘ã€ã‚’「自動ã€ã§ã‹ã集ã‚ã‚‹ã“ã¨ãŒã§ããŸã‚‰ç´ 敵ã˜ã‚ƒãªã„ã§ã™ã‹ï¼Ÿ ãã“ã§ä»Šå›žã¯ UT Startup Gym ã®ã€Œã‚¦ã‚§ãƒ–ã‹ã‚‰æƒ…å ±ã‚’ã‚ã¤ã‚ã‚‹ã€ã§å–り上ã’ãŸå†…容をもã¨ã«ã€ãŸã£ãŸ10è¡Œ(æ£ç¢ºã«ã¯ 9 è¡Œ)ã®ã‚³ãƒ¼ãƒ‰ã§ã²ãŸã™ã‚‰ã€Œã‚¢ã‚¤ãƒ‰ãƒ«æ°´ç€ç”»åƒã€ã‚’集ã‚る方法を紹介ã—ã¾ã™ã€‚言語㯠PHP ã§ã™ï¼ ã¾ãšã¯çµæžœã‹ã‚‰ ã¯ã„ã€ã“ã‚ŒãŒä»Šæ—¥ã®ç›®æ¨™ã§ã™ã€‚ ã•ã£ããコード書ã mac ユーザã¯ã•ã£ããプリインストールã•ã‚Œã¦ã„るターミナル.app ã‚’èµ·å‹•ã—ã¦ã€ $ emacs crawler.phpã¨å…¥åŠ›ã—㦠Enter(もã¡ã‚ã‚“ä»–ã®ã‚¨ãƒ‡ã‚£ã‚¿ã§ã‚‚ OKï¼‰ã€‚é ‘å¼µã£ã¦ä¸‹ã®ã‚³ãƒ¼ãƒ‰ï¼ˆé’色ã®ã‚³ãƒ¡ãƒ³ãƒˆéƒ¨åˆ†ã¯å†™ã•ãªãã¦ã„ã„ã§ã™ï¼‰ã‚’写経ã—ã¦ãã ã•ã„。 <?php $url = "http://matome.naver.jp/odai/21
コンタクトフォームを作æˆã—ã¾ã—ょã†ã€‚ ã¾ãšã¯ã€ã“ã®ã‚ˆã†ãªã€Œãƒ‡ãƒ¢ï¼šã‚³ãƒ³ã‚¿ã‚¯ãƒˆãƒ•ã‚©ãƒ¼ãƒ ã€ã‚’作りã¾ã™ã€‚ デモã§å‹•ä½œã‚’確èªã—ã¦ã¿ã¦ãã ã•ã„。 ç”»é¢é·ç§»ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚ よãã‚るコンタクトフォームã§ã™ã€‚ ã¾ãšã€å…¥åŠ›ç”»é¢ã‚’表示ã—コンタクト内容を入力ã—ã¦ã‚‚らã„ã¾ã™ã€‚ 入力ãŒçµ‚了ã—ãŸã‚‰ç¢ºèªç”»é¢ã«é·ç§»ã—入力内容ã®ç¢ºèªã‚’ã§ãるよã†ã«ã—ã¾ã™ã€‚ ã“ã“ã§ã€å…¥åŠ›å†…容ã«èª¤ã‚ŠãŒã‚ã£ãŸå ´åˆã¯ã€å…¥åŠ›ç”»é¢ã«æˆ»ã£ã¦ä¿®æ£ã—ã¦ã‚‚らã„ã¾ã™ã€‚ 入力内容ã«èª¤ã‚ŠãŒãªã„å ´åˆã€å…¥åŠ›å†…容を投稿ã—ã¦ã‚‚らã„完了ページを表示ã—ã€ã‚³ãƒ³ã‚¿ã‚¯ãƒˆæŠ•ç¨¿ã—ãŸã“ã¨ã‚’表示ã—ã¾ã™ã€‚ 一連ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã®æµã‚Œã¯ã“ã‚“ãªæ„Ÿã˜ã§ä½œæˆã—ãŸã„ã¨æ€ã„ã¾ã™ã€‚ ã¾ãšã¯ã€å…¥åŠ›ãƒšãƒ¼ã‚¸ã®ä½œæˆã§ã™ã€‚ ã“ã‚“ãªãƒšãƒ¼ã‚¸ã‚’作りã¾ã™ã€‚ ソース:input.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
å‰å›žã®ã¾ã¾ã§ã¯ã€åå‰ã€ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã€å†…容ã©ã‚Œã‚‚空ã®ã¾ã¾ã§ã‚‚é€ä¿¡ã§ãã¦ã—ã¾ã„ã¾ã™ã€‚ ãªã®ã§å„é …ç›®ã«ä»¥ä¸‹ã®ã‚ˆã†ãªãƒã‚§ãƒƒã‚¯å†…å®¹ã‚’ä»˜åŠ ã™ã‚‹ã‚ˆã†ã«ã—ã¾ã™ã€‚ åå‰ ï¼‘ï¼Žå…¥åŠ›å¿…é ˆ 2.20æ–‡å—以内 メールアドレス ï¼‘ï¼Žå…¥åŠ›å¿…é ˆ 2.メールアドレスã¨ã—ã¦æ£ã—ã„ã“㨠内容 ï¼‘ï¼Žå…¥åŠ›å¿…é ˆ 上記内容をå‰å›žã®ãƒ—ãƒã‚°ãƒ©ãƒ ã«æ©Ÿèƒ½è¿½åŠ ã—ã¾ã™ã€‚ 「confirm.phpã€ã‚’以下ã®ã‚ˆã†ã«ä¿®æ£ã—ã¾ã—ãŸã€‚ ソース:confirm.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
æƒ…å ±ã®ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ã¨Linuxã§ã®è‡ªå®…サーãƒæ§‹ç¯‰æ–¹æ³•ã€è¨å®šãƒ¡ãƒ¢ã‚’公開ã—ã¦ã¾ã™ã€‚ä¸è¦ãªã‚‚ã®ã‚’入れãªã„軽ã„サーãƒãŒç›®çš„ã§ã™ã€‚PHPã€Perlãªã©ã‚‚å–り扱ã£ã¦ã„ãã¾ã™ã€‚ フォームé€ä¿¡æ™‚ãªã©ã§æœ€è¿‘見ã‹ã‘ã‚‹ç”»åƒèªè¨¼ã€Œcaptchaã€ã€‚ 勤ã‚å…ˆã®ã‚µã‚¤ãƒˆãƒªãƒ‹ãƒ¥ãƒ¼ã‚¢ãƒ«ã‚’ãã£ã‹ã‘ã«ã€ç„¡ç†ãã‚ŠãŠå•ã„åˆã‚ã›ãƒ•ã‚©ãƒ¼ãƒ ã«å®Ÿè£…ã—ã¦ã¿ã¾ã—ãŸã€‚ captchaã«ã¯ã„ãã¤ã‹ç¨®é¡žãŒã‚ã‚‹ã¿ãŸã„ã§ã™ãŒã€ä»Šå›žã¯ã€ŒKCAPTCHAã€ã‚’使ã£ã¦ã¿ã¾ã—ãŸã€‚ サンプル付ãã®ã‚¯ãƒ©ã‚¹ãŒã“ã“ã§ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã§ãã¾ã™ã€‚ サンプルã¯ã€è‡ªåˆ†ãŒåˆ†ã‹ã£ã¦ãªã„ã›ã„ã‚‚ã‚ã£ã¦ã€è©¦ã™ã®ã«å¾®å¦™ã«æ™‚é–“ãŒã‹ã‹ã£ãŸã®ã§ã€ãƒ¡ãƒ¢ãƒ¡ãƒ¢ãƒ»ãƒ»ãƒ» index.phpã®ä¿®æ£ ・解å‡ã—ã¦ã§ããŸindex.phpを「/* Using:ã€ï½žã€Œ*/ã€å†…ã®è¨˜è¿°ã®ã¿ã«ã—ã¾ã™ã€‚ <?php session_start(); ?> <form action="./" method="post
PHPã§ä½¿ãˆã‚‹CAPTCHAç”»åƒä½œæˆãƒ©ã‚¤ãƒ–ラリã¯ã„ã‚ã„ã‚ã‚ã£ã¦åˆ†ã‹ã‚Šã«ãã„ã®ã§ä»¥ä¸‹ã«ã¾ã¨ã‚ã¦ã¿ã¾ã—ãŸã€‚ 最近ã§ã¯ã‚¹ãƒ‘ムãŒå¤šã™ãŽã¦ã€æŽ²ç¤ºæ¿ç‰ã¸ã®CAPTCHA実装ã¯å¿…é ˆã®ã‚ˆã†ã«æ€ãˆã¾ã™^^; CAPTCHA (GPLライセンス) サンプル利用方法 1. パッケージダウンãƒãƒ¼ãƒ‰ 2. パッケージ解å‡å¾Œã€åŒã˜ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ãƒ•ã‚©ãƒ³ãƒˆ(*.ttf)ファイルをè¨ç½® 3. captcha.class.php ã‚’é–‹ã (2)ã§é…ç½®ã—ãŸãƒ•ã‚©ãƒ³ãƒˆã®ãƒ•ã‚¡ã‚¤ãƒ«åを変数ã«è¨å®š $this->Font = './〜.ttf'; 4. example.php ã«ã‚¢ã‚¯ã‚»ã‚¹ CAPTCHA 2 (GPLライセンス) サンプル利用方法 1. パッケージダウンãƒãƒ¼ãƒ‰ 2. パッケージ解å‡å¾Œã€åŒã˜ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ãƒ•ã‚©ãƒ³ãƒˆ(*.ttf)ファイルをè¨ç½® 3. captcha.class.php ã‚’é–‹ã (2)ã§é…ç½®ã—ãŸãƒ•ã‚©ãƒ³ãƒˆã®ãƒ•ã‚¡ã‚¤
PHP5 ã® mbstring 関数ã®ä¸€ã¤ mb_convert_kana() ã¯ã€å…¨è§’æ–‡å—ã¨åŠè§’æ–‡å—ã®å¤‰æ›ã‚’è¡Œã†å¤§å¤‰ä¾¿åˆ©ãªé–¢æ•°ã 。 ã—ã‹ã—ã€è‹±æ•°å—ã®å…¨è§’åŠè§’変æ›ã«é–¢ã—ã¦ã¯æ³¨æ„ã—ãªã‘ã‚Œã°ãªã‚‰ãªã„点ãŒã‚る。 変æ›æ–¹å¼ã«ã‚ˆã‚‹é•ã„ mb_convert_kana() ã§ã¯å¤‰æ›ã‚ªãƒ—ションを指定ã™ã‚‹ã“ã¨ã§æ§˜ã€…ãªæ–‡å—ã®å¤‰æ›ãŒå¯èƒ½ã 。 ãã®ã†ã¡ã€å…¨è§’英数å—ã‹ã‚‰åŠè§’ã¸ã®å¤‰æ›ã«é–¢ã™ã‚‹ã‚ªãƒ—ションã¯ä»¥ä¸‹ã®ã‚‚ã®ãŒã‚る。 r   「全角ã€è‹±å—を「åŠè§’ã€ã«å¤‰æ›ã—ã¾ã™ã€‚ n   「全角ã€æ•°å—を「åŠè§’ã€ã«å¤‰æ›ã—ã¾ã™ã€‚ a   「全角ã€è‹±æ•°å—を「åŠè§’ã€ã«å¤‰æ›ã—ã¾ã™ï¼ˆâ€œaâ€, “A†オプションã«å«ã¾ã‚Œã‚‹æ–‡å—ã¯ã€U+0022, U+0027, U+005C, U+007Eを除ã U+0021 - U+007E ã®ç¯„囲ã§ã™ï¼‰ã€‚ ― PHPマニュアル日本語版より引用 一見ã™ã‚‹ã¨ã€a オプション㨠rn(nr)オプションã¯åŒç‰ã‹ã®
ã¯ã˜ã‚㫠ランダムã«åºƒå‘Šã‚’表示ã—ãŸã‚Šã€å¤šãã®å¿œå‹Ÿè€…ã‹ã‚‰ä½•äººã‹ã®å½“é¸è€…をランダムã«é¸ã¶å ´åˆãªã©ã€ãƒ—ãƒã‚°ãƒ©ãƒ ã§ãƒ©ãƒ³ãƒ€ãƒ 性ãŒå¿…è¦ã¨ã•ã‚Œã‚‹çŠ¶æ³ã¯ã„ãã¤ã‹ã‚ã‚Šã¾ã™ã€‚ã“れらã®æ©Ÿèƒ½ã‚’実ç¾ã™ã‚‹ãŸã‚ã€PHPã§ã‚³ãƒ³ãƒ†ãƒ³ãƒ„をランダムå–å¾—ã™ã‚‹æ‰‹æ³•ã«ã¤ã„ã¦ã„ãã¤ã‹ã®ä¾‹ã‚’見ã¦ã„ãã¾ã—ょã†ã€‚ 対象èªè€… PHPã‚’æ—¢ã«ãŠä½¿ã„ã®æ–¹ã‚’対象ã¨ã—ã¦ã„ã¾ã™ã€‚基本的ãªå†…容ã§ã™ãŒã€PHPã«é–¢ã™ã‚‹å…¥é–€ç”¨ã®å†…容ã¯å«ã‚“ã§ã„ã¾ã›ã‚“。ã¾ãŸã€Amazon Webサービスã«ã¤ã„ã¦ã®åŸºæœ¬çš„ãªä½¿ç”¨æ–¹æ³•ãªã©ã‚‚説明ã—ã¦ãŠã‚Šã¾ã›ã‚“。必è¦ã«å¿œã˜ã¦PHPマニュアルãªã©ã®ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ã‚„å„書ç±ã‚’ã”覧ãã ã•ã„。 å¿…è¦ãªç’°å¢ƒ PHPãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã€PHPスクリプトãŒå‹•ä½œå¯èƒ½ãªçŠ¶æ…‹ã§ã‚ã‚‹ã“ã¨ã‚’å‰æã¨ã—ã¦ã„ã¾ã™ã€‚ã¾ãŸã€ã€Œåºƒå‘Šã‚’ランダムã«å–å¾—ã™ã‚‹ã€ã¯MySQL 4.0ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã€ã€Œad.sqlã€ã®å®Ÿè¡Œã«ã‚ˆã£ã¦adテーブルãŒä½œæˆã•ã‚Œã¦ã„ã‚‹ã“ã¨ãŒå¿…è¦ã§ã™ã€‚「Amazonã‹
id:koyhogeã•ã‚“ã®PHPã®ã‚³ãƒ¼ãƒ‰ã‚ャッシュãŒãªãœé€Ÿã„ã®ã‹ - Blog::koyhoge::Techã‹ã‚‰ã€‚(先日ã¯ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã—㟠m(__)m) 「PHPã¯å†…部ã§stat()を呼ã³ã¾ãã£ã¦ã„ã‚‹ã®ã§é…ã„ã€ã¨ã®ã“ã¨ã§ã™ã®ã§ã€include_pathã®å¾Œã‚ã®æ–¹ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã‚るスクリプトファイルを大é‡ã«requireã—ã¦ã„ãŸã‚Šã™ã‚‹ã¨ã€ãã‚Œã ã‘ã§ã‚³ãƒ¼ãƒ‰ã‚ャッシュã®ãƒ¡ãƒªãƒƒãƒˆãŒå‡ºã¦ãã‚‹ã®ã‹ã‚‚ã—ã‚Œã¾ã›ã‚“。 PHPã®ã‚³ãƒ¼ãƒ‰ã‚ャッシュãŒãªãœé€Ÿã„ã®ã‹ - Blog::koyhoge::Tech ã©ã®ãƒ¬ãƒ™ãƒ«ã‹ã‚‰ã‚ャッシュãŒåˆ©ç”¨ã•ã‚Œã‚‹ã®ã‹ã¯ã€ã¡ã‚‡ã£ã¨è¨˜æ†¶ãŒç„¡ã„ã®ã§ã€ã‚³ãƒ¼ãƒ‰ã‚’èªã¿ç›´ã•ãªã„ã¨ãƒ€ãƒ¡ãªã®ã§ã™ãŒã€ã€Œstat()を呼ã³ã¾ãã£ã¦é…ã„ã€ã®stat()ãŒçˆ†ç™ºçš„ã«å‘¼ã°ã‚Œã‚‹å‹•ãを軽ã説明?ã—ãŸã„ã¨ãŠã‚‚ã„ã¾ã™ã€‚(æ—©ãå¯ãªãゃã¨é©å½“ã«æ›¸ã„ã¦ã‚‹ã®ã§ã€èª¬æ˜Žã«ãªã£ã¦ãªã„。。ーー;ã„ã‹ã‚“ã›ã‚“ã€ã“ã†ã„ã†ã®ã‚ã¾ã‚Šã‚„ら
ç§ã‚’PHPãŒçµ„ã‚る人間ã«è‚²ã¦ã¦ãã‚ŒãŸã®ã¯1冊ã®æ›¸ç±ã ã£ãŸ ç§ãŒPHPプãƒã‚°ãƒ©ãƒ を始ã‚ãŸã®ãŒ3å¹´å‰ã€‚ 実際å•é¡Œä»¥å‰ã‹ã‚‰ï¼¶ï¼¢ã‚„ベーシックã¯å‡ºæ¥ã¾ã—ãŸã€‚ ã§ã‚‚WEBアプリã¨ãªã‚Œã°ã€CGI。 触るã“ã¨ã¯å‡ºæ¥ã¦ã‚‚ã€1ã‹ã‚‰å…¨ã¦ä½œã‚Šã“ã‚€ãªã‚“ã¦äº‹ã¯å‡ºæ¥ãªã‹ã£ãŸã‚“ã§ã™ã€‚ ãã“ã§PHPã®ãŠè©±ã‚’始ã‚ã¦èžã„ã¦ã€ç°¡å˜ã ã¨ã„ã†ã®ã§ã‚„ã£ã¦ã¿ã¾ã—ãŸãŒã€ã‚„ã£ã±ã‚Šã‚ã‹ã‚‰ãªã„。 ãªã‚“ã›ãƒ—ãƒã‚°ãƒ©ãƒ ã¨ã„ãˆã°ãƒ™ãƒ¼ã‚·ãƒƒã‚¯ã‚„VBã®è€ƒãˆã‚’å¼·ãæŒã£ã¦ã„ãŸç‚ºã€ãƒšãƒ¼ã‚¸ãŒå¤‰ã‚ã£ã¦ãƒ‡ãƒ¼ã‚¿ã®å—ã‘渡ã—云々ã®æ„味ãã®ã‚‚ã®ãŒã‚ã‹ã‚‰ãªã‹ã£ãŸã‹ã‚‰ã§ã™ã€‚ ãã‚“ãªç§ãŒã¨ã‚Šã‚ãˆãš3å¹´ã¨ã„ã†æœˆæ—¥ã§SQLã€APIã¾ã§ã‚ã‹ã‚Šã€è‡ªç¤¾ã§æä¾›ã—ã¦ã„ã‚‹Xoopsã®ã‚ˆã†ãªCMSを開発ã§ãるよã†ã«ãªã£ãŸçµŒç·¯ã‚’ãŠè©±ã—ã¦ãŠãã¾ã™ã€‚ ã¯ã£ãり申ã—上ã’ã¦ã¾ã ã¾ã 『出æ¥ã‚‹ã€äººã‹ã‚‰ã¿ã‚Œã°åŠäººå‰ä»¥ä¸‹ã§ã™ãŒã€ã“ã‚Œã‹ã‚‰PHPを始ã‚よã†ã¨ã‹ã€é›£ã—ãã¦å‰ã«é€²ã‚ãªã„ã¨ã„ã†æ–¹ã®ç‚ºã«å‚考ã«ãªã‚Œã°ã¨æ€ã„ã¾ã™ã€‚ ã‚
リリースã€éšœå®³æƒ…å ±ãªã©ã®ã‚µãƒ¼ãƒ“スã®ãŠçŸ¥ã‚‰ã›
最新ã®äººæ°—エントリーã®é…ä¿¡
処ç†ã‚’実行ä¸ã§ã™
j次ã®ãƒ–ックマーク
kå‰ã®ãƒ–ックマーク
lã‚ã¨ã§èªã‚€
eコメント一覧を開ã
oページを開ã
{{#tags}}- {{label}}
{{/tags}}