2013-12-06

WordPressのメール投稿プラグインを使用しているサイトで
本文中の円マークをstr_replaceで取り除こうとしたところ、うまくいきませんでした。

<試したPHPのコード>
$str = str_replace(‘¥¥’, ”, $str);

これはUnicodeでの¥マークがWindowsとMacで異なっているのが原因のようです。
Windowsは¥マークとバックスラッシュが同じコードであるのに対し、
Macはそれぞれ別のコードになっています。

(さらに…)

2013-11-22

$_SERVER[“REQUEST_URI”]を使用して、現在のURLを取得することはよくあるのですが、
現在のURLのディレクトリで、以下のファイルはどんなときでもいい場合、
というのがわからなくて調べたところ簡単な関数がありました。

dirname($_SERVER[“REQUEST_URI”])

これで取得できます。

ちなみに実際に行った処理は、スマホ・PC切り替えにて、
スマホは複数ページ、PCはindexのみが存在しているような場合に、
スマホページの「PCサイトを見る」ですべてindexをリンク先にしました。

2013-10-02

IR情報など、PDFファイルの一覧をずらずら表示するような場合に、
ファイルサイズを表示させることが多いと思います。
PHPを使えばそのあたりも自動化できてしまうので簡単です!

<?php
echo DownloadSize('./pdf/xxxxx.pdf');

function DownloadSize($file) {
$size = filesize($file);
$sizes = array('バイト', 'KB', 'MB', 'GB');
$ext = $sizes[0];
for ($i=1; (($i < count($sizes)) && ($size >= 1024)); $i++) {
$size = $size / 1024;
$ext = $sizes[$i];
}
return round($size, 2).$ext;
}
?>


参考サイト
http://cror.net/blog/109/

2013-09-11

Google
以前にも住所から緯度経度を出してGoogle Mapを表示させるというのはやっていたのですが、
Javascriptのみでやっていたので、PHPを使って実現する方法です。
といっても、Google Map APIを使うことに変わりはありません。

(さらに…)

2013-07-02

Pleskから登録したCRONでPHPを動かそうとしたところ、正常に動きませんでした。
ログを見てもCRONは実行されていて、特にエラーはなく、
またSSHからコマンドを実行しても何もエラーが出ない状況。。

とりあえずCRON実行結果をメールにて飛ばすようにしたところ、
なんと「/usr/bin/php: No such file or directory」
というエラーがでていました。
調べてみたところ、英語ながら参考になりそうなサイトを発見!!

(さらに…)

2013-06-13

ググっても結構出てこなかったのでメモです。
旧アイル(現在はGMOクラウド)のサーバー(ApacheではなくIIS)で、
HTML拡張子のファイルでPHPを実行させる手順です。

(さらに…)

2013-04-30

以前に定時にFTPでファイルをアップロードするためのバッチスクリプトを
作成していたのですが、ネットワーク環境が変わったら、ファイルが正しくアップされなくなりました。
具体的には、ファイルはアップされているのに、ファイルサイズが0になっています。
ログを見ると「425 Failed to establish connection.」のエラーが。

普通にFTPソフトでPASVでアップしたところ問題なくアップできたので、
どうやらルータの変更によって、影響を受けているようです。
(さらに…)

2013-01-17

XMLファイルを読み込んで内容を表示するというシンプルなページを作っていたのですが、
XMLファイルの内容にURLの情報があり、そこに&(アンパサンド)があると
parser error : EntityRef: expecting ‘;’ といったエラーが発生してしまいました。

PHP側ではsimplexml_load_fileを使用しているし、
XMLファイルは自分以外の人が編集しているので、&amp;に変えてもらうわけにもいかずで、
何か回避策がないか調べてみました。

どうやら、file_get_contents関数でXMLファイルの内容を読み込んで、
preg_replaceを使って変換、そしてsimplexml_load_stringで値を取得という
流れにすればうまくいくようです。

$xmlfile = file_get_contents("test.xml");
$temp_xml = preg_replace('/&(?=[a-z_0-9]+=)/m','&amp;',$xmlfile);
$xml = simplexml_load_string($temp_xml);


参考サイト
http://watanabeyu.blogspot.jp/2012/12/xmlentityref.html

2012-12-21

ある簡易システムにてCSVファイルをアップロードする仕組みを作っていたのですが、
Macからアップロードをかけたところ、うまく動かないことが判明。

fgets関数はLFを改行と認識して、Macの改行コードであるCRは
改行とは認識してくれないようです。

対応としては、PHPの設定を変えることでいけるようです。
php.iniを変えるか、.htaccessを入れるか、PHPのソースに直接記述するか、のいずれか。
私の場合は、PHPに以下を入れることで解決しました。

ini_set(‘auto_detect_line_endings’, 1);


参考サイト
http://blog.livedoor.jp/haruchaco/archives/1278445.html

2012-06-25

PHPでHTMLファイルの書き出しなどを行う場合に、
HTMLソースを1行1行変数に入れていくのはかなり面倒なので、
まとめて入れるやり方ないかな?と思ったらありました。

$string =<< あいうえお
かきくけこ
さしすせそ
EOF;


これで$stringにすべての文字列が入ります。


参考サイト
http://www.nandani.sakura.ne.jp/web_all/php/471/