mb_languageなどのmb関数が読み込めない
PHP でメール送信機能付きのお問い合わせフォームを作っております。
事象としては PHP のモジュール拡張機能である mb_string
が読み込めていないことだと思いますが、未だに解決できません。
原因とその解決法を教えてください。
以下のコマンドで mb_string
はインストール済みです。
sudo yum --enablerepo=remi install -y php php-devel php-mysql php-mbstring php-gd
※環境:
- mac
- PHP 5.4.45
- Vargant
で動かしています。
実際のコードは以下に転記しておきます。
(個人情報の関係上、送信先と送信元は空白指定です)
<?php
mb_language("ja");
mb_internal_encoding('UTF-8');
$name = $_POST['name'];
$title = $_POST['title'];
$address = $_POST['address'];
$message = $_POST['message'];
//初期化
$sTo = '';
$sFromMail = '';
$sSubject = '';
$sMessage = '';
$sHeaders = '';
//送信先
$sTo = '';
//送信元
$sFromMail = '';
//題
$sSubject = '【件名】メール送信テスト';
//ヘッダー
$sHeaders = "From: {$sFromMail}\r\n";
//$sHeaders .= 'Return-Path: yamapoon24@gmail.com';
//本文
$sMessage .=
"\n"
."<p>お名前:<?php echo htmlspecialchars($name, ENT_QUOTES, 'utf-8'); ?></p>"
."<p>件名:<?php echo htmlspecialchars($title, ENT_QUOTES, 'utf-8'); ?></p>"
."<p>メールアドレス:<?php echo htmlspecialchars($address, ENT_QUOTES, 'utf-8'); ?></p>"
."<p>本文:<?php echo htmlspecialchars($message, ENT_QUOTES, 'utf-8'); ?><br />";
//送信処理
if(mb_send_mail($sTo, $sSubject, $sMessage, $sHeaders)){
echo 'メール送信に成功致しました。<br/>';
}else{
echo 'メール送信に失敗致しました。<br/>';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>[課題]PHP基礎編(2)</title>
<link rel="stylesheet" href="">
</head>
<body>
<h1>お問い合わせいただき、ありがとうございました!</h1>
</body>
</html>
/etc/php.d/mbstring.ini
の中身:
; language for internal character representation.
; http://php.net/mbstring.language
mbstring.language = Japanese
; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
; http://php.net/mbstring.internal-encoding
mbstring.internal_encoding = UTF-8
; http input encoding.
; http://php.net/mbstring.http-input
mbstring.http_input = pass
; http output encoding. mb_output_handler must be
; registered as output buffer to function
; http://php.net/mbstring.http-output
;mbstring.http_output = pass
; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
; http://php.net/mbstring.encoding-translation
mbstring.encoding_translation = Off
; automatic encoding detection order.
; auto means
; http://php.net/mbstring.detect-order
mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
; substitute_character used when character cannot be converted
; one from another
; http://php.net/mbstring.substitute-character
mbstring.substitute_character = none;
; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
; http://php.net/mbstring.func-overload
mbstring.func_overload = 0
; enable strict encoding detection.
mbstring.strict_detection = Off
; This directive specifies the regex pattern of content types for which mb_output_handler()
; is activated.
; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml)
;mbstring.http_output_conv_mimetype=
<mbstring.iniの中身>
; Enable mbstring extension module
extension=mbstring.so