勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

独自タグからタグへの変換function

      2014/07/03

独自タグは##IMG1##みたいな感じ。

画像ファイル名は「ファイルパス/seq_独自タグの数字.拡張子」になる。

例)aaa/bbb/ccc/image/12_1.png

■image.php

<?php

//画像用変数
$exts = array(
1=>".jpg",
2=>".png",
3=>".gif");
$image_tags = array(
1=>"##IMG1##",
2=>"##IMG2##"
);
$file_path = 'aaa/bbb/ccc/images'; //ファイルパス
$image_limit = 2; //画像のアップ枚数上限

//独自タグ⇒imgタグ変更用function
function Image_change($file_path, $exts, $seq_check, $image_limit, $body_check, $image_tags) {
for($i=1; $i<=$image_limit; $i++){ //独自タグの回数分ループをまわす
$image_check = $file_path . '/' . $seq_check . '_' . $i; //画像パスの拡張子より前の部分を$image_checkに代入
if(strpos($body_check,$image_tags[$i]) !== false){ //独自タグがあった場合
for($x=1; $x<=3; $x++){ //jpg or png or gifの選択
$image_check2 = $image_check . $exts[$x]; //ファイルパスを完全に指定
if (file_exists($image_check2)){ //ファイルバスが存在した場合
echo $image_tags[$i] .'->'. $image_check2.'<br>';
$body_check = str_replace($image_tags[$i], "<img src='./images/{$seq_check}_{$i}${exts[$x]}'>" ,$body_check);
}
}
}
}
return $body_check;
}

■index.php

$sql = "
SELECT *
FROM image_test;
";
$row = mysql_query($sql) or die('error2');
while($rs = mysql_fetch_array($row)) {
$d_seq = $rs['seq'];
$seq_check = $rs['seq'];
$d_name
= $rs['is_name'];
$body_check = $rs['is_body'];
$d_body[] = Image_change($file_path, $exts, $seq_check, $image_limit, $body_check, $image_tags);
}

 - PHP, 画像

  関連記事

PHPでのファイル関係

ファイルを呼び出したり書き込んだりとかしばしば行うが、 未だに調べることが多いの ...

phpでhtmlをpdf化。あと無理矢理画像をpdf化

画像をphpでpdf化したかった。 検索してみるもサーバー側の設定を必要とするも ...

MySQLで加算しつつNULL値は0にする

いくつかのコードに対して投票を行い、 その合計値をスコアとして出したい。 ただ、 ...

PHPでログファイルから指定行数表示させる

エラーログを最新分から指定行数表示させる プログラムがあって、どういった作りにな ...

no image
短縮URL作成(管理画面)

error_reporting(E_ALL & ~E_NOTICE); ...

PHPからMySQLにシリアライズしたデータを格納

アンケートフォームみたいなのがあって、 今後も定期開催し、尚且つ質問内容は増減す ...

Facebookのタイムラインを取得して表示する方法

Facebookのタイムラインを取得してきて、表示させたいという案件があった。 ...

Shift_JISでカタカナのソを出力するとエラー

先に結論として5C問題とかいうみたいで仕様らしい。 ■参考サイト http:// ...

Basic認証がかかっているファイルをPHPで認証突破と取得

Aというサイトにあるベーシック認証がかかっているディレクトリ内のファイルを、Bと ...

エラー処理を1ページにまとめる

できるだけまとめておいた方が効率よさそうなのでメモ。 メインのフォルダにlogs ...