ヘアサロン店長の独り言♂

美容、ヘアスタイルについてや、PC・クルマなど・・・イロイロと 気になる事を載せていこうと思ってます。モバイルコンテンツ

タグリスト: PHP で分類表示(1-6ページ)

2008-05-16 (6/12page)

人気ヘアケアブログランキング BLOGGER タグリスト(クラシックテンプレート)

BLOGGERでFTP公開サイト用のタググラウンドのつづき。
以前BLOGGER FTP公開サイトのラベルでの分類方法に書いたが、
今回はタグの項目数も取り出してみた。


<?php
$dir = 'サーバーのlavelsのパス';#ラベルのパス
$url = 'http://blog.peaks-jp.com/labels/';
$labellist ="<h2 class='sidebar-title'>".mb_convert_encoding("ラベルリスト", "EUC-JP", "sjis")."</h2><ul class='archive-list'>";

if($handle = opendir($dir)) { #ディレクトリハンドルを獲得
while(false !== $file = readdir($handle)){ #ファイル名獲得
list($filename,$html) = split("\.", $file); #ファイル名と拡張子を分割
if(!$filename){continue;}
$filename = str_replace("__", "/", $filename); #ファイル名にするためbase64で/が__に変更されているのを戻す
$labellist .="<li><a href='$url$file'>";
if (preg_match("/=([A-F0-9]{2})/",$filename)) {
# $labellist .= quoted_printable_decode ($filename); #quoted_printable_decodeでローマ字+日本語に変換
$labellist .= mb_convert_encoding(quoted_printable_decode ($filename), "EUC-JP", "UTF-8") ;#BLOGで設定しているcharsetに合わす場合
}elseif(mb_detect_encoding(base64_decode($filename)) == "UTF-8"){
# $labellist .= base64_decode($filename) ; #encodingがUTF-8ならbase64_decodeで日本語変換
$labellist .= mb_convert_encoding(base64_decode($filename), "EUC-JP", "UTF-8") ; #BLOGで設定しているcharsetに合わす場合
}else{
$labellist .= $filename ; #ローマ字のファイル名はそのまま表示
}
$labelhtml = file_get_contents("$dir$file");
if (preg_match_all( "/<h3 class=\"post-title\">(.*)<\/h3>/i",$labelhtml,$titlename)){
$labellist .="(".count($titlename[0]).")<br />";
# foreach( $titlename[1] as $val2){$labellist .="$val2<br />";}
}
$labellist.="</a></li>";
}
}
closedir($handle); #ディレクトリハンドルを閉じる
$labellist .="</ul>";
header ("Content-Type: text/html; charset=EUC-JP");#javascriptとしてEUC-JPで表示する(環境に合わす必要があります)
echo "document.write(\"";
echo $labellist;
echo "\");";
?>

という感じで変数に代入しjavascriptで書き出します。

Labelグループのフォルダにあるファイルを1件ずつ取り出しファイルを読み込んで
テンプレートで使われる<h3 class=\"post-title\">(.*)<\/h3>を探して件数を数えています。
$dir = 'サーバーのlavelsのパス' の指定をアーカイブに変えたらアーカイブも取り出せます。
$titlename[1]にすると、タイトルだけの取り出しもできますよ
一言どうぞ

2008-05-14 (5/12page)

人気ヘアケアブログランキング PHP 画像に文字を追加

PHP 画像に文字を追加このブログは画像をclickすると、javascriptで簡単設定イメージ画像拡大スクリプトでシャドーがかかり画像が拡大されるようにしてありますが、そこにおまけとして、画像にphpで[クリックすると拡大します]という文字列を描写するスクリプトをつくってみました。
本当はjavascriptで文字を重ねたかったけど、IEは問題ないが、FFの場合positionの指定でズレがでて修正できなかったのでやめました。

<?php
if($_SERVER["REMOTE_ADDR"] == "127.0.0.1"){$encode='utf-8';}else{$encode='euc-jp';}
$txt = mb_convert_encoding("[クリックすると拡大します]", $encode,"sjis");
if(isset($_SERVER['QUERY_STRING'])) {$jpeg = $_SERVER['QUERY_STRING'];}
$font = "/var/www/home/~/shop/font/brmislw0.ttf";//サーバーパスの方が間違いない
list($width, $height, $type, $attr) = getimagesize($jpeg);//画像サイズの収得
$image = imagecreatefromjpeg($jpeg);
$color = imagecolorallocate($image, 255,255,255);
$alpha = imagecolorallocatealpha($image, 0, 0, 0, 90);//透かしイメージ
imagefilledrectangle ($image , $width-147, $height-20, $width-3, $height-3, $alpha);
//imagefilledrectangle (画像ID ,左上x, 左y, 右下x, 右y, カラー);
imagettftext ($image, 8, 0, $width-144, $height-7, $color,$font,$txt);
imagettftext ($image, 8, 0, $width-144, $height-7, $color,$font,$txt);
//ImageTTFText(画像ID, 文字サイズ, アングル, X座標, y座標, 文字色, フォントのファイル,文字列);
header("Content-type: image/jpeg");
imageJPEG($image, null, 100);//最後の100は画質設定0~100
imagedestroy($image);
?>
呼び出しは <img alt="" src="http://~設置したプログラム名.php?呼び出す画像名"/>です。

  • any2eucjp(): something happen in~のエラーは日本語書き込み時のエラーなので、mb_convert_encodingの指定で直る(うちのサーバーの場合euc-jpでローカルサーバーの場合utf-8で変換されるのでテスト用に$_SERVER["REMOTE_ADDR"]で振り分けています。)
  • imagettftextで2回書き込んであるのは、濃さを増すためです。
  • 直接アクセスしたときにエラーメッセージじゃなく文字の羅列になる場合は、Fontが日本語非対応か、指定場所の間違えでしょう。
一言どうぞ

2008-04-25 (4/12page)

人気ヘアケアブログランキング Google モバイル コンテンツ向け AdSenseの文字化け

先日から、mobile用のAdSenseの文字化けが気になっていたが、
(設定時は表示されてなく数ヶ月たってから表示されていた・・・何でだ?)

で、携帯でアクセスすると文字化けしているのに気がつき、対策として、
PCサイトをphpプログラムで変換しているので、それをUTF-8にしたりSJISで書いたりと
していたが(元はeuc-jpで書いてあるのをSJISで出力している)結局
グーグルのヘルプをよく読めば何のことも無く、

euc-jpで書かれているプログラム中に下記の設定でSJIS出力して文字化けが無くなった。


$GLOBALS['google']['oe']='euc-jp';
一言どうぞ

2008-04-04 (3/12page)

人気ヘアケアブログランキング php PEAR(ペアー)のインストール xp + php5.2.5

ローカルでphpが作動する環境で、phpのフォルダーに

go-pear.bat
PEAR→ go-pear.phar が存在する場合、
(phpのインストール時にExtras→PEAR installを指定すると作られる)

go-pear.batが下記のようになっているので

@ECHO OFF
set PHP_BIN=php.exe
%PHP_BIN% -d output_buffering=0 PEAR\go-pear.phar
pause 下記のように書き換え

@ECHO OFF
set PHP_BIN=php.exe
%PHP_BIN% -d output_buffering=0 C:\PHP\PEAR\go-pear.phar
pause
(C:\・・・は環境に合わせる)
後はコマンドプロンプトから

C:\Documents and Settings\....>go-pear
後はエンターし、出てくる1を選択してベースのフォルダーを指定する。
普通に
C:\Documents and Settings\....>cd c:\PHP
で移動したら、go-pear.batの修正は必要ないけど・・・

固まっている場合は、
php.iniの output_handler = mb_output_handlerを確認し コメントアウトするべし
;output_handler = mb_output_handler

エラーが出る場合は、windows配下のpear.iniをチエックする

一言どうぞ

2007-07-15 (2/12page)

人気ヘアケアブログランキング PHP PATH_INFO式に変更の巻き

http://www.peaks-jp.com/shop/item/ はphpでお勧めの商品の情報を記載しているが、なんとなくグーグルにランクされやすいかなってもくろみで、これを静的なURLに変更してみる。
動的なurl http://www.peaks-jp.com/shop/item/?makerTOP=%83A%83%8A%83%7E%83m
静的なurl http://www.peaks-jp.com/shop/item/makerTOP/ARIMINO/

ベースは下記の式ぐらいかな後は、受け取り側で$_GET['makerTOP']ってしてたのを$Mtopにかえたり、
リンク先を?makerTOP=%83A%83%8A%83%7E%83m ってゆうのを ./makerTOP/ARIMINO/って加工したりで大丈夫。
$PATH_INFO = $_SERVER['PATH_INFO'];
list(,$Mtop,$Mdat,$Ltop,$Ldat) = explode("/",$PATH_INFO);
$_SERVER['PATH_INFO']は/から始まるからlistも,で一個目とばしてる

普通にすると、http://www.peaks-jp.com/shop/item.php/makerTOP/ARIMINO/
ってなるから拡張子外しの裏技!!
.htaccessで
<FilesMatch "^item$">
ForceType application/x-httpd-php
</FilesMatch>
ってして拡張子なしでもphpとして作動させるファイル名ももちろん拡張子なしでitemだけにしておくべし

一言どうぞ

2007-07-13 (1/12page)

人気ヘアケアブログランキング ローカルサーバー Apache2.2 + PHP5 +Perl5.8 on XP

いつも、cgiやphpはlocalでテストしてから公開しているが、自宅で作ったphpがweb上では動くが、店舗のPCでは作動しなくなっている。バージョン違いかと思うが設定しなおすのも面倒だから、最初から入れなおす。

AN HTTPD 1.42p と PHP Version 5.2.0で動かしていたが、これを

とりあえず英文を斜めよみしながら、Apacheをインストール後

スタート→Apache HTTP Server 2.2.4→Configure Apache Server→Edit the Apache httpd.conf Configuration File でhttpd.confを開いて

 "C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf"(標準時のパス)

149行目 DocumentRoot の指定と
177行目 Directory の指定のみし、

http://localhost/ にアクセスすると You don't have permission to access って

3分ほど悩み、xpで動かしてるから / じゃなく \でルート指定ね。

212行目 DirectoryIndex  を
DirectoryIndex index.html index.php index.cgi
ってして

http://www.php.net/manual/ja/install.windows.apache2.php を参考に、
モジュールとしてPHPのインストール
そうすると勝手にhttpd.confの最終行に
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
PHPIniDir "C:\\PHP\\"
LoadModule php5_module "C:\\PHP\\php5apache2_2.dll"

#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
って書き込まれるから、\\を\にしてPHPは作動する。

  • include_path や doc_root や extension_dir は設定は済ませておく
  • どういうわけか、PHP Version 5.2.3のextをいれるとApacheがとまってしまうのでv5.2.0のを使った

次はperlの設定
Option Indexesの最後に「ExecCGI」を追加して、 (190行目)
Options Indexes FollowSymLinks MultiViews ExecCGI

ScriptAlias /cgi-bin/ は#追加して止めて
# ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache/cgi-bin/"

<IfModule mime_module>360行目の配下に下記の行を追加して
AddType application/x-httpd-cgi .cgi .pl

終わり。
私の環境では動いているが、これまたすごく早くなっていてすごく快適になった!!

perlはc:\use\にインストールすると大抵のフリーcgiは、1行目が#!/usr/bin/perlになっているのが多いから後からが楽だよー

一言どうぞ
VISAカード

楽天カード