PHPだと
$keyword = preg_replace("/(\<.*?\>|\(.*?\))/", "\"$1\"", $keyword, -1, $count); if($count == 0) { $keyword = preg_replace("/(\<|\>|\(|\)|\+|\-|\*|\~)/", "\\$1", $keyword); }
こんな感じでしょうか?
PHPだと
$keyword = preg_replace("/(\<.*?\>|\(.*?\))/", "\"$1\"", $keyword, -1, $count); if($count == 0) { $keyword = preg_replace("/(\<|\>|\(|\)|\+|\-|\*|\~)/", "\\$1", $keyword); }
こんな感じでしょうか?
特に問題無くPHP等が動いていて、エラーの原因がサッパリ
連携エラーの原因はプラグインがWarningエラーを吐いていて、ヘッダー情報を二度出力したのが原因。
.htaccessに下記を記述するか
php_flag display_errors "Off"
wp-config.phpに下記を書く
ini_set("display_errors", "Off");
デバッグのやり方は、wp-config.phpで下記をtureにしてワードプレスをデバッグモードにする。
define('WP_DEBUG', true);
さらに下記を記述して、エラーログを記録しておく。
ini_set("log_errors", "On");
ini_set("error_log", "/ログを保存するディレクトリ/.php.error.txt");
Apacheのconfを気をつける
#LoadModule php5_module modules/libphp5.so
LoadModule php7_module modules/libphp7.so
PHPのconfigure
--with-mysql
が無くなったみたい。
Smartyがエラーを吐く
Warning: strpos(): Empty needle in Smarty/libs/sysplugins/smarty_internal_templatelexer.php on line 316
DIRECTORY_SEPARATOR
PATH_SEPARATOR
まず落としてくる
http://fuelphp.com/
ディレクトリに展開
/home/username/fuel
/home/username/public(public_htmlにrename)
/home/username/oil
コンポーザーアップデート
php composer.phar self-update
php composer.phar update <--ここで下記エラー
[RuntimeException]
The .git directory is missing from /home/username/fuel/vendor/composer/installers, see http://getcomposer.org/commit-deps for mo
re information
/fuel/vendorを削除した後、コンポーザー再インストール
rm -fr ./fuel/vendor && php composer.phar install -v
次はうまくいく。
php composer.phar self-update
php composer.phar update
require_once("HTTP/Request2.php");
$request = new HTTP_Request2("https://************", HTTP_Request2::METHOD_POST);
$request->setConfig(array(
"ssl_verify_peer" => true,
"ssl_cafile" => "./cacert.pem",
));
cacert.pemは下記からDL
http://curl.haxx.se/docs/caextract.html
http://pear.php.net/manual/ja/package.http.http-request2.config.php
Fuelphp emailパッケージ
PHPのwordwrap関数がマルチバイトに対応してないから
Fuelphpのemailパッケージがおかしなことになる・・
別途、関数組み込もうかな
http://jp1.php.net/manual/ja/function.wordwrap.php#98724
php composer.phar self-update
php composer.phar update
設定ファイルをコピーして
/fuel/core/lang/en/upload.php
↓
/fuel/app/lang/ja/upload.php
日本語へ書き換える。
こんな感じでいいのかな?
'ファイルアップロードは成功しています。',
'error_'.\Upload::UPLOAD_ERR_INI_SIZE => 'アップロードされたファイルは、php.ini の upload_max_filesize ディレクティブの値を超えています。',
'error_'.\Upload::UPLOAD_ERR_FORM_SIZE => 'アップロードされたファイルは、HTML フォームで指定された MAX_FILE_SIZE を超えています。',
'error_'.\Upload::UPLOAD_ERR_PARTIAL => 'アップロードされたファイルは一部のみしかアップロードされていません。',
'error_'.\Upload::UPLOAD_ERR_NO_FILE => 'ファイルはアップロードされませんでした。',
'error_'.\Upload::UPLOAD_ERR_NO_TMP_DIR => 'テンポラリフォルダがありません。',
'error_'.\Upload::UPLOAD_ERR_CANT_WRITE => 'ディスクへの書き込みに失敗しました。',
'error_'.\Upload::UPLOAD_ERR_EXTENSION => 'PHP の拡張モジュールがファイルのアップロードを中止しました。',
'error_'.\Upload::UPLOAD_ERR_MAX_SIZE => 'ファイルサイズが規定値を超えています。',
'error_'.\Upload::UPLOAD_ERR_EXT_BLACKLISTED => 'この拡張子は許可されていません。',
'error_'.\Upload::UPLOAD_ERR_EXT_NOT_WHITELISTED => 'この拡張子は許可されていません。',
'error_'.\Upload::UPLOAD_ERR_TYPE_BLACKLISTED => 'このファイルタイプは許可されていません。',
'error_'.\Upload::UPLOAD_ERR_TYPE_NOT_WHITELISTED => 'このファイルタイプは許可されていません。',
'error_'.\Upload::UPLOAD_ERR_MIME_BLACKLISTED => 'このMIMEは許可されていません。',
'error_'.\Upload::UPLOAD_ERR_MIME_NOT_WHITELISTED => 'このMIMEは許可されていません。',
'error_'.\Upload::UPLOAD_ERR_MAX_FILENAME_LENGTH => 'ファイル名が最大値を超えています。',
'error_'.\Upload::UPLOAD_ERR_MOVE_FAILED => 'ファイルの移動に失敗しました。',
'error_'.\Upload::UPLOAD_ERR_DUPLICATE_FILE => '同名のファイルが既に存在しています。',
'error_'.\Upload::UPLOAD_ERR_MKDIR_FAILED => 'ディレクトリの作成に失敗しました。',
);
アップロードする際の設定で、フォルダを777、ファイルを666のパーミションに設定しても
フォルダが755、ファイルが644になってしまう。
'path_chmod' => 0777,
'file_chmod' => 0666,
umask(0);と設定しておけば777、666になってくれる。
umask(0);
$config = array(
'path' => DOCROOT . "data",
'randomize' => true,
'ext_whitelist' => array('jpg', 'jpeg', 'gif', 'png'),
'auto_rename' => false,
'overwrite' => true,
'path_chmod' => 0777,
'file_chmod' => 0666,
);Upload::process($config);