HTML,CSS,PHP,ワードプレスカスタマイズ 技術情報資料

php で 画面サイズを拾う

スポンサーリンク

php 画面サイズを拾う場面は結構あるわけですが、でも php はサーバーサイドで動くプログラム。

そのため画面サイズは受け取れません。

そこでどうするか。一般的には、 javascript を使います。

画面サイズを受け取る方法


<script type="text/javascript">
var windowWidth = $(window).width();
var windowSm = 767;
if (windowWidth <= windowSm) {
//横幅640px以下のとき(つまりスマホ時)に行う処理を書く
}
</script>


なのですが、どこで処理するか、場所によっては $(window) が文法エラーで落ちてしまいます。

正確な画面サイズを受け取ってどうするかにもよりますが、たぶん大方の目的は、スマホからのアクセスならば、php コマンドを実行しないとかそういったことだと思うんですね。

であれば、考え方を画面サイズという正確な値ではなく、メディアは何?という聞き方でも、目的は達成できるわけです。

<script>
var ua = navigator.userAgent;
var wintype=0;
if(ua.indexOf('iPhone') > 0 || ua.indexOf('iPod') > 0 || ua.indexOf('Android') > 0 && ua.indexOf('Mobile') > 0){
wintype=1;
}else if(ua.indexOf('iPad') > 0 ){ // || ua.indexOf('Android') > 0){
wintype=1;
}else{
wintype=0;
}
if (wintype==1) {
//横幅640px以下のとき(つまりスマホ時)に行う処理を書く
}
</script>



ですが、

document.getElementById("field").innerHTML = "";

で、HTML内に php を書いても実行されません。

つまり、php は、実行させてしまわなければいけない。


そこで、こういった逃げ方をしてみました。

携帯、iphone などの場合、サイドバーを表示させない


<!-- sidebar widget -->
<span id="sidebarwidjet">
<?php if ( is_active_sidebar( 'sidebar-1' ) ) :
dynamic_sidebar( 'sidebar-1' );
else: ?>
<?php
endif;
?>
</span>
<script>
var ua = navigator.userAgent;
var wintype=0;
if(ua.indexOf('iPhone') > 0 || ua.indexOf('iPod') > 0 || ua.indexOf('Android') > 0 && ua.indexOf('Mobile') > 0){
wintype=1;
}else if(ua.indexOf('iPad') > 0 ){ // || ua.indexOf('Android') > 0){
wintype=1;
}else{
wintype=0;
}
if (wintype==1) {
var src=document.getElementById("sidebarwidjet");
src.style.display='none';
}
</script>
<!--/sidebar widget -->


動かしておいて、表示させなければいいという考え方です。


php で 画面サイズを拾う方法のまとめ


Javascript であれば、画面サイズ、メディアを拾うことができ、あとは php を動かしておいて隠す。

php で何をさせるかによっても、隠すでは済まないケースもあるかと思います。

表示ならば、style.display で処理できますが、計算値を使うとなると結構厄介です。

javascript で 値を渡して php を起動し、計算結果を innerHTML で吐き出すなどの工夫が必要ですね。

JavaScript に eval のような php の実行関数のようなものがあれば楽なので、javascript のパターンを作っておくといいかもしれません。

javascriptからサーバーサイドのプログラムを起動して結果を受け取るのはさほど難しいことではありません。

スポンサーリンク

スポンサーリンク

よく使うタグ

・float クリア
<br clear="all"><div style="clear:both;" class="clearfix"></div>
・角丸め
round-radius
border-radius:5px; -webkit-border-radius:10px; -moz-border-radius:10px;
・div box
overflow:scroll;min-width:300px;max-width:300px;min-height:300px;max-height:300px;
・TEXTAREAリサイズ
resize: vertical;
・サイトURL
home_url() // http://…
if(site_url()==home_url){
$shorturl_yuzu_path = substr(ABSPATH,0,strpos( ABSPATH, substr(site_url(),strlen(home_url()) ) ) ).’/’;
}else{
$shorturl_yuzu_path = ABSPATH.’/’;
}
// /var/…
・WP HOME URL
site_url() // http://…/wp
ABSPATH // /var/…/wp
・プラグイン(自分のDIR追加必要)
plugins_url() // http://…/plugins
WP_PLUGIN_URL // http://…/plugins
WP_PLUGIN_DIR // /var/…/plugins
・使用中のテーマ
get_template_directory_uri() // http://…/theme/xx
get_template_directory() // /var/…/theme/xx
・wp-content
content_url() // http://…/wp-content
WP_CONTENT_DIR // /var/…/wp-content
・画像URLからDIR変換
$pctdir=str_replace(content_url(), WP_CONTENT_DIR,$pcturl);
・パス名分解
$pathData = pathinfo($file);
echo $pathData["dirname"]; // /var/~
echo $pathData["filename"]; // xxx
echo $pathData["extension"]; // txt
echo $pathData["basename"]; // xxx.txt
・画像サイズ
list($width,$height) = getimagesize($url);
if(has_post_thumbnail()){
$thumbnail_id = get_post_thumbnail_id();
$thumbnail_img = wp_get_attachment_image_src( $thumbnail_id , ‘full’ );
$src = $image[0]; //url
$width = $image[1]; //横幅
$height = $image[2]; //高さ
・画像サイズ比率
list($src_w,$src_h) = getimagesize($file);
$dst_w = 600;$dst_h = 0;
$dst_h = ($dst_w!=0)?(intval(($src_h*$dst_w)/$src_w )):(($dst_h!=0)?(intval(($src_w*$dst_h)/$src_h)):0);
・疑似要素順
link visited hover active


特殊文字
シングルクォート : &#39;
ダブルクォート : &quot;
WP設定内表示前処理(htmlタグ許可項目)
$str = str_replace(‘<','&lt;' ,$str);
$str = str_replace(‘>’,’&gt;’ ,$str);
$str = str_replace(‘\”‘,’&quot;’,$str);
$str = str_replace(“\'”,’&#39;’ ,$str);
WO設定項目表示前処理(htmlタグ許可項目)
$str = str_replace(‘\”‘,'”‘,$str);
$str = str_replace(“\'”,”‘”,$str);
・テーマ
get_theme_root_uri()
get_theme_root()
・WP 情報
get_bloginfo( $show )
・Wp config FTP 情報 設置
define( ‘FTP_HOST’, ‘host’ );
define( ‘FTP_USER’, ‘id’ );
define( ‘FTP_PASS’, ‘pw’ );
define( ‘FTP_SSL’, false );
弾に使う
placeholder:ユーザー入力補助

カテゴリー

flexbox インストールなど面倒なことなしにDIV BOX を横に並べるクラス

flexbox インストールなど面倒なことなしにDIV BOX を横に並べるクラス flexbox は、div の box を横に並べるためのブラウザに標準装備されてるクラス。乱暴な言い方すればそういうことです。現場では細かいことはどうでもよくて、とにかく簡単に DIV BOX を横

vba タスクに IE が残る

vba タスクに IE が残る vba タスクに IE が残る。VBAでブラウザ経由でサイトのページの情報を拾い上げる技は結構使いますよね?私だけ?wwwそうすると、なぜかvba タスクに IE が残っていて、繰り返し利用するとどん

wp datepicker 特定の項目で動かない。

wp datepicker 特定の項目で動かない。 ワードプレスでつかえる datepicker は、とっても簡単につかえて便利なライブラリーです。javascript は、なれないとデバッグに時間がかかり気持ち的にすごく敷居が高い気がしますがわかって

プラグインの管理画面でHTMLの入力を許すフィールドの扱い方

プラグインの管理画面でHTMLの入力を許すフィールドの扱い方 ワードプレスのプラグインを書いていると、HTMLタグを入力できるフィールドを作りたくなりますよね?例えば、ページにデータを表示するときにその書式を入力さえるとか。例えば、これはワードプレスのプラグイン

ワードプレスのフッターにある jQueryの読み込みをヘッダーで出力させる

ワードプレスのフッターにある jQueryの読み込みをヘッダーで出力させる ワードプレスのフッターにあるjQueryの読み込みをヘッダーで出力させる必要ができました。simplecity の後継ともいわれる ワードプレスのテーマ cocoon のカスタマイズです。cocoon

ワードプレスで jQuery の後に script を読み込ませる方法(動的スクリプトもOK)

ワードプレスで jQuery の後に script を読み込ませる方法(動的スクリプトもOK) ワードプレスで jQuery の後に script を読み込ませる方法、これは動的スクリプトも可能な方法です。ワードプレスのプラグインで動くシステムを開発していたところ、ユーザーインターフェイスでどう