xampp1.8.3のPHPを5.5.15を7.1.6にバージョンアップする

Filed under: php,xampp — kdcs @ 2019年3月9日 土曜日

ロリポップサーバがPHP7.1に対応(2017年2月9日)しているのでテスト環境にもPHP7を導入
最新のxamppもPHP7になっているがデータベースがmariaDBなので旧xampp(mySQL)のPHPを
バージョンアップする(5.5.15から7.1.6)

PHP7.1.6はxampp7.1.6からコピー

PHP5.5からPHP5.6の時はPHPフォルダ内のphp_curl.dllをコピーして完了したが
PHP5.5からPHP7.1ではapache内のファイルも修正が必要になる

C:\xampp\apache\conf\extra\httpd-xampp.confのコピーを取っておく
httpd-xampp.confファイル内のphp5の記述をphp7に修正する

これでxamppを起動すると
「序数387がダイナミックライブラリSSLEAY32.dllから見つかりませんでした」
というエラーが出る

PHP7ではOpenSSL1.0.2以降のバージョンが必要らしく
C:\xampp\apache\bin\内のlibeay32.dllとssleay32.dllをOpenssl1.0.2用にしなければならない

xampp7.1.6はそもそもPHP7なので上記の2ファイルをxampp1.8.3内コピーしてみたが
apacheが起動しなくなってしまった

ネット上の情報を頼りにOpensslダウンロードサイトから1.0.2を取得し
フォルダ内からlibeay32.dllとssleay32.dllをxampp1.8.3のapache\bifフォルダ内にコピーした。

これでxamppを起動するとエラー無く使える

【追記 2019.3.18】
windows10では上記の方法でxamppが起動したがwindows7ではxampp1.8.3でphp7.1は起動時に
「libssh2.dllがない」というエラーが発生する

暫定措置(この方法でよいのか不明)として、phpフォルダ(中見はphp7.1)
php/ext/php_curl.dllをひとつ上の階層へ移動する
php/php_curl.dll

これで起動時のエラーはなくなる(windows7にて)

xampp1.8.3のPHPを5.5.15を5.6.21にバージョンアップする

Filed under: php,xampp — kdcs @ 2019年3月5日 火曜日

ロリポップのサーバーで利用できるPHPが最近では7系と5.6になっているので
ローカル環境も合わせる必要があるがxamppはデータベスがmariaDBに変更されている

mysqlのままの環境でテストを行うためxampp1.8.3のPHPを5.5.15から5.6.21に
バージョンアップさせる

ダウンロードサイトからxampp5.6.21-zipを入手し解凍

xampp1.8.3のphpフォルダをphp5.5にリネームしておく
解凍したxampp5.6.21からphpフォルダをxampp1.8.3にコピーする

php5.5にリネームしたフォルダ内から\xampp\php\ext\php_curl.dllをコピーする

以上で完了

WordPress 購読者をログインさせる簡易会員制サイト

Filed under: functions.php,wordpress — kdcs @ 2019年2月9日 土曜日

WordPressの会員制プラグイン「theme my login」は最新版で有料化されたので、簡易的な会員制(新規会員登録や会員の振り分けなど必要ない)にするだけの場合はプラグインを使わずにfunction.phpに実装する方法。

会員向けのページは全てテンプレートに以下を記述

<?php if (!is_user_logged_in()){auth_redirect();} ?>

この記述により、サイトへアクセスするとログインフォームへリダイレクトされる

function.php

//ゲストログイン--------------------------------------------------------------------------
add_action( 'auth_redirect', 'guest_go_to_home' );
function guest_go_to_home( $user_id ) {
	$user = get_userdata( $user_id );
	if ( !$user->has_cap( 'edit_posts' ) ) {
		wp_redirect( get_home_url() );
		exit();
	}
}

フィードの配信を停止させる。(フィード内に記事の内容が書き出されるため)
function.php

//フィード(rssやAtom)の配信を止める ----------------------------------------------------
remove_action( 'do_feed_rdf', 'do_feed_rdf');
remove_action( 'do_feed_rss',  'do_feed_rss' );
remove_action( 'do_feed_rss2', 'do_feed_rss2' );
remove_action( 'do_feed_atom', 'do_feed_atom' );

サーバーにzipファイルをアップロードして解凍する方法

Filed under: php,wordpress — kdcs @ 2019年2月2日 土曜日

ロリップサーバーへzipファイルから解凍したWordPressのファイルをアップロードすると
途中で通信が切断されることがある。

何度も再アップロードしなければならないのでWordPressのzipファイルをそのままアップロードして
ロリポップサーバー内で解凍する。

unzip.phpを作成しwordpressのzipファイルと同じディレクトリにアップロードする

<?php
$zipfilename = 'wp499.zip'; // 展開するzipファイルを指定。
$zip_file = getcwd().'/'.$zipfilename;
 
if(!is_file($zip_file)) exit("No zipped file: $zip_file on your server!");
 
function unzip($zip_file){
 return shell_exec("unzip $zip_file");
}
 
if($zip = unzip($zip_file)){
 echo '<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>ZIP解凍</title></head><body>';
 echo "Zip解凍<br />\n";
 echo "対象ファイル:$zipfilename<br />\n";
 echo '<div style="overflow:auto; height:400px; border: #999 1px solid; margin:15px;">';
 echo "<pre>$zip</pre></div>\n";
 echo "$zipfilename: は正常に解凍されました。<br />\n";
 echo '</body></html>';
} else{
 echo("Failed to extract: $zip_file\n");
}
?>

ブラウザからhttp://hogehoge.com/unzip.phpへアクセスすると解凍される
WordPressの場合はzipファイル名にかかわらず、wordpressというファイルが作成される

別のWordPressからfeedを取得して新着記事にNEW!マークを付ける

Filed under: php,wordpress — kdcs @ 2018年9月9日 日曜日

別サイト(ブログなど)WordPressからfeedを取得して新着記事にNEW!マークを付ける
※feedから更新日時・タイトル・カテゴリーを取得する
※一週間(7日)ほどNEW!マークをタイトル前に表示させる

<?php /*--------------ブログフィード取得ここから----------------------*/ ?>
<div id="blogFeed">
<div id="feedBox" class="clearfix">
<h2>◇新着情報◇</h2>
<?php
$rss = simplexml_load_file('http://hogehoge.com/?feed=rss2');
echo '<dl>';
foreach($rss->channel->item as $item){
    $title = $item->title;
    $date = date("Y年 m月 d日", strtotime($item->pubDate));
    $link = $item->link;
    $categorys = $item->category;
    $description = mb_strimwidth (strip_tags($item->description), 0 , 110, "…Read More", "utf-8");
?>
<dt><span class="date pc_block"><?php echo $date; ?></span></dt>
<dd><a href="<?php echo $link; ?>"><span class="date sp_block"><?php echo $date; ?>-<?php echo $categorys; ?></span>
<?php 
if ($date >= date('Y年 m月 d日', strtotime( '- 7 day' ) ) ) { echo '<span class="newmark">NEW!</span>'; }
 ?>
<span class="title">&nbsp;<?php echo $title; ?></span><span class="category">【<?php echo $categorys; ?>】</span></a></dd>
<?php }  echo '</dl>'; ?>
</div><!--/feedBox-->
</div><!--/blogFeed-->
<?php /*--------------ブログフィード取得ここまで----------------------*/ ?>

サイト内検索

カテゴリー

最近の投稿

↑上に戻る