Home > PHP

PHP Archive

.html内でPHPを動かしたいのに画面が真っ白【PHP】【.htaccess】

.htaccessに下記のように記述して、.html内でもPHPを動かせるようにする。

AddType application/x-httpd-php .php .htm .html

と思って設置すると、画面真っ白…。顔面も真っ白。。。
なんて言ってる場合ではなく、解決せねば。

全文を読む

【wordpress】wordpressの外にあるhtmlに、カテゴリーAの新着リストを表示したい

wordpressの外にあるhtmlに、カテゴリーAの新着リストを表示したい。
いくつか方法はあるようだが考える時間もあまりないので、
とりあえずささっとリストページを1枚作って、読み込むことにする。

まず、get postsを使ってリストをつくる。

page_a.php

<?php
/*
Template Name: page_a
*/
?>
<ul>
<?php
$postslist = get_posts('numberposts=10&order=DESC&orderby=post_date&category=1');
foreach ($postslist as $post) :
setup_postdata($post);
?>
<li><?php the_time('Y/m/d'); ?>&nbsp;<a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>

パラメータなど下記参照。
【Codex】テンプレートタグ/get posts

これをインクルードするなりなんなりする。

–2010.11.18追記ここから–

インクルードっていうか、そんなややこしいことせずに出来るやん。
やっぱり慌てちゃだめだね。

下記のような感じ。

anew.html (表示したいファイル)

<?php require('./wp/wp-blog-header.php'); ?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>test</title>
</head>
<body>
<h2>Category-a What's new</h2>
<ul>
<?php
$postslist = get_posts('numberposts=10&order=DESC&orderby=post_date&category=1');
foreach ($postslist as $post) :
setup_postdata($post);
?>
<li><?php the_time('Y/m/d'); ?>&nbsp;<a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
<p>right!!</p>
</body>
</html>

つまり、下記を先頭に記述して、あとは普通に呼び出せるよってこと。

<?php require('./wp/wp-blog-header.php'); ?>

上記の./wp/の箇所はディレクトリに合わせて記述する。
wp-blog-header.phpはwordpressの直下にいます。

今回はhtmlで表示しましたが、その際は.htaccessに下記を記述しておきます。

<Files index.html>
AddType application/x-httpd-php .html
</Files>

–追記ここまで–

そして、今さらなのだが…

foreach ($postslist as $post) :

の最後の ”:”
コロンだけど???
と、PHPを理解してない私は疑問に思い調べました。遅っ…。

if、for、foreach、while のような制御構造は次のような単純化されたフォーマットで書くことができるそうです。

下記、ビューファイル向けの代替のPHP構文 から引用します。

foreachを使った例は次の通りです:

<ul>
<?php foreach($todo as $item): ?>
<li><?=$item?></li>
<?php endforeach; ?>
</ul>

中括弧がいらないのを注意してください。
終わりの中括弧が代わりに endforeach に置きかわっています。

また、各制御構造は(最後のものを除き)、各文の末尾にセミコロン ( “;” ) を使う代わりに、コロン ( “:” ) を置くことを注意してください。これは重要です!

下記は、if/elseif/else を使ったもう一つの例です。コロンのところを注意してみてください:

<?php if ($username == 'sally'): ?>
   <h3>Sallyさん、こんにちは</h3>
<?php elseif ($username == 'joe'): ?>
   <h3>Joeさん、こんにちは</h3>
<?php else: ?>
   <h3>誰かさん、こんにちは</h3>
<?php endif; ?>

だそうです。
すっきりー。

【dogmap.jp】で下記のような方法も紹介されています。
Google Feed AJX API を使用して JavaScript で、最新記事を表示する方法
自前の JSONP 形式出力プログラムを設置して JavaScript で、最新記事を表示する方法

あー、勉強しなくっちゃ。

ヘッダに文字コード【PHP】

  • 2010-05-13 (木)
  • PHP

PHPヘッダ

<?php
header('Content-Type: text/html; charset=UTF-8');
PHP で出力のコードを書く
?>

その際、<!DOCTYPE~>の前に書かなければいけないことに注意
無効 <!DOCTYPE~><html><? header(‘Content~ ?>
有効 <? header(‘Content~ ?><!DOCTYPE~><html>~

さらに注意すること。
phpをUTF-8で書くときの保存はBOM抜き!!

【参考】
PHPの文字化け解消
UTF-8のページがIEで表示されない
PHPの文字周りの覚書
header(“Content-Type: text/html; charset=UTF-8″);でWarningになる理由と対処方…
【OKWave】htmlを含まないphpファイルにもHTMLヘッダー内にエンコード形式

PHPの最後の?>は省略したほうがいい?!

  • 2010-05-13 (木)
  • PHP

PHPについてちょっとお勉強です。

htmlにPHPをincludeさせる際のtips

今回includeされる側のファイルはphpのみで記述してある。

PHPのコードのみからなるファイルでは最後の?>を省略したほうがいいとのことです。
これは、ファイルの最後に余計な改行・空白等が含まれてしまうと表示や動作に影響してしまうためらしいです。

とはいえ、注意も必要なようです。
UnicodeでBOMをつけてしまうと、<?phpの前に文字が出力されてしまい、想定外のエラーが出てしまう可能性があるそうです。Unicode(UTF-8)で記述するときは、必ずBOM無しのエンコーディング(UTF-8N)を使用しましょう。

こういった問題への対策として、出力制御関数(ob_start()など)や、php.iniの設定でoutput_bufferingをOnにする(もしくはoutput_handlerを設定する)ことで、出力をバッファリングする方法があります。BOMによる問題も避けられる為、対策としてはリーズナブルですが、そもそも目的用途が違うことや、ゴミ(改行や空白)も残るので推奨されません。ただ、php.ini-recommendedではoutput_bufferingがOn(正確には4096バイトの値指定)になっています。recommendedを設定のベースにしている際には逆に「元々対策がされている」状態になってしまうので注意が必要です。

とのことです。 ほぉー…

【参考】
http://www.phppro.jp/phptips/archives/vol6/
http://itpro.nikkeibp.co.jp/article/COLUMN/20070307/264114/

ホーム > PHP

want

Return to page top