前回はPearを利用しましたが、利用しない方法。
こちらを利用しました。
ソースだけ書くと。
mailsample.php
--------------------------------------------------
require("mail.php");
$MailFrom = "hogehoge@○○.jp";
$MailTo = "hoge@○○.jp";
$Subject = "メール送信テスト";
$Message = <<< __EOF__
メール送信テスト
(サンプル)
ヒアドキュメントで生成する場合は、このようになります。
__EOF__;
$Kekka = MailSender($MailFrom, $MailTo, $Subject, $Message);
?>
--------------------------------------------------
mail.php
--------------------------------------------------
function MailSender($MailFrom, $MailTo, $Subject, $Message)
{
$xSubject = mb_convert_encoding($Subject, "JIS", "auto");
$xSubject = base64_encode($xSubject);
$xSubject = "=?iso-2022-jp?B?".$xSubject."?=";
$xMessage = htmlspecialchars($Message);
$xMessage = str_replace("&", "&", $xMessage);
if (get_magic_quotes_gpc()) $xMessage = stripslashes($xMessage);
$xMessage = str_replace("\r\n", "\r", $xMessage);
$xMessage = str_replace("\r", "\n", $xMessage);
$xMessage = mb_convert_encoding($xMessage, "JIS", "auto");
$GMT = date("Z");
$GMT_ABS = abs($GMT);
$GMT_HOUR = floor($GMT_ABS / 3600);
$GMT_MIN = floor(($GMT_ABS - $GMT_HOUR * 3600) / 60);
if ($GMT >= 0) $GMT_FLG = "+"; else $GMT_FLG = "-";
$GMT_RFC = date("D, d M Y H:i:s ").sprintf($GMT_FLG."%02d%02d", $GMT_HOUR, $GMT_MIN);
$Headers = "Date: ".$GMT_RFC."\n";
$Headers .= "From: $MailFrom\n";
$Headers .= "Subject: $xSubject\n";
$Headers .= "MIME-Version: 1.0\n";
$Headers .= "X-Mailer: PHP/".phpversion()."\n";
$Headers .= "Content-type: text/plain; charset=ISO-2022-JP\n";
$Headers .= "Content-Transfer-Encoding: 7bit";
if(mail($MailTo, $xSubject, $xMessage, $Headers)) return true;
return false;
}
?>
--------------------------------------------------
※mail関数、mbstring関連関数を使用できない場合は動作しません。
本日、PHPフレームワークmojavi で、テンプレート Smarty を利用したのでメモ。
○Smarty2.6.7 マニュアル
http://sky.freespace.jp/smarty/SmartyManual_2-6-7J_html/
例:
http://sky.freespace.jp/smarty/SmartyManual_2-6-2J_html/language.modifier.truncate.html
{{{
index.php:
$smarty = new Smarty;
$smarty->assign('articleTitle', 'Two Sisters Reunite after Eighteen Years at Checkout Counter.');
$smarty->display('index.tpl');
index.tpl:
{$articleTitle|truncate:30:"...":true}
出力:
Two Sisters Reunite after E...
}}}
PHP のログの出力設定。
http://wiz.syscon.co.jp/Lnxphp.html
たとえば
--------------------------------------------------
error_reporting = E_ALL & ~E_NOTICE
log_errors = On
error_log = /var/log/php
--------------------------------------------------
へー。以下コピー。
--------------------------------
Mojavi SEO対策
テーマ:PHP
Mojaviはフロントコントローラで動くフレームワークのため、ページごとの制御は引数で行っています。
こんな感じ ↓
http://xxxxx.co.jp/index.php?module=Defult&action=Index
そのため、各ページを検索エンジンに拾ってもらうためにちょっとした工夫が必要になります。
まずは、Mojaviのconfig.phpファイルの↓の部分を1から2に変更。
define('URL_FORMAT',1); => define('URL_FORMAT',2);
こうすることで、引数がPATHフォーマットでもMojaviが認識するようになります。
こんな感じ ↓ でも上のURLと同じ動き
http://xxxxx.co.jp/index.php/module/Default/action/Index/
そしてさらに、Mojaviのindex.phpを配置しているディレクトリに、以下の記述をした.htaccessを配置します。
ForceType application/x-httpd-php
最後に、index.phpをコピーして、index にすれば、出来上がり。
するとこんな感じのURL ↓ でアクセスできます。
http://xxxxx.co.jp/index/module/Default/action/Index/
------------------------------------------------
-----------------------------------------------
require_once 'Services/HTML2PDF.php';
$pdf = Services_HTML2PDF::convert("http://labs.cybozu.co.jp/", 'PDF');
if (PEAR::isError($pdf)) {
print($pdf->getMessage() . "\n");
exit();
}
file_put_contents(dirname(__FILE__) . '/hoge.pdf' , $pdf);
set_time_limit(60);
↑これで60秒になる。
>スクリプトが実行可能な秒数を設定します。 この制限にかかるとスクリプトは致命的エラーを返します。 デフォルトの制限値は 30 秒です。 なお、php.iniでmax_execution_timeの 値が定義されている場合にはそれを用います。 secondsにゼロをセットした場合、時間制限は行われません。
max_execution_time = 60
http://php.s3.to/man/function.set-time-limit.html
http://oshiete1.goo.ne.jp/kotaeru.php3?q=2034385
○「C:\php」PHPをインストールした場合。
1.環境変数( Path )の設定
C:\php\cli
2.コマンドラインで利用できるか、コマンドプロンプトで[ php -v ]と入力して確認する
-------------------------------------------------------
C:\>php -v
PHP 4.4.0 (cli) (built: Jul 11 2005 16:13:16)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
-------------------------------------------------------

3319/3319 test cases complete: 7291 passes, 0 fails and 0 exceptions.
1つの応募フォームで テストの数 7291・・・テスト過多かな・・・?
classひとつひとつの結果表示と、ALL Testsを両方、htmlで表示すると、
テスト実行し終わるのに3時間かかる・・・。
へー。あとで使ってみようかな....。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070311/264502/http://itpro.nikkeibp.co.jp/article/COLUMN/20070311/264502/
| Su | Mo | Tu | We | Th | Fr | Sa |
|---|---|---|---|---|---|---|
| 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 |