|
|
2007年02月17日
2006年12月23日
WEB上でPHPの正規表現による文字列取得
ここから実行
※ テキストエリアに改行無しでURLを記述すると、そこから文字列を取得
<?
require_once( "./mwin.php" );
mb_language( "ja" );
mb_internal_encoding("EUC-JP");
foreach( $_POST as $Key => $Value ) {
$_POST[$Key] = str_replace("\\\\", "\\", $Value );
$_POST[$Key] = str_replace("\\'", "'", $_POST[$Key] );
$_POST[$Key] = str_replace("\\\"", "\"", $_POST[$Key] );
}
$_GET = $_POST;
?>
<HTML>
<HEAD>
<META http-equiv="Content-type" content="text/html; charset=euc-jp">
<TITLE>PHP 雛形</TITLE>
<LINK rel="stylesheet" type="text/css" href="style.css">
<STYLE type="text/css">
</STYLE>
</HEAD>
<BODY id="body" style='background-color:white'>
<?
if ( trim( $_GET['text'] ) == '' ) {
print "対象データを入力して下さい";
exit();
}
if ( trim( $_GET['pattern'] ) == '' ) {
print "パターンを入力して下さい";
exit();
}
if ( substr( $_GET['text'], 0, 4 ) == 'http' ) {
$ret = @file_get_contents( $_GET['text'] );
if ( $ret !== FALSE ) {
$enc = mb_detect_encoding($ret, "SJIS,UTF-8,EUC-JP");
if ( $enc == 'SJIS' || $enc == 'UTF-8' ) {
$ret = mb_convert_encoding ( $ret, "EUC-JP", $enc );
}
$_GET['text'] = $ret;
}
}
mb_ereg_search_init( $_GET['text'], $_GET['pattern'], "i" );
while( TRUE === mb_ereg_search() ) {
$work = mb_ereg_search_getregs();
$ncnt = 0;
foreach( $work as $Key => $Value ) {
$Value = mb_ereg_replace( "&", "&", $Value );
$Value = mb_ereg_replace( "<", "<", $Value );
$matches[$ncnt][] = mb_ereg_replace( ">", ">", $Value );
$ncnt++;
}
}
print "<pre>";
print "<span style='color:blue'>[0] は、マッチした全体の文字列を指す</span>\n";
print "<span style='color:blue'>それ以外は () によってマッチした部分文字列</span>\n";
print_r($matches);
print "</pre>";
?>
</BODY>
</HTML>
2006年12月22日
XMLファイルの書き換え(PHP5:DOMFunctions)
より、オブジェクト処理として完成されてますね
<?
mb_language( "ja" );
mb_internal_encoding("UTF-8");
# DOM Object 作成
$dom = DOMDocument::load("index.xml");
# 既存のノード( channel ) を取得
$nodeList = $dom->getElementsByTagName("channel");
# 新規ノードを作成( createElement でも良い )
$node = $dom->createElement("item");
# **********************************************************
# title ノードを作成
# **********************************************************
$nodeChild = $dom->createElement("title");
# テキストノードを作成して title ノードに追加
$utf8 = mb_convert_encoding ( "これは", "UTF-8", "SJIS" );
$nodeChild->appendChild( $dom->createTextNode( $utf8 ) );
# item ノードに titile ノードを追加
$node->appendChild( $nodeChild );
# **********************************************************
# link ノードを作成
# テキストノード同時作成の createElement を使用
# **********************************************************
$utf8 = mb_convert_encoding ( "UTF-8 ですが", "UTF-8", "SJIS" );
# テキストノード同時作成する link ノードの作成
$nodeChild = $dom->createElement("link", $utf8 );
$node->appendChild( $nodeChild );
# **********************************************************
# description ノードを作成
# **********************************************************
$utf8 = mb_convert_encoding ( "SHIFT_JISを", "UTF-8", "SJIS" );
$nodeChild = $dom->createElement("description", $utf8 );
$node->appendChild( $nodeChild );
# **********************************************************
# dc:subject ノードを作成
# **********************************************************
$utf8 = mb_convert_encoding ( "自力で", "UTF-8", "SJIS" );
$nodeChild = $dom->createElement("dc:subject", $utf8 );
$node->appendChild( $nodeChild );
# **********************************************************
# dc:date ノードを作成
# **********************************************************
$utf8 = mb_convert_encoding ( "変換しています", "UTF-8", "SJIS" );
$nodeChild = $dom->createElement("dc:date", $utf8 );
$node->appendChild( $nodeChild );
# channel ノードは、一つしか無いので、nodeList(0) で参照
# channel ノードの下に item ノードを追加
$targetNode = $nodeList->item( 0 );
$targetNode->appendChild( $node );
# 保存
$dom->save( "data.xml" );
#<channel>
# <item>
# <title>aaaaa</title>
# <link>bbbbb</link>
# <description>ccccc</description>
# <dc:subject>ddddd</dc:subject>
# <dc:date>eeeee</dc:date>
# </item>
# <---- ここに追加
#</channel>
?>
Done
2006年12月02日
リコンパイルPHPマニュアル
現在は文字化けしなくなっています。 PHP の chm マニュアルが文字化けしなくなっています(現在2014/4/11ビルド)が、トップページは出ません▼▼▼▼ 古い記事です ↓リコンパイルしたものオリジナル chm ↓は、日本語が化けてるので http://www.php.net/download-docs.php 自分でしたい場合は、オリジナルをまず、ダウンロード後、cmd.exe からダウンロードファイルをカレントにしてhh -decompile . php_manual_ja.chm を実行して下さい( php_manual_ja.hhc と php_manual_ja.hhk が作成されます ) Microsoft HTML Help Downloadsより、HTML Help Workshop をダウンロードしてインストール( Htmlhelp.exe で、コンパイラと英文マニュアル、Htmlhelpj.exe で日本語マニュアルのみ ) php_manual_ja.hhc と php_manual_ja.hhk より php.hhp ( プロジェクト )を作成し、いろいろオプションを付けてコンパイル。 とりあえず、php.hhp をリネームして内容を変更してオリジナルの chm を作ってみると良いでしょう。 ( プロジェクトバーの FD アイコンで保存して、ファイルメニューから Compile )
![]()
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。 Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。 また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。 ※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです 対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。※ エキスパートモードで表示しています アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります
<% if:page_name eq 'archive' -%> アーカイブページでのみ表示される内容 <% /if %> <% if:page_name eq 'category' -%> カテゴリページでのみ表示される内容 <% /if %> <% if:page_name eq 'tag' -%> タグページでのみ表示される内容 <% /if %>この記述は、以下の場所で使用します![]()
|
|












※ エキスパートモードで表示しています
アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります


















