12月 31
.htaccess ã§ PHP ãŒå‡ºåŠ›ã™ã‚‹ã‚¨ãƒ©ãƒ¼è¡¨ç¤ºã‚’制御ã™ã‚‹ã«ã¯ E_ALL ãªã©ã®å®šæ•°ã¯ä½¿ãˆãªã„ã®ã§ã€ãƒ“ãƒƒãƒˆå€¤ã§æŒ‡å®šã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
E_ALL & ~E_NOTICE ã‚’è¨å®šã™ã‚‹å ´åˆ
php.ini
error_reporting = E_ALL & ~E_NOTICE
php コード内
error_reporting(E_ALL ^ E_NOTICE);
.htaccess
php_value error_reporting 6135
error_reporting ã«è¨å®šã™ã‚‹å€¤ã¯ PHP: error_reporting – Manual ã‚’å‚ç…§ã™ã‚‹ã¨ã„ã„ã§ã—ょã†ã€‚
| 値 |
定数 |
| 1 |
E_ERROR |
| 2 |
E_WARNING |
| 4 |
E_PARSE |
| 8 |
E_NOTICE |
| 16 |
E_CORE_ERROR |
| 32 |
E_CORE_WARNING |
| 64 |
E_COMPILE_ERROR |
| 128 |
E_COMPILE_WARNING |
| 256 |
E_USER_ERROR |
| 512 |
E_USER_WARNING |
| 1024 |
E_USER_NOTICE |
| 6143 |
E_ALL |
| 2048 |
E_STRICT |
| 4096 |
E_RECOVERABLE_ERROR |
ã¡ãªã¿ã« E_ALL & ~E_NOTICE ã®å€¤ãŒ 6135 ã«ãªã‚‹ç†ç”±ã¯ E_ALL ã®å€¤ãŒ 6143ã€E_NOTICE ã®å€¤ãŒ 8 ãªã®ã§ 6143-8=6135 ã«ãªã‚Šã¾ã™ã€‚(ã¾ãŸã¯ E_NOTICE 㨠E_STRICT 以外ã®å€¤ã‚’è¶³ã—ãŸæ•°ãŒ 6135 ã«ãªã‚Šã¾ã™ã€‚
ç§ã¯é–‹ç™ºä¸ã¯ E_NOTICE も表示ã™ã‚‹ã‚ˆã†ã«ã—ã¦ã„ã¾ã™ãŒã€çµæ§‹è¡¨ç¤ºã•ã›ãªã„人ãŒå¤šã„よã†ã§äººã®ã‚³ãƒ¼ãƒ‰ã‚’ä¿®æ£ã™ã‚‹ã¨ããªã© Notice エラーãŒå‡ºã¦å›°ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚E_NOTICE を表示ã™ã‚‹ã‚ˆã†ã«ã—ã¦ãŠãã¨æœªå®šç¾©ã®å¤‰æ•°ãªã©ãƒã‚°ã®å…ƒã«ãªã‚Šã‚„ã™ã„ã‚‚ã®ã‚’æ•™ãˆã¦ãれるã®ã§ãŠå‹§ã‚ã§ã™ã€‚
ã¾ãŸã€é–‹ç™ºçµ‚了ã—ã¦æœ¬ç•ªé‹ç”¨ã™ã‚‹ã¨ãã«ã¯ãƒ–ラウザã«ã‚¨ãƒ©ãƒ¼ã‚’出力ã—ãªã„よã†ã«
error_reporting(0);
ã‚’è¨å®šã—ã¦ãŠãã“ã¨ã‚’忘れãšã«ï¼
ãã®éš›ã‚‚ PHP ã®ã‚¨ãƒ©ãƒ¼ã¯ã‚¨ãƒ©ãƒ¼ãƒã‚°ã«è¨˜éŒ²ã•れるよã†ã«ã—ã¦ãŠã‹ãªã„ã®ã‚‚忘れãšã«ã€‚
12月 30
JQuery helper for CakePHP ( PQuery port ) at NGCoders
CakePHP ã‹ã‚‰ JQuery ã‚’ç°¡å˜ã«ä½¿ã†ã“ã¨ãŒã§ãã¾ã™ã€‚
æ£ç¢ºã«ã¯ PQuery ヘルパーã‹ã‚‚ã—れã¾ã›ã‚“。PQuery 㯠JQuery ã‚’ PHP ã‹ã‚‰ç°¡å˜ã«ä½¿ç”¨ã™ã‚‹ãƒ©ã‚¤ãƒ–ラリ㧠PQuery ヘルパーã¨åŒã˜é–‹ç™ºè€…ãŒé–‹ç™ºã—ã¦ã„ã¾ã™ã€‚
å‚考:PQuery – PHP and JQuery at NGCoders
インストール
JQuery helper for CakePHP ( PQuery port ) at NGCoders ã‹ã‚‰ JQuery ヘルパーをダウンãƒãƒ¼ãƒ‰ã—ã€è§£å‡ã—㟠pquery.php ã‚’ /app/views/helpers ã«ã‚³ãƒ”ーã—ã¾ã™ã€‚
ãã®ã»ã‹ã« jquery.js ファイルも必è¦ã«ãªã‚Šã¾ã™ã€‚ã“ã¡ã‚‰ã‚‚ダウンãƒãƒ¼ãƒ‰ã—㦠/app/webroot/js ã«ã‚³ãƒ”ーã—ã¾ã™ã€‚
コントãƒãƒ¼ãƒ©
Pquery ヘルパー㨠Javascritp ヘルパーを使用ã—ã¾ã™
var $helpers = array('Pquery', 'Javascript');
ビュー
jquery.js ã®èªã¿è¾¼ã¿
<?php echo $javascript->link('jquery.js'); ?>
使用例
トグルボタン
<div id='msg'>Message...</div>
<?php echo $pquery->link_to_function('toggle', $pquery->toggle('#msg'));?>
フォームã§é€ä¿¡ã•れãŸå†…容ã«ã‚ˆã‚Š HTML ã‚’æ›´æ–°
入力ã—ãŸãƒ†ã‚ストを /controller/action/ ã« GET ã§é€ä¿¡ã—ã€id=idtoupdate ã«å—ã‘å–ã£ãŸ HTML を表示ã™ã‚‹
<?php echo $pquery->form_remote_tag(array('url'=>'/controller/action/','update'=>'#idtoupdate'));?>
<input type='text' name='field' />
<input type='submit' />
<div id='idtoupdate'></div>
pquery.php を見るã¨è‰²ã€…ãªãƒ¡ã‚½ãƒƒãƒ‰ãŒã‚りã¾ã™ã€‚ä½¿ã„æ–¹ã¯ã‚½ãƒ¼ã‚¹ã‚’見れã°ã™ãã«åˆ†ã‹ã‚‹ã¨æ€ã„ã¾ã™ã€‚
12月 28
scriptaculous.js を使ã£ã¦ä¸¦ã³æ›¿ãˆã‚’行ㆠを応用ã—ã¦æ ¼å状ã«ä¸¦ã‚“ã è¦ç´ ã‚’ä¸¦ã³æ›¿ãˆã‚‹ä¾‹ã§ã™ã€‚基本的ãªéƒ¨åˆ†ã¯ãƒªã‚¹ãƒˆå½¢å¼ã®ä¸¦ã³æ›¿ãˆã¨åŒã˜ã§ã™ã®ã§çœç•¥ã—ã¾ã™ã€‚
最åˆã«ãƒ‡ãƒ¢ã€ãã®å¾Œã«ã‚³ãƒ¼ãƒ‰ã‚’紹介ã—ã¾ã™ã€‚
デモ
#sortarea { width: 350px; } #sortarea div { float: left; width: 100px; height: 70px; border: 1px solid #000; margin: 5px; text-align: center; padding-top: 30px; cursor: default; }
A1
A2
A3
A4
A5
A6
A7
A8
A9
ソートã™ã‚‹è¦ç´
å‰å›žã¯ li ã‚¿ã‚°ã§è¦ç´ を定義ã—ã¾ã—ãŸãŒã€ä»Šå›žã¯ div ã‚¿ã‚°ã§å®šç¾©ã—ã¾ã—ãŸã€‚
CSS ã§æ ¼å状ã«ä¸¦ã¶ã‚ˆã†ã«ã—ã¦ã„ã¾ã™ã€‚
<style>
#sortarea {
width: 350px;
}
#sortarea div {
float: left;
width: 100px;
height: 70px;
border: 1px solid #000;
margin: 5px;
text-align: center;
padding-top: 30px;
cursor: default;
}
</style>
<div id="sortarea">
<div id="drag_1">A1</div>
<div id="drag_2">A2</div>
<div id="drag_3">A3</div>
<div id="drag_4">A4</div>
<div id="drag_5">A5</div>
<div id="drag_6">A6</div>
<div id="drag_7">A7</div>
<div id="drag_8">A8</div>
<div id="drag_9">A9</div>
</div>
ソートã™ã‚‹ JavaScript コード
Sortable.create ã® option ã« overlap:’horizontal’ を指定ã—ãªãã¦ã‚‚ä¸¦ã³æ›¿ãˆã¯ã§ãã¾ã™ãŒã€å°‘ã—ãŽã“ã¡ãªã„感ã˜ã«ãªã‚Šã¾ã™ã®ã§ã€æŒ‡å®šã—ã¦ãŠã„ãŸã»ã†ãŒã„ã„ã§ã—ょã†ã€‚
<script type="text/javascript" language="javascript">
// <![CDATA[
Sortable.create("sortarea",{
tag:'div',overlap:'horizontal',constraint: false,
});
// ]]>
</script>
12月 28
JavaScript ã®èªã¿è¾¼ã¿
ã¾ãš prototype.js 㨠scriptaculous.js ã‚’èªã¿è¾¼ã‚€
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="scriptaculous.js"></script>
ソートã™ã‚‹ãƒªã‚¹ãƒˆã‚’作æˆã™ã‚‹
ã“ã“ã§ã®ãƒã‚¤ãƒ³ãƒˆã¯ãƒ‰ãƒ©ãƒƒã‚°ã•ã›ãŸã„è¦ç´ ã« drag_1 ã®ã‚ˆã†ã«ã€Œå…±é€šã®åå‰+アンダãƒãƒ¼+æ•°å—ã€ã‚’付ã‘ã‚‹ã“ã¨ã§ã™ã€‚
<ul id="sortarea">
<li id="drag_1">A1</li>
<li id="drag_2">A2</li>
<li id="drag_3">A3</li>
<li id="drag_4">A4</li>
<li id="drag_5">A5</li>
<li id="drag_6">A6</li>
<li id="drag_7">A7</li>
<li id="drag_8">A8</li>
<li id="drag_9">A9</li>
</ul>
ソートã™ã‚‹ JavaScript コード
ソートã™ã‚‹ã‚¨ãƒªã‚¢ã¨ã‚½ãƒ¼ãƒˆã™ã‚‹è¦ç´ を定義ã—ãŸå¾Œã§å®Ÿéš›ã«ã‚½ãƒ¼ãƒˆã™ã‚‹ãŸã‚ã® JavaScript コードを書ã。ã“ã®ã‚³ãƒ¼ãƒ‰ãŒã‚½ãƒ¼ãƒˆã•ã›ãŸã„è¦ç´ よりもå‰ã«æ›¸ãã¨ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ã®ã§æ³¨æ„。
<script type="text/javascript" language="javascript">
// <![CDATA[
Sortable.create("sortarea",{
onUpdate:function(){
new Ajax.Updater(
'sortarea',
'/path/to/phpcode',
{
asynchronous:true,
evalScripts:true,
parameters:Sortable.serialize("sortarea")
}
);
}
});
// ]]>
</script>
onUpdate ã§ã‚½ãƒ¼ãƒˆçµæžœã‚’PHP ã«é€ã‚Šãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãªã‚Šã«åæ˜ ã•ã›ã‚‹ã€‚
データベースã«åæ˜ ãªã©ãŒå¿…è¦ãªã‘れã°ã€onUpdate ã¯ä¸è¦ã§ã™ã€‚
デモ
ã“れを実際ã«ä½¿ç”¨ã—ãŸä¾‹ãŒä¸‹è¨˜ã«ãªã‚Šã¾ã™ã€‚
#sortarea { width: 350px; border: 1px solid #000; } #sortarea li { cursor: default; }
- LIST1
- LIST2
- LIST3
- LIST4
- LIST5
- LIST6
- LIST7
- LIST8
- LIST9
12月 27
OpenPNE ã®ç®¡ç†ç”»é¢ã‹ã‚‰ãƒ¡ãƒ³ãƒãƒ¼æƒ…å ±ã‚’ CSV ファイルã¨ã—ã¦ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã™ã‚‹æ©Ÿèƒ½ãŒã‚りã¾ã™ã€‚ãã® CSV ダウンãƒãƒ¼ãƒ‰ãŒ IE6 ã§ã‚¨ãƒ©ãƒ¼ã«ãªã£ã¦ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã§ããªã„å•題ãŒã‚りã¾ã—ãŸã€‚
åŽŸå› ã¯ãƒžã‚¤ã‚¯ãƒã‚½ãƒ•トã®ã‚µã‚¤ãƒˆ Content-Disposition: attachemnt 㨠Cache-Control: no-cache ã«ã‚ˆã‚‹ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã®å•題 ã«æ›¸ã‹ã‚Œã¦ã„ã¾ã—ãŸã€‚
対処方法ã¨ã—ã¦ã€
webapp/modules/admin/do/csv_member.php ã‚’ webapp_ext/modules/admin/do/csv_member.php ã«ã‚³ãƒ”ーã—ã¦
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=member.csv");
ã¨ãªã£ã¦ã„ã‚‹ã¨ã“ã‚を下記ã®ã‚ˆã†ã«ä¿®æ£ã—ã¾ã™ã€‚
header("Pragma: public");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=member.csv");
ã“れã§ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ãŒã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚
ãªãŠã€Content-Disposition: attachemnt 㨠Cache-Control: no-cache ã«ã‚ˆã‚‹ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ã®å•題 ã§ã¯ç¾è±¡ãŒç™ºç”Ÿã™ã‚‹ãƒ–ラウザã¨ã—ã¦
?Microsoft Internet Explorer 5.0
?Microsoft Internet Explorer 6.0
?Microsoft Internet Explorer 6.0 Service Pack 1
ã¨æ›¸ã‹ã‚Œã¦ã„ã¾ã—ãŸãŒã€ IE6 ã® SP2 ã§ã‚‚åŒæ§˜ã®ç¾è±¡ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚
12月 27
Smarty ã«ã¯æ£è¦è¡¨ç¾ã‚’使用ã—ã¦æ–‡å—列を置æ›ã™ã‚‹ regex_replace ãŒã‚りã¾ã™ã€‚
ã“れを上手ã«ä½¿ç”¨ã—㦠if æ–‡ã§æ£è¦è¡¨ç¾ã‚’用ã„ã¦æ¡ä»¶åˆ†å²ã•ã›ã¾ã™ã€‚
if (preg_match('/php/i', 'PHP is the web scripting language of choice.')) {
echo 'A match was found.';
} else {
echo 'A match was not found.';
}
PHP ã§ä¸Šè¨˜ã®ã‚ˆã†ãªå‡¦ç†ã‚’ Smarty ã§æ›¸ãã¨ä¸‹è¨˜ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚
{assign var='string' value='PHP is the web scripting language of choice.'}
{if $string|regex_replace:'/.*php.*/i':'php' eq 'php'}
A match was found.
{else}
A match was not found.
{/if}
ãƒã‚¤ãƒ³ãƒˆã¯ regex_replace を用ã„ã¦ã€æ£è¦è¡¨ç¾ã®ãƒ‘ターンã«è©²å½“ã™ã‚‹å ´åˆã¯å…ƒã®æ–‡å—列を何ã‹ã—ã‚‰ã®æ–‡å—列(上ã®ä¾‹ã§ã„ã†ã¨’php’)ã«ç½®æ›ã—ã¦ã—ã¾ã„ã€ãれを eq ã§ç½®æ›ã•れã¦ã„ã‚‹ã‹åˆ¤å®šã™ã‚‹ã¨ã„ã†ã“ã¨ã§ã™ã€‚
ã“れを実際ã«ä½¿ç”¨ã—ãŸã®ã¯ OpenPNE ã®ãƒ†ãƒ³ãƒ—レートã§ã™ã€‚
OpenPNE を使用ã—ã¦ã„ã¦ã€ç‰¹å®šã®ã‚«ãƒ†ã‚´ãƒªã®ã¨ãã®ã¿èªã¿è¾¼ã‚€ CSS を変ãˆãŸã„ã¨ããŒã‚りã¾ã—ãŸã€‚
OpnePNE ã®ã‚¤ãƒ™ãƒ³ãƒˆé–¢é€£ã® URL ã¯ã€€http://expamle.com/?m=pc&a=page_c_event_*** ã¨ã„ã†æ„Ÿã˜ã«ãªã‚Šã¾ã™ã€‚
全部ã§14種類ã‚りã¾ã™ã®ã§ã€ã“れを普通㫠if æ–‡ã§æ›¸ã„ã¦ã„ã‚‹ã¨å¤§å¤‰ãªã“ã¨ã«ãªã‚Šã¾ã™ã—ã€è¿½åŠ ãªã©ãŒã‚ã£ãŸã¨ãã®ã“ã¨ã‚’考ãˆã‚‹ã¨ã‚ˆãã‚りã¾ã›ã‚“。
ãã“ã§ Smarty ã® if æ–‡ã«æ£è¦è¡¨ç¾ã‚’使用ã—ã¦ä¸‹è¨˜ã®ã‚ˆã†ã«ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Š1ã¤ã®æ¡ä»¶ã§ page_c_event_*** ã® URL ã‚’æ¡ä»¶åˆ†å²ã•ã›ã¾ã—ãŸã€‚
Smarty テンプレート
{if $smarty.get.a|regex_replace:"/page_c_event.*_/":"event" eq "event"}
{** イベントã§ã™**}
{else}
{** イベント以外ã§ã™ **}
{/if}
12月 26
ã“ã®ãƒ–ãƒã‚°ã§ã„ã†ã¨å³ã‚«ãƒ©ãƒ ã«ã‚る「Recent Entryã€ã®å„ã‚¨ãƒ³ãƒˆãƒªã®æ¨ªã«ã¯ã¦ãƒ–数を表示ã—ã¦ã¿ã¾ã—ãŸã€‚
ã“れ㯠WordPress ã®ã‚½ãƒ¼ã‚¹ã‚’å°‘ã—ã„ã˜ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
wp-includes/widgets.php
698行目ã‚ãŸã‚Šã«ã‚ã‚‹
<li><a href="<?php the_permalink() ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?> </a></li>
ã¨ã„ã†è¡Œã‚’
<li><a href="<?php the_permalink() ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?> </a> <a href="http://b.hatena.ne.jp/entry/<?php the_permalink(); ?>"><img src="http://b.hatena.ne.jp/entry/image/<?php the_permalink(); ?>" alt="" /></a></li>
ã«å¤‰æ›´ã—ã¾ã™ã€‚
変更ã—ãŸãƒ•ァイルをアップãƒãƒ¼ãƒ‰ã™ã‚‹ã®ã‚’ãŠå¿˜ã‚Œãªãï¼
試ã—㟠WordPress ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã¯ ME2.2.1 ã«ã§ã™ã€‚
12月 26
ã“ã®ãƒ–ãƒã‚°ã¯ Simple Tagging ã¨ã„ã†ãƒ—ラグインを使用ã—ã¦å„エントリã«ã‚¿ã‚°ã‚’ã¤ã‘ã¦ã„ã¾ã™ã€‚ã“ã®ãƒ—ラグインを使用ã™ã‚‹ã¨ã‚¿ã‚°ã‹ã‚‰å„エントリã®é–¢é€£ã‚¨ãƒ³ãƒˆãƒªã‚’自動的ã«è¡¨ç¤ºã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚詳ã—ãã¯ä¸‹è¨˜ã‚¨ãƒ³ãƒˆãƒªã‚’ã”覧ãã ã•ã„。
WordPress ã§ã‚¿ã‚°ã‚’使ãˆã‚‹ã‚ˆã†ã«ã—ã¦ã¿ãŸ
今回ã¯ã“ã®é–¢é€£ã‚¨ãƒ³ãƒˆãƒªã®ã¯ã¦ãªãƒ–ックマーク数を表示ã™ã‚‹ã‚ˆã†ã«ã™ã‚‹æ–¹æ³•ã§ã™ã€‚
ã“ã‚“ãªã‚¤ãƒ¡ãƒ¼ã‚¸ã§ã™ã€‚

関連エントリを表示ã™ã‚‹ã‚¿ã‚°
<?php STP_RelatedPosts(); ?>
ã“ã® STP_RelatedPosts 関数ã®ç¬¬1引数ã¯è¡¨ç¤ºãƒ•ォーマットを指定ã™ã‚‹ã®ã§ã€ãã“ã«ã¯ã¦ãƒ–数を表示ã™ã‚‹ã‚ˆã†ãªãƒ•ォーマットを指定ã—ã¾ã™ã€‚
<?php STP_RelatedPosts('<li><a href="%permalink%" title="%title% (%date%)">%title%</a> <a href="http://b.hatena.ne.jp/entry/%permalink%"><img src="http://b.hatena.ne.jp/entry/image/%permalink%" alt="" /></a>'); ?>
ã“れã§é–¢é€£ã‚¨ãƒ³ãƒˆãƒªã«ã¯ã¦ãƒ–æ•°ãŒè¡¨ç¤ºã•れるよã†ã«ãªã‚Šã¾ã—ãŸã€‚
12月 26
å°‘ã—ã¥ã¤ã¯ã¦ãƒ–ã•れるよã†ã«ãªã£ã¦ããŸã®ã§ã€å„エントリーã®ã‚¿ã‚¤ãƒˆãƒ«ã®æ¨ªã«ã¯ã¦ãªãƒ–ックマーク数ã¨
を表示ã™ã‚‹ã‚ˆã†ã«ã—ã¦ã¿ã¾ã—ãŸã€‚
ã¯ã¦ãƒ–ボタンを表示
http://d.hatena.ne.jp/images/b_entry.gif ã‹ã‚‰
アイコンをダウンãƒãƒ¼ãƒ‰ã—ã¦è‡ªåˆ†ã®ã‚µãƒ¼ãƒã«ã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã—ã¾ã™ã€‚
表示ã—ãŸã„å ´æ‰€ã«ä¸‹è¨˜ã‚¿ã‚°ã‚’è¿½åŠ ã—ã¾ã™ã€‚
<a href='http://b.hatena.ne.jp/entry/<?php the_permalink(); ?>'><img src='/images/b_entry.gif' width='16' height='12' style='border: none;' alt='ã“ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’å«ã‚€ã¯ã¦ãªãƒ–ックマーク' title='ã“ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’å«ã‚€ã¯ã¦ãªãƒ–ックマーク' /></a>
å‚考:ã¯ã¦ãªãƒ–ックマーク – ヘルプ – 自分ã®ãƒ–ãƒã‚°ã«ã€Œã“ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã‚’å«ã‚€ã¯ã¦ãªãƒ–ックマークã€ãƒœã‚¿ãƒ³
ã¯ã¦ãªãƒ–ックマーク数を表示
表示ã—ãŸã„å ´æ‰€ã«ä¸‹è¨˜ã‚¿ã‚°ã‚’è¿½åŠ ã—ã¾ã™ã€‚
<a href='http://b.hatena.ne.jp/entry/<?php the_permalink(); ?>'><img src='http://b.hatena.ne.jp/entry/image/<?php the_permalink(); ?>' alt='' /></a>
å‚考:ã¯ã¦ãªãƒ–ックマーク – ヘルプ – 自分ã®ãƒ–ãƒã‚°ã«ã€Œâ—‹â—‹usersã€ã‚’表示
12月 25
PEAR ã® HTTP_Request を使用ã—ã¦ãƒ•ァイルをアップãƒãƒ¼ãƒ‰ã™ã‚‹æ–¹æ³•ã§ã™ã€‚
<form action='POST_URL' method='post' enctype='multipart/form-data'>
<input type='text' name='title'>
<textarea name='body'></textarea>
<input type='file' name='upload_file'>
<input type='submit'>
</form>
上記ã®ã‚ˆã†ãª HTML ã§ãƒ•ァイルをアップãƒãƒ¼ãƒ‰ã™ã‚‹å ´åˆã¨åŒã˜ã‚ˆã†ãªå‡¦ç†ã‚’ã™ã‚‹ã«ã¯ã€ä¸‹è¨˜ã®ã‚ˆã†ã« HTTP_Request を使用ã—ã¾ã™ã€‚
// POST パラメータ
$post_data = array(
'title' => $title,
'body' => $body,
);
// アップãƒãƒ¼ãƒ‰ãƒ‘ラメータ
$upload_file = array(
'name' => 'file',
'path' => '/path/to/file',
);
// アップãƒãƒ¼ãƒ‰
$rs = http_send(POST_URL, $post_data, $upload_file);
function http_send($url, $params, $upload_file=null) {
$req = new HTTP_Request();
$req->setMethod(HTTP_REQUEST_METHOD_POST);
foreach ($params as $key => $val) {
$req->addPostData($key, $val);
}
$req->setURL($url);
if ($upload_file) {
$res = $req->addFile($upload_file["name"], $upload_file["path"]);
if (PEAR::isError($res)) {
echo $res->getMessage();
exit;
}
}
if (!PEAR::isError($req->sendRequest())) {
return $req->getResponseBody();
} else {
return false;
}
}
å‚考:PEAR :: Manual :: ファイルアップãƒãƒ¼ãƒ‰
Recent Comments