いつまで続くのか、何を書くのか、それもまた流れのままに 頭の中にまとまらないものがあるから そんなのがふと出た時に書いていく
僕のネット帳
スポンサーサイト
-----------  CATEGORY: スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
ページトップへ
foreachで参照(リファレンス)を使ったら次のforeachでひどいことになった
2014-03-01-Sat  CATEGORY: php
phpで配列を扱うのに便利な関数「foreach」
php5から参照が使えるようになったので使った・・ら、予期せぬ事態発生

※一番最初のforeachは参照使ってる、二番目のforeachは参照使わない
$a=array(1,0,-1);
$b=array(2,3,4);

foreach ($a as $n => &$l) {
/* なんか処理 */
}
foreach ($b as $n => $l) {
/* なんか処理 */
}
print_r($a);

これやると、

Array ( [0] => 1 [1] => 0 [2] => 4 )

っていう結果が返る。
$aの配列の3番目が-1⇒4になった。
最後の参照がそのまま生き残って次に持ち越されるみたい。
もしも
foreach ($b as $n => $l) {
if($n===1) {
break;
}
}
ってやれば、
print_r($a);は

Array ( [0] => 1 [1] => 0 [2] => 3 )

ってなる。

参照使ったらちゃんとunset($l)をやりましょう。
スポンサーサイト
ページトップへ  トラックバック0 コメント0
Cache_Liteのlifetimeはキャッシュ取得時に比較する
2012-08-24-Fri  CATEGORY: php
サイトの負荷軽減にCache_Liteを使っているのですが、
lifetimeを設定しても全くキャッシュされない現象が発生。

何故かな、と調べていたらlifetimeの意味を勘違いしていたようだ。
解説ではlifetimeを「キャッシュ生存期間」としてあるが、各々のキャッシュに生存期間を保存しているわけではない。
各々のキャッシュには生成日があるだけで、getする際にその生成日とgetするその時に設定したlifetimeを比較する。
そして、生成日の方が古かったら新しくするという動作をしている模様。

lifetimeは保存期間ではなく、その時間以内に保存されたキャッシュなら読みに行く(生存させる)、という意味のようである。
ページトップへ  トラックバック0 コメント0
phpでCall to undefined function curl_init()が出る場合の対処法
2011-12-27-Tue  CATEGORY: php
  1. php.iniの「;extension=php_curl.dll」をコメントアウト
  2. php_curl.dllを「php/ext」に投入
  3. libeay32.dllとssleay32.dllをpathの通ってるところに入れる
3のパスは
システムのプロパティ>詳細設定>環境変数>pathに入ってるとこ
system32とか。

詳しくはこちら
http://ameblo.jp/utkworks/entry-10386784772.html
ページトップへ  トラックバック0 コメント0
phpでの負荷軽減と速度アップ
2009-06-26-Fri  CATEGORY: php
負荷軽減
Cache_Lite(id作って部分ごとにキャッシュできる。1ページ全部もキャッシュできる)

速度アップ
curl_multi(並列処理できる)

組み合わせると最高。
ページトップへ  トラックバック0 コメント0
PHPとJavascriptでPOSTされた値を利用してスクロールさせる。
2008-04-27-Sun  CATEGORY: php
前回のアンカー利用だと対象が一番上部に表示されてしまうので、今度はスクロールバーの値をJavascriptで取得しておいてそれをPOSTしてデータを受け渡し、更にPHPで表示させてJavascriptで読み取れるようにして更新後に同じ場所を表示させるようにした。
こんな感じ。
スクロールバーの位置を取得してフォームに受け渡し。
function DoSubmit(data){
get = document.documentElement.scrollTop || document.body.scrollTop;
document.jumpForm.jump_sc.value=get;
}

スクロール位置を受け取ってページ読み込みと共に実行させる。
window.onload = function Wscroll(){
sc_data = document.getElementById('jumpForm').jump_sc2.value;
window.scroll( 0, sc_data );
}

フォームはこんな感じ。
<form name="jumpForm" method="post" action="dbsele.html">
<input type="text" name="jump_sc" size="5" value="" />
<?php
if (isset($_POST['jump_sc'])) {
echo '<input type="hidden" name="jump_sc2" value="'.$_POST['jump_sc'].'" />';
}
?>
</form>
ページトップへ  トラックバック0 コメント0
<< 2017/08 >>
S M T W T F S
- - 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 - -


余白 Copyright © 2005 僕のネット帳. all rights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。