GuitarOshou の回答履歴
- [PHP]csvファイルを生成するときのマックの改行対応の方法について
[PHP]csvファイルを生成するときのマックの改行対応の方法について 現在、phpでcsvファイルを出力しているのですが、Windowsだと旨く改行が反映されるのですが、Macだと旨く行きません。。。 改行は「\n」を使っていましたが、マックの改行コードが「\r」との事なので、「\n\r」としたのですが、旨く反映されないようです。。。 途中は省きますが $csvData .= "A列" . "," . "B列" . "\n\r"; $csvData .= "a" . "," . "b" . "\n\r"; $csvData .= "c" . "," . "d" . "\n\r"; として、マックでオープンオフィスを使用して開くと、 A列,B列a,bc,d と1行で出て来てしまします。 よろしくお願いします。
- 「テキストテキスト」という文字を「テキストテキ・・・」としたい場合、
「テキストテキスト」という文字を「テキストテキ・・・」としたい場合、 mb_substr関数を使うと思います。 しかし、納品するサーバでmb関数が使えず困ってしまいました。 当然substr関数では最後で文字化けしてしまいますが、 何とかmb関数系を使わずにクリアすることはできないでしょうか? 納品先はちょっとでかめの会社で、外部公開されていないサーバで、しかもWindows。。 もちろんmb関数を使えるようにお客に頼むのが一番簡単なのは分かっていますが、 先方担当含め調整が面倒なので、プログラムで対応できないか模索しています。 substrを使わないトリッキーな手法はないですかね? バイト数取得をして無理やり文字化けしないようにするなど・・ $volm = strlen(bin2hex($data)) / 2; (参考:http://zombiebook.seesaa.net/article/33192046.html) お知恵をお貸しください。
- PHP開発「バナーをランダムに表示させる」
PHP開発「バナーをランダムに表示させる」 (1)random.php <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>バナーをランダムに表示</title> </head> <body> <?php require_once("follow.php") ?> </body> </html> (2)random.ini [info] count=4 width=221 height=46 [data] url1=http://px.xframework.net/ image1=banner01.jpg alt1=セミナー情報 weight1=50 url2=http://px.xframework.net/ image2=banner02.jpg alt2=セミナー情報-禁止 weight2=20 url3=http://px.xframework.net/ image3=banner03.jpg alt3=開発事例 weight3=15 url4=http://px.xframework.net/ image4=banner04.jpg alt4=開発事例-禁止 weight4=15 (3)follow.php <?php mt_srand((double)microtime()*100000); $random = mt_rand(1,100); $count = 0; $arrayini = parse_ini_file("random.ini",TRUE); for($i =1; $i<=$arrayini['info']['count']; $i++) { if($random > $count && $random <= $count+$arrayini['data']['weight'.$i]) { echo("<a href='".$arrayini['data']['url'.$i]."'> <img border='0' src='".$arrayini['data']['image'.$i]."' width='".$arrayini['info']['width']."' height='".$arrayini['info']['height']."' alt='".$arrayini['data']['alt'.$i]."' /> </a>"); } $count+=$arrayini['data']['weight'.$i]; } ?> 実行すると 「Warning: Error parsing random.ini on line 9 in C:\Apache Software Foundation\Apache2.2\htdocs\test.php\follow.php on line 9」 エラーが表示されます。 原因は何なのでしょうか? Windows Vistaです。
- ベストアンサー
- PHP
- judgementskill
- 回答数1
- IIS5.1です。PHPをブラウザで開くと文字コードがSJISになる。
IIS5.1です。PHPをブラウザで開くと文字コードがSJISになる。 WindowsXPのIISをWEBサーバとして利用しております。 http://localhost/test.phpを開いた際、必ず文字コードがSJISとなります。 そのページのメタタグには間違いなくキャラクタセットをEUCにする指定がされています。 そこでブラウザの機能で、エンコードをEUCに変更すると正常に表示されますが、 ページ移動するとまたSJISとなり、同じくエンコードを変更しなければなりません。 IISの設定かとは思うのですが、解決方法が見つかりません。 お教えいただけると助かります。よろしくお願いいたします。
- ベストアンサー
- PHP
- dragstarsp
- 回答数2
- MySQLからPHPでデータを抽出し、重複データをまとめつつ、別のカラ
MySQLからPHPでデータを抽出し、重複データをまとめつつ、別のカラムを件数カウント表示し、さらに別のページへリンクしてデータを移動・表示したいです。 いつも利用させていただており、参考にさせていただいております。 さて、40の手習いということで、今更ながらPHPとMySQLを使ってwebページの構築なぞ始めて1週間になります。 そこで、かなり手詰まってしまって、思い切って質問をさせていただきました。 まずは、私の開発環境ですが ・PHP Version 5.2.11 ・MySQL (5.0) そこでやりたいことです。 TABLE `clinic` ID,name,erea,chiiki,genre,tel 1,A店,新宿区,歌舞伎町,歯科医院,03-1234-5678 2,B店,新宿区,歌舞伎町,内科,03-1111-2222 3,C店,新宿区,歌舞伎町,内科,03-3333-4444 4,D店,新宿区,大久保,歯科医院,03-5555-6666 5,E店,新宿区,落合,歯科医院,03-7777-8888 5,F店,港区,赤坂,歯科医院,03-9876-5432 ・ ・ ・ 上記のようなデータがDBに格納されており index.htmlより ■<a href="index.php?val=shin">新宿区</a> 歌舞伎町/大久保/落合 ■<a href="index.php?val=minato">港区</a> 六本木/新橋/赤坂/西麻布/その他 このようなリンクから新宿区をクリックすると index.phpにて <新宿区の診療内容別一覧> ---------------------------- ■歌舞伎町 └<a href="index.php?val=???">内科</a>(2)//この数字は件数です └歯科医院(1) ■大久保 └歯科医院(1) ■落合 └歯科医院(1) のように表示し、さらに例えば内科をクリックすると result.phpにて B店 └03-1111-2222 C店 └03-3333-4444 と表示したいのです。 index.phpで、 $url = "localhost"; $user = "clinic"; $pass = "admin"; $db = "clinic"; // MySQLへ接続する $link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。"); // データベースを選択する $sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。"); if($_GET['val'] == 'shin'){$erea = "新宿区";} if($_GET['val'] == 'minato'){$erea = "港区";} if($erea !== '') { $erea_sql = 'EREA LIKE '."'%".$erea."%'"; } else { $tempHtml = "エリア選択が不正です"; } $sql = " SELECT * FROM `clinic` WHERE {$erea_sql} "; $result = mysql_query( $sql ); //結果セットの行数を取得する $rows = mysql_num_rows($result); //表示するデータを作成 if($rows){ while($row = mysql_fetch_array($result)) { ここが全く想像すらつきません・・・(汗) } }else{ $tempHtml = "データがありません"; } //結果保持用メモリを開放する mysql_free_result($result); // MySQLへの接続を閉じる mysql_close($link) or die("MySQL切断に失敗しました。"); データの総数は、東京都内のみで1000件程度あります。 ここから先へ進むには、どこを勉強すれば良いのかすら浮かばず 非常に困っております。 ヒントでも、このページを見ろ!でも結構ですので、 何卒ご教授のほど、よろしくお願い致します。
- <input type="hidden" name="action"
<input type="hidden" name="action" <input type="hidden" name="action" value="sendmail"> <table cellspacing="1" cellpadding="5" width="580" bgcolor="black" align="center"> <tr> <td bgcolor="#efffff" width="110"><font color=black>氏名</font></td> <td bgcolor="#ffffff"><input type="text" name="name" size="30" value="" maxlength="70"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black size="2">メールアドレス</font></td> <td bgcolor="#ffffff"><input type="text" name="mail" size="50" value="" maxlength="80"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black>地域</font></td> <td bgcolor="#ffffff"><input type="text" name="address" size="50" value="" maxlength="70"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black>御問合せ内容</font></td> <td bgcolor="#ffffff"><textarea name="comment" rows="5" cols="48"></textarea></td> </tr> </table> <center> <input type="submit" name="sub" value="クリック"> </center> </form> <h2>当サイトへの御要望</h2> <p>■各項目を御記入頂き、下のボタンをクリックして下さい。</p> <form action="form.php" method="post"> <input type="hidden" name="action" value="sendmail"> <table cellspacing="1" cellpadding="5" width="580" bgcolor="black" align="center"> <tr> <td bgcolor="#efffff" width="110"><font color=black>氏名</font></td> <td bgcolor="#ffffff"><input type="text" name="name" size="30" value="" maxlength="70"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black>メールアドレス</font></td> <td bgcolor="#ffffff"><input type="text" name="mail" size="50" value="" maxlength="80"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black>御要望</font></td> <td bgcolor="#ffffff"><textarea name="comment" rows="5" cols="48"></textarea></td> </tr> </table> <center> <input type="submit" name="sub" value="クリック"> </center> </form> (1)これらを含めたサイトを「HTML4,01」(文字コード「shift_jis」)で作成していました。 (2)このフォームタグをそのまま「XHTML1,0」で作成したサイト(文字コード「UTF-8」)に埋め込むには、書き直す箇所がありますでしょうか? PHPファイルも(1)で使用していたモノをそのまま(2)に使用したいと思っているのですが、文字化けがなおりません。 PHPに関しても、記述しなおす箇所があるのでしょうか? 詳しい方、お助け下さい。 宜しくお願いします。 PHPファイルは、(1)の時は正常に動作していました。
- PHPで、オブジェクトが格納された配列を使う方法を教えて下さい。
PHPで、オブジェクトが格納された配列を使う方法を教えて下さい。 PHP初学者です。 以下のようなプログラムを作成したいのです。 1.XML文書の内容を取得 2.XMLの要素<data>をTestDataオブジェクトに格納 3.TestDataオブジェクトの集合を持つTestDataListオブジェクトに、2で作成したTestDataオブジェクトを格納 4.XML文書に存在する<data>要素がなくなるまで2~3を繰り返す 5.全ての<data>要素を格納したら、今度はTestDataListオブジェクトから全てのTestDataオブジェクトを取得して、その中身を画面に表示 ※<data>要素は子要素<name>を持つ 作ってみたのですが、TestDataオブジェクトの格納に失敗しているのか、TestDataListからのTestData取得に失敗しているのか、画面に何も表示されません。 プログラムは以下の通りです。 ・<data>要素の中身を格納するためのクラス <?php class TestData { private $_name; public function setName($name) { $this -> _name = $name; } public function getName() { return $this -> _name; } } ・TestDataオブジェクトの集合を持つクラス <?php class TestDataList { private $_list; private $_size; public function __construct() { $_size = 0; } public function addData($data) { if(isset($_list)) { $_list[$_size++] = $data; return; } $_list = array($data); $_size++; } public function getData($index) { return $_list[$index]; } public function size() { return count($_list); } } ・画面に表示するPHPプログラム <?php require_once "TestData.php"; require_once "TestDataList.php"; $_xml = simplexml_load_file("guest.xml"); $_list = new TestDataList(); $_cnt = 0; foreach($_xml -> data as $data) { $tmpdata = new TestData(); $tmpdata -> setName($data -> name); $_list -> addData($tmpdata); $_cnt++; } ?> <html> <body> <?php print("Count:".$_cnt."<br/>"); print("Size :".$_list -> size()); for($j = 0 ; $j < $_list -> size() ; $j++) { $outdata = $_list -> getData($j); print($outdata -> getName()."<br/>"); } ?> </body> </html> ・実行結果 Count:3 Size :0 PHPに詳しい方、上記プログラムの不備を教えて下さい。宜しくお願いします。
- <input type="hidden" name="action"
<input type="hidden" name="action" <input type="hidden" name="action" value="sendmail"> <table cellspacing="1" cellpadding="5" width="580" bgcolor="black" align="center"> <tr> <td bgcolor="#efffff" width="110"><font color=black>氏名</font></td> <td bgcolor="#ffffff"><input type="text" name="name" size="30" value="" maxlength="70"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black size="2">メールアドレス</font></td> <td bgcolor="#ffffff"><input type="text" name="mail" size="50" value="" maxlength="80"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black>地域</font></td> <td bgcolor="#ffffff"><input type="text" name="address" size="50" value="" maxlength="70"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black>御問合せ内容</font></td> <td bgcolor="#ffffff"><textarea name="comment" rows="5" cols="48"></textarea></td> </tr> </table> <center> <input type="submit" name="sub" value="クリック"> </center> </form> <h2>当サイトへの御要望</h2> <p>■各項目を御記入頂き、下のボタンをクリックして下さい。</p> <form action="form.php" method="post"> <input type="hidden" name="action" value="sendmail"> <table cellspacing="1" cellpadding="5" width="580" bgcolor="black" align="center"> <tr> <td bgcolor="#efffff" width="110"><font color=black>氏名</font></td> <td bgcolor="#ffffff"><input type="text" name="name" size="30" value="" maxlength="70"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black>メールアドレス</font></td> <td bgcolor="#ffffff"><input type="text" name="mail" size="50" value="" maxlength="80"></td> </tr> <tr> <td bgcolor="#efffff"><font color=black>御要望</font></td> <td bgcolor="#ffffff"><textarea name="comment" rows="5" cols="48"></textarea></td> </tr> </table> <center> <input type="submit" name="sub" value="クリック"> </center> </form> (1)これらを含めたサイトを「HTML4,01」(文字コード「shift_jis」)で作成していました。 (2)このフォームタグをそのまま「XHTML1,0」で作成したサイト(文字コード「UTF-8」)に埋め込むには、書き直す箇所がありますでしょうか? PHPファイルも(1)で使用していたモノをそのまま(2)に使用したいと思っているのですが、文字化けがなおりません。 PHPに関しても、記述しなおす箇所があるのでしょうか? 詳しい方、お助け下さい。 宜しくお願いします。 PHPファイルは、(1)の時は正常に動作していました。