【PHP】下らねぇ質問はここに書き込みやがれ 41
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/03/06(火) 15:39:46ID:naBsdy1ZPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 40
http://pc11.2ch.net/test/read.cgi/php/1172151461/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
0608nobodyさん
2007/03/12(月) 17:03:17ID:???0609597
2007/03/12(月) 17:04:05ID:???こっちは広告で飯食ってんだYo!もんくあるなら金払えってんだこんにゃろー
0610597
2007/03/12(月) 17:08:06ID:???ぼく、外に出ても嫌われ者で、昔から人の役に立たない人間だったから……。
2ちゃんねるなら、少しでもみんなの役にたてるかと思って。。
実は、PHPの知識は皆無なんだ。
でも、Wikiを管理することぐらいはできるんだ!
荒しさんを弾くことぐらいは朝飯前だぜw
頼むからみんな使ってくれよWiki・・・
0611nobodyさん
2007/03/12(月) 17:09:17ID:???0612597
2007/03/12(月) 17:11:58ID:???広告は自動挿入されてるからおれはいれてないぞww
広告なしがあるならおしえてくれよw
0613nobodyさん
2007/03/12(月) 17:17:28ID:???0614597
2007/03/12(月) 17:24:49ID:???0615nobodyさん
2007/03/12(月) 17:26:13ID:???運営するべきじゃないなw
0616nobodyさん
2007/03/12(月) 17:32:39ID:???0617nobodyさん
2007/03/12(月) 17:37:06ID:???0618nobodyさん
2007/03/12(月) 17:50:16ID:???マジレスすると、お前の悪いところは
・IDを出していない
・言い出しっぺの割に設定してない
・人任せ
これが問題だと思うよ。
0619597
2007/03/12(月) 17:55:42ID:???0620nobodyさん
2007/03/12(月) 17:57:52ID:???0621597
2007/03/12(月) 18:34:21ID:???0622nobodyさん
2007/03/12(月) 19:22:44ID:???phpでiCalendar形式のファイルを書き出すクラスみたいなのは
どこかで配布されてませんでしょうか?
0623nobodyさん
2007/03/12(月) 19:40:34ID:???これか?
http://www.phpclasses.org/browse/package/3278.html
0624623
2007/03/12(月) 19:42:09ID:???こんなのもあった。
http://www.macupdate.com/info.php/id/9224
0626nobodyさん
2007/03/12(月) 19:47:22ID:???(index.php)---
$TABLE = "";
$TABLE .= "<table border=1 cellspacing=3>";
・・・・(<TR>とかいっぱいのコード)
$TABLE .= "</table>";
include("template/index.tpl");
(index.tpl)---
<div align="center">
<?php echo $TABLE?>
</div>
0627nobodyさん
2007/03/12(月) 19:51:03ID:???echo "<div>これは冗談だろ...</div>\n";
echo "<div style="font-weight: bold;">頼むから冗談だと言ってくれ!!</div>";
0628nobodyさん
2007/03/12(月) 19:52:47ID:P3Oh6t9M\nが改行されずにそのまま\nと表示されるのですが、どうやったら改行されるのでしょうか?
0630nobodyさん
2007/03/12(月) 19:57:45ID:P3Oh6t9Mありがとうございます。できました。
そう言えばシングルクオートで囲んでました。
シングルではダメなんですか?
0631nobodyさん
2007/03/12(月) 20:15:01ID:???http://www.php.net/manual/ja/language.types.string.php
0632nobodyさん
2007/03/12(月) 20:30:23ID:DaZu2ELxどうも。勉強してきます。
0633nobodyさん
2007/03/12(月) 20:34:42ID:???0636nobodyさん
2007/03/12(月) 21:26:54ID:???0637nobodyさん
2007/03/12(月) 22:20:51ID:D65DUhfLを使って<リンク>にしてページに入ってる順に出力したいんです。
で、
while ($row = mysql_fetch_assoc($result)) {
print($row['sitename'].'<br>');
print($row['siteurl'].'<br>');
というのを見つけたんで、
この先をいじってやってみようと思ったんですがうまくいきません。
(いじって→なんとなく組み合わせてリンクタグをつくる。)
これってどうやったらうまくいきますか?
根本から違いますか?
0638nobodyさん
2007/03/12(月) 22:28:32ID:???0639nobodyさん
2007/03/12(月) 22:39:43ID:tXEJgcvFrequire 'cgi-lib.pl';
&ReadParse;
$upfile = $in{'upfile'};
open(OUT,">test.wav");
binmode(OUT);
print OUT $upfile;
close(OUT);
# レスポンスヘッダの出力
print "Content-type: text/html", "\n\n";
# HTMLの出力
print "<HTML>\n";
print "<BODY>\n";
print "<font size=7>ファイル更新中</font><BR>\n";
print "</BODY>\n";
print "</HTML>\n";
cgi-lib.plのライブラリを使ってみようと思いこのようなサンプルを作ってみましたが
作動しません。
間違いを教えてください。
0640nobodyさん
2007/03/12(月) 22:45:08ID:bMTzsbbiMySQLが4.1.x系になってそれまで作っていたプログラムが文字化けするのですが、
ググって調べたところ、MySQLの仕様が変わった事が原因で、my.cnfを編集して
対処するしかない、とかの記載がありました。
そこで質問ですが、PHP側で対処する方法は無いのでしょうか?
文字コードはEUC-JPで作っているのですが、すべての文字コードを
UTF-8に変更しなくてはいけないのでしょうか?
0641nobodyさん
2007/03/12(月) 22:47:09ID:tXEJgcvF0642637
2007/03/12(月) 22:47:54ID:D65DUhfLprint('<a href=$row['siteurl']>$row['sitename']</a>');
というのを後ろに付けてみたんですが動かしても白い画面が出るだけなんです。
0643nobodyさん
2007/03/12(月) 22:56:23ID:???それだとパースエラー出るような気がするけど。
http://www.php.net/manual/ja/language.types.string.php
とりあえずあなたはここを読むといいと思う
0644637
2007/03/12(月) 23:02:42ID:D65DUhfLお返事ありがとうございます。もうちょっと勉強してからきます。
0645nobodyさん
2007/03/12(月) 23:38:29ID:AUsBueUeセキュリティに関する本があったのですが、何というタイトルだったのでしょうか?
0646nobodyさん
2007/03/12(月) 23:42:25ID:???投稿しても反映されません。。
何故でしょうか??
時間的な問題で、ほっとけば投稿されるのでしょうか?
0648nobodyさん
2007/03/13(火) 00:02:55ID:???0649nobodyさん
2007/03/13(火) 00:23:42ID:???0651nobodyさん
2007/03/13(火) 01:24:44ID:???いったいどんなコストがかかってるって言うんだ…。タダみたいなもんだろーが。
しかもほとんどアメリカ企業ばっかりで選択肢少ないし。
あれって独占だか寡占だかで法律違反に問えないのかな?
本当にネット社会のインフラを充実させるには、「SSL業界のユニクロ」が必要だな。
0652nobodyさん
2007/03/13(火) 01:35:29ID:???中身はcomodoの証明書だったりするけど
ってここPHPのスレやんけ
0653nobodyさん
2007/03/13(火) 01:45:19ID:???0654nobodyさん
2007/03/13(火) 01:45:49ID:???>>652
レン鯖のサービスはあくまで再販だから、コストを下げるという観点からは無意味。
っていうか鯖屋のピンハネ分が乗るので余計にコスト高。
0655nobodyさん
2007/03/13(火) 01:54:20ID:???こういうやつだったら安く済むんじゃないの
ttp://www.asj.ne.jp/techinfo/ssl_asj.html
0656nobodyさん
2007/03/13(火) 01:57:45ID:WB3nwZIO<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>
を
SimpleXMLで
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>
を
SimpleXMLで
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>
を
<cat>
<name>mike</name>
<name>tama</name>
</cat>
に変更するときはどうすればいいのでしょうか?
0658nobodyさん
2007/03/13(火) 02:03:53ID:???それも海外業者の再販でしょ。あと携帯対応がイマイチねぇ・・・。
そもそも一番ユーザの多いドコモに対応するには、
事実上の独占企業VeriSignしか選択肢が無いのが痛い。
社民や共産は下らない言葉狩りとかやってないで、こういう見えにくい部分を追及してほしいぜ。
0659656
2007/03/13(火) 02:12:17ID:WB3nwZIO正しいのはこれです。
SimpleXMLで
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>
を
<cat>
<name>mike</name>
<name>tama</name>
</cat>
に変更するときはどうすればいいのでしょうか?
0660nobodyさん
2007/03/13(火) 02:37:01ID:???0661弟子 ◆xSK1SiC5MI
2007/03/13(火) 02:58:43ID:TI4gTUTcXPなんだけどどこから手をつけるべきですか?
0662nobodyさん
2007/03/13(火) 03:18:05ID:???そんな調子じゃ10日は無理だなw買う本間違えたんじゃない?
とりあえず、最低限Apache+PHPをインストールしておいで。
個々のインストールがめんどくさかったり
よくわからないならXAMPPを入れたほうがいいかも。
そしたら次はフリーのPHP用IDEを入れる。
EclipseのPHPプラグインあたりがデバッグも容易だしおすすめ。
0663弟子 ◆xSK1SiC5MI
2007/03/13(火) 03:19:36ID:TI4gTUTc0664弟子 ◆xSK1SiC5MI
2007/03/13(火) 03:38:56ID:TI4gTUTcあとはhttp://www.atmarkit.co.jp/fjava/rensai3/eclipsejava01/eclipse01.html#40
をダウンロードでOKですか?
0665nobodyさん
2007/03/13(火) 03:53:58ID:???PHPは仕事で使うのか?
もしそうならそんなにあわてなくても良いじゃん。
ゆっくりやればいいよ。
俺はXAMPP+EclipseよりはPHPとApacheだけ
入れたほうが良いと思うんだけどどう?
0666nobodyさん
2007/03/13(火) 04:00:27ID:???0667nobodyさん
2007/03/13(火) 05:49:39ID:???初心者ならphpエディタのほうがいいかもね。
Eclipseに慣れている人なら当然そっちのほうがいいけど、
元々あれはJava開発者向けだし、最初の設定やらが若干めんどくさいからね。
0668nobodyさん
2007/03/13(火) 08:55:58ID:???ローカルに環境作らないで、無料のPHP使えるサーバー借りて勉強すればいいんでない?
ある程度PHPを覚えてくると、今までさっぱりだったapacheやphpの設定も不思議と見えてくる。
0669nobodyさん
2007/03/13(火) 09:18:01ID:???0670nobodyさん
2007/03/13(火) 09:31:45ID:???0671nobodyさん
2007/03/13(火) 09:33:48ID:???0672nobodyさん
2007/03/13(火) 09:57:54ID:???0673nobodyさん
2007/03/13(火) 10:31:36ID:8uoeVZuh<form method="post"action="a.php">..</form>
のようなログインフォームを用意しています。
パスワードを入力してログインすると
ログイン後のページが表示されるようになっているのですが
一部端末でログインできない(ログインボタンを押しても
ログイン画面が再表示されてしまう)
という問題が現象が発生しています。
端末は V302H V603SH A5502K W32S 702NH などです
(端末の設定に依存するのかもしれません
回避策などありましたら教えてください。
0674nobodyさん
2007/03/13(火) 10:40:10ID:???MySQLのバージョンによってうまくいかない可能性があるが
set names のクエリを接続したあと1回必ず送るようにすると
うまくいくかも
これでもうまくいかないときは素直にmy.cnfを書き換えたほうがいい
書き換えてもうまくいかないときはalterでデータベースの文字コードを
設定しなおしたらいい
0675nobodyさん
2007/03/13(火) 10:57:30ID:???回避策というかバグなんだからデバッグしろよ
とりあえずa.phpでprint_r($_POST);とかして値がわたってるかチェックかな
0677nobodyさん
2007/03/13(火) 11:03:20ID:8uoeVZuh返答ありがとうございます
例に出した機種以外では渡っているようでした
0680640
2007/03/13(火) 11:09:32ID:???ありがとうございます!無理なのかと思いました・・。
とりあえずレン鯖なんで、my.cnfの書き換えは出来ないのですが、
以下の分を環境設定ファイルに書き足したところ、登録・表示できました。
$set_names = mysql_query("SET NAMES ujis", $conn);
少ししか試していませんが、特に重いと言う事もないので、これで乗り切ろうと思います。
アドバイスありがとうございました。
0681nobodyさん
2007/03/13(火) 11:17:31ID:8uoeVZuh2年ほど前の機種です
0682nobodyさん
2007/03/13(火) 11:20:37ID:???どうもありがとうございました
書き出す場合は中身が構造化されたテキストっぽいから自分でやっつけるしかないみたいですね
0683nobodyさん
2007/03/13(火) 11:21:17ID:???V302H V603SH A5502K W32S 702NH
で検索したけど1個しかヒットしなかった
http://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-26,GGGL:ja&q=V302H+V603SH+A5502K+W32S+702NH+
0684nobodyさん
2007/03/13(火) 11:25:18ID:???携帯によってはパラメーターちゃんと設定しないと送信されなかったりもする。
0686nobodyさん
2007/03/13(火) 11:27:34ID:8uoeVZuhやってみます!
0687nobodyさん
2007/03/13(火) 11:28:47ID:???<?php
$xmlstr = <<<XML
<cat>
<name>mike</name>
<name>tama</name>
<name>buchi</name>
</cat>
XML;
$xmlsrc = new SimpleXMLElement($xmlstr);
$xmldst = new SimpleXMLElement("<cat></cat>");
foreach($xmlsrc->name as $name) {
$xmldst->addChild("name", $name);
}
?>
0688nobodyさん
2007/03/13(火) 11:30:53ID:???foreach($xmlsrc->name as $name) {
if($name != "buchi")
$xmldst->addChild("name", $name);
}
0690659
2007/03/13(火) 12:02:43ID:WB3nwZIO今PHPが使える環境にないので、後でやってみます。
0691nobodyさん
2007/03/13(火) 13:05:05ID:???それらの機種には問題ない。
お前のコーディングに問題がある。
おそらく適切なヘッダーを吐いてないんじゃないか。
0692nobodyさん
2007/03/13(火) 14:21:08ID:Y+fr5f3lテンプレートとなるPHPスクリプトには必ずTemplateクラスを実装するようにし、表示メソッドを持たせました。
例えば、以下のように複数のテンプレートPHPスクリプトを用意しておき、
表示時に、好きなテンプレートを選択できるようにしたわけです。
template1.php,template2.php,template3.php...
しかし問題に気付きました。
一つだけのテンプレートをrequireして何度も表示するだけなら良いのですが、
複数のテンプレートを一つのPHPスクリプトからrequireする場合があったのです。
「Fatal error: Cannot redeclare class ...」 です。
Templateクラスの多重定義エラーになってしまうのです・・!
PHPは定義の解除もオーバーライドもできない。
ああ、納品は今日だというのに、今まで気がつかなかった私が馬鹿であったのですが・・。
どうにかうまくやり抜ける方法はないものでしょうか?
おまえら知恵を貸しやがれです!
0693nobodyさん
2007/03/13(火) 14:24:16ID:???結論=無理。氏ぬがいいw
っていうか単なるテンプレート的な使い方のためだけにテンプレートエンジンだの
クラスだのと難しいことをする必要はない。
単に任意の変数を埋め込んだHTMLを拡張子.phpで用意しておき、
それをロジック・スクリプトからrequireして変数部分を展開すればいいだけ。
0694nobodyさん
2007/03/13(火) 14:26:27ID:???0695nobodyさん
2007/03/13(火) 14:29:49ID:???どういうファイル構成になってるんだかさっぱりなんだが
クラス定義ファイルの読み込みはrequire_onceでやるか
クラス定義のとこで定義済みかどうかを判別するだけでは。
まさか複数ファイルにクラス定義をそれぞれ書いてるとかいう
ありえない設計をしてるわけもないだろうし。
0696nobodyさん
2007/03/13(火) 14:42:22ID:Y+fr5f3lprint.php
-----------------------
require_once(テンプレートA);
$A = new Template;
//うぁぁTemplateが解除できねぇぇ
require_once(テンプレートB);
$A = new Template;
templateA.php , templateB.php
-----------------------
class Template extends TemplateBase
{
...
}
>>693
現状から少々の追加・修正でなんとかできないでしょうか・・
各テンプレートPHPで宣言しているクラス名を修正しても良いです。
>>695
ありえない設計になっていますでしょうか・・
0697nobodyさん
2007/03/13(火) 14:52:53ID:???0698nobodyさん
2007/03/13(火) 15:01:48ID:Y+fr5f3lテンプレートオブジェクトの生成コード
new Template が統一して使用出来ないと思ったからなんです。
newには静的にクラス名を与えるしかないですよね・・?
0699nobodyさん
2007/03/13(火) 15:08:19ID:???1000 2000 3000 の整数値が入った変数があったとして
これら3つの中から最も低い数値だけ抜き出すアルゴが知りたいです
もちろんif文などでも実現できますが、何かいい関数がないかと思いまして
無知なところすみませんがよろしくお願いします
0701軟式PHP
2007/03/13(火) 15:20:46ID:???<?php
$nums = array(2000,1000,3000,5000,100,7000);
sort($nums);
print $nums[0];
?>
0703虚弱PHP
2007/03/13(火) 15:30:04ID:???ありえない設計だね。
設計変えずに素早くなんとかするとしたら、
可変クラス名でも使ってやるしかないんじゃないかな。
・クラス名はテンプレート毎。
・テンプレートクラスのファイル先頭に$TemplateClassName = <テンプレートクラス名>
$A = new $TemplateClassName();
0704nobodyさん
2007/03/13(火) 15:34:44ID:???だからさぁ、テンプレートの仕組みはこんな感じ↓にすれば簡単なのに。
なぜ皆わざわざテンプレートエンジンとか難しいことやろうとするの?
●print.phpの中身
$hoge = "これを表示するべ";
require_once(template.php);
-----------------------
●template.phpの中身
echo <<< EOM
<html><body>
↓ここの表示は自由自在だぜ!<br>
{$hoge}
</body></html>
EOM;
0706軟式PHP
2007/03/13(火) 15:42:48ID:???いや明らかにテンプレートエンジンのほうが簡単。
というかそれはテンプレートとは言えるレベルじゃないと思うが。
Smartyのforeachelse、cycleなどを使い始めると離れづらいと思うが。
Smartyの例
●print.phpの中身
$tpl = new mySmarty(); //Smartyを継承したクラス
$tpl->assign("hoge","これを表示するべ");
$tpl->display("template.php");
●template.php
<html>
<body>
↓ここの表示は自由自在だぜ!<br>
{$hoge}
</body></html>
0708nobodyさん
2007/03/13(火) 15:54:58ID:Y+fr5f3l$strは何を指すのですか?
憶測ですが、new TemplateをLoadTemplateのような関数と同じ意味だと思っていませんか?
多分そのやり方ではクラスを使う意味がないです。
>>703
ありがとうございます。
PHPは可変クラスなんてのが使えたんですね。
そういった機構が無いか何度も探してみたのですが、見つけられていませんでした。
まだ試してみてはいませんが、勉強になります。
なお、先の件につきまして、一応自力で解決できました。
>>703の手法に似ていますが、可変〜を使わないものです。
print.phpのテンプレート出力関数内で、空の$template_objを用意し
テンプレートスクリプトにて、global $template_objによりアクセス可能にした
$template_objへnewテンプレートしオブジェクトインスタンスを格納するようにしました。
コンストラクタの引数も同様に受け渡しをしました。
ちょっと再利用性が落ちるやり方でまた怒られそうですね。
とにかく、皆様どうもありがとうございました。
と書いている間にまたレスがついてますね。
>>703以降落ち着いたらじっくり読ませていただきます。
クラスの使い方がなってないと散々怒られてしまいましたので
よろしければ、後学のためどのような設計にすべきだったのかアドバイス頂けると幸いです。
ではでは、また死んできます。
■ このスレッドは過去ログ倉庫に格納されています