【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/09/15(月) 18:41:32ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
0381nobodyさん
2008/12/08(月) 14:11:19ID:???>>378と>>379は同じ意味という理解でよろしいでしょうか。
!eregで正規表現でマッチしない
!=で正規表現を使わないでマッチしない
0383nobodyさん
2008/12/08(月) 14:19:46ID:???でも正規表現使うならereg_系よりpreg_系のほうをお勧めします
文字列が含まれているかどうかを判定するにはstrposのほうがいいです
単に変数の内容が文字列と一致するかどうかだけなら比較演算子で十分です
亀レスになって申し訳ないです。
レスがつかないなと思ってたら専ブラのdatが壊れてました。
preg,strposは調べてみます
詳しく解説していただき本当にありがとうございました。
0385nobodyさん
2008/12/08(月) 23:24:31ID:L5IlDtkePHP4だとDOM XMLの中にDomDocument->document_elementというのがありましたが、
PHP5のDOMに同様の関数がみつかりません。
↓ここを探しました。
ttp://www.php.net/manual/ja/book.dom.php
ルートを取得するには、どうしたらいいんでしょう?
0386nobodyさん
2008/12/08(月) 23:27:11ID:???http://www.php.net/manual/ja/book.domxml.php
0387nobodyさん
2008/12/09(火) 06:30:28ID:???ありがとうございます。これはPHP4用のものだと思っていたのですが、
PHP5でも使ってよいのでしょうか?。教えてくださったページにも
以下のように書いてあったので。DOM XMLよりDOMのほうが標準っぽ
いかんじがするので、DOM XMLを使っていいのか心配です。
-----
注意: この拡張は実験的なものではありません。
しかしながら、PHP 5 版は決してリリースされないでしょう。
PHP 4 でのみ配布されます。 もし PHP 5 でDOM XML をサポ
ートする必要がある場合、 DOM 拡張を使用することができます。
この domxml 拡張は DOM 拡張と互換性はありません。
-----
0388nobodyさん
2008/12/09(火) 11:36:23ID:???DOM XML は非推奨
DOM の documentElement はここよ
http://www.php.net/manual/ja/class.domdocument.php#domdocument.props.documentelement
0389nobodyさん
2008/12/09(火) 15:38:44ID:oaG+U8nzまた、そのトーナメント表を自動更新できるのでしょうか?
0390nobodyさん
2008/12/09(火) 15:42:06ID:???0391nobodyさん
2008/12/09(火) 15:49:22ID:???DB的にはツリー型でプロパティを保存していくんだろうね
↓お勧め構造
ttp://www.sitepoint.com/article/hierarchical-data-database/
トーナメントのロジック部はエントリー、シード方式、
エントリーから表作成、勝敗登録とまぁ、難しくはないが、
手数は多いかもね。
表示部は可変のリストでグラフィカルなトーナメント表を作るとなると
それはまた大変な作業になりそうだなぁ。
0392nobodyさん
2008/12/09(火) 16:02:29ID:???0394389
2008/12/09(火) 16:07:11ID:oaG+U8nzツリーにしなくてもいいとはどういった方法でしょうか?
0396389
2008/12/09(火) 16:11:47ID:oaG+U8nz他に参考となるものはないでしょうか?
わがまま言ってすみません。
0397nobodyさん
2008/12/09(火) 16:13:48ID:???0399nobodyさん
2008/12/09(火) 16:22:12ID:oaG+U8nzどうしたらいいかさっぱりなんです↓
0400nobodyさん
2008/12/09(火) 16:31:51ID:???なんでageてまでこっちのスレで聞くの?ふざけてるの?
0401nobodyさん
2008/12/09(火) 16:39:37ID:???何も分かんないから聞いていただけです。
sageについては分からなかったのですいませんでした。以後気をつけます。
0403nobodyさん
2008/12/09(火) 16:54:04ID:???0404nobodyさん
2008/12/09(火) 17:03:02ID:???君が何を勘違いしてるか、
出力はツリーだろ。=>トーナメント表
それをMySQLに保存したいっていう質問だろ。
DBにツリーを表現する構造を作らなくて何をするというの?
LR方式のツリー格納は今のところもっとも効率のいい方法だぜ。
まぁ、どうせ>>395あたりだと、DBは試合結果だけとか、
再帰処理とか、劇重なこと考えてるんだろうけど。
0405nobodyさん
2008/12/09(火) 17:04:26ID:???0408nobodyさん
2008/12/09(火) 17:24:21ID:???0409nobodyさん
2008/12/09(火) 17:38:48ID:???0410nobodyさん
2008/12/09(火) 17:49:19ID:???0413nobodyさん
2008/12/09(火) 18:48:28ID:???ttp://www.sitepoint.com/article/hierarchical-data-database/
これの、日本語訳相当のもの、あったよ。
ttp://www.mysql.gr.jp/mysqlml/mysql/msg/12071
図を参照するならここ
ttp://dev.mysql.com/tech-resources/articles/hierarchical-data.html
要約すると、トーナメント表のようにツリー概念をフラットなテーブルで表現するには
Adjacency List モデルとネストセットモデルがある。
Adjacency List モデルは親子を登録しておいて再帰で取りに行く形で
すぐにおもいついて実装はすぐできるが、パフォーマンス的に無駄があるし大量のデータは扱えない。
ネストセットモデル(>>404氏が書いてるLR方式)の方が検索性に優れている。
ネストセットモデルの更新は若干トリッキーなので更新中はロックを正しく実装する必要がある。
カテゴリー管理などツリー構造を扱うときはネストセットモデルがFAなので、
覚えておいて損はないよ。
0414nobodyさん
2008/12/09(火) 18:59:25ID:???もしこれよりうまいモデリング手法があるんなら俺も知りたい。
0415nobodyさん
2008/12/09(火) 19:04:23ID:???0416nobodyさん
2008/12/09(火) 19:09:18ID:???特定ノード配下から条件指定で検索など、実用コードを書いたら一気に重くなる。
もしくは、全データをメモリに読み込むとか、Web用としては使えんと思うが、
ハッシュで実用的なツリー構造を扱う新理論でもお持ちで?
0417nobodyさん
2008/12/09(火) 19:13:34ID:???10年後ぐらいには実用になるさ
0418nobodyさん
2008/12/09(火) 19:14:59ID:???0419nobodyさん
2008/12/09(火) 19:15:25ID:???0420nobodyさん
2008/12/09(火) 19:17:37ID:???0421nobodyさん
2008/12/09(火) 19:21:27ID:???0422nobodyさん
2008/12/09(火) 19:22:11ID:???甲子園なんかで、決勝進出チームが、本大会、県大会で戦ったチームのうち
左ピッチャーからどのくらい打って何点差で勝てたかとか、
過去のデータを蓄積してデータ検索をサクっとやりたいわけでしょ。
高度な部類だと思うけど、違うのかな?
0424nobodyさん
2008/12/09(火) 20:02:49ID:oaG+U8nzわざわざ丁寧に教えて頂きありがとうございました。
0425nobodyさん
2008/12/09(火) 20:17:02ID:???0428nobodyさん
2008/12/10(水) 00:06:02ID:???スレ違いの質問でしょうか?
確かに
教えて下さりありがとうございました
または
教えて頂きありがたくおもいます
が正確なのかも知れませんね
0430nobodyさん
2008/12/10(水) 15:57:45ID:???どうすれば良いのでしょうか・・・・?
0431nobodyさん
2008/12/10(水) 16:29:06ID:???<?php
$data = '';
$fieldName = 0;
do {
$data .= array_key_exists($fieldName, $_POST) ? $_POST[$fieldName] : "nodata";
echo "<input type=\"text\" name=\"{$fieldName}\" value=\"" . htmlspecialchars($data) . "\" />";
} while( $_POST && error_log("posted value is " . $fieldName++ . ":" . $data));
?>
</form>
0433nobodyさん
2008/12/10(水) 18:06:52ID:???0434nobodyさん
2008/12/10(水) 19:32:34ID:???0435nobodyさん
2008/12/10(水) 20:01:00ID:???0436nobodyさん
2008/12/10(水) 20:15:34ID:???PHPプログラムの中で連続してMySQLへデータを書き込みたい場合
どのように記述すれば良いのでしょうか?
例えば指定条件のデータを一度消去してから
改めて幾つかのデータを入れなおすなど
お分かりになる方よろしくお願いいたします
0437nobodyさん
2008/12/10(水) 20:16:40ID:???0438nobodyさん
2008/12/10(水) 22:08:32ID:???class hogehoge {
private $hoge = array("1", "2", "3");
public function getHoge(){
return $this->hoge;
}
}
$hogehoge = new hogehoge();
$hogehoge->getHoge()[1];
のように関数の戻り値の配列の要素を1行で取得はできないのでしょうか?
0439nobodyさん
2008/12/10(水) 22:11:01ID:???0440nobodyさん
2008/12/11(木) 09:37:39ID:???どこかおかしいです?
$this->smarty_obj->assign('date_trackbacks_url',spriunf(TEXT_TRACKBACKS_URL, htmlspecialchars(td_get_trackbacks_url(intval($HTTP_GET_VARS['products_id'])), ENT_QUOTES));
0441nobodyさん
2008/12/11(木) 09:48:57ID:???0442nobodyさん
2008/12/11(木) 09:49:20ID:???0443nobodyさん
2008/12/11(木) 10:47:01ID:???構文解析周りが貧弱なので出来ません
array の代わりに ArrayObject を使い、俗に言うメソッドチェインでアクセスする、
またはプロパティ限定でよかったら __get マジックメソッドで代用できます
class Hoge {
private $hoge = array(1, 2, 3);
public function __get($name) {
return $this->$name;
}
}
$hoge = new Hoge();
echo $hoge->hoge[1];
0444nobodyさん
2008/12/11(木) 11:03:02ID:???class hogehoge {
private $hoge = array("1", "2", "3");
public function getHoge(){
return new ArrayObject($this->hoge);
}
}
$hogehoge = new hogehoge();
$ahoge->getHoge()->offsetGet(1);
// $ahoge[1]としてもアクセス可能
0447nobodyさん
2008/12/11(木) 20:04:24ID:???フィールドが2つ japa, engl 行1 a, a 行2 i, b 行3 u, c 行4 e, d 行5 o, e
みたいに入っていたとして
$data = mysql_array(上のテーブルから情報)みたいにMySQLから取得したデータを配列に入れた場合には
フィールド名も含めてどのような形で配列に入っているのでしょうか?
さらにフィールドjapaを選択して頭からa, i, u, e, oと取り出すように
その配列の特定のフィールドだけを選択して次々にデータを取り出す方法は有るのでしょうか
どなたか教えていただけ無いでしょうか
0448nobodyさん
2008/12/11(木) 20:14:18ID:???ググっても浅いところでは情報を拾えないみたいなので、
よろしくお願いします。
0449nobodyさん
2008/12/11(木) 20:20:40ID:???普通は、行レベルでアクセスして順に取得する。
データベースアクセスの基本だから、基本的なサンプルはみんなそうなってる
しかし、工夫すれば、一気に取り出すことも不可能でないが、
内部的にはほとんど同じことなので、行レベルで処理した方が無難
>>448
できる
0450447
2008/12/11(木) 20:39:36ID:???ありがとうございます
それぞれのフィールドの値を別のところで使うので一度の方が良いと思いました
そうしますと
$japaData = mysql_fitch_array()
$englData = mysql_fitch_array()
みたいに2回に分けてデータを取得し2つに分けると良いという事でしょうか?
0451nobodyさん
2008/12/11(木) 20:43:19ID:???とりあえず、基本的なサンプルを試してみたら?
select * from hoge limit 5;
とかして。
0452nobodyさん
2008/12/11(木) 20:50:19ID:???0453447
2008/12/11(木) 22:55:36ID:???あまり知識が無いのでデータベースから読み込む回数を減らした方が
機械に負担が少ないかなと単純に思って出来た発想でした
2回に分けた方が自分としても手っ取り早いので試してみたいと思います
ありがとうございました
0455448
2008/12/12(金) 19:18:09ID:???include出来るのは確認できたけど、
思った場所に表示できません(最上部に表示される)。
$this->smarty_obj->assign('trackback', require(trackback.php));
普通に{$trackback}で呼ぶだけじゃダメなのですか?
0456nobodyさん
2008/12/12(金) 19:22:02ID:???assignに値を渡したければ、return "$trackbackの中身";
0457nobodyさん
2008/12/12(金) 19:22:41ID:???0458448
2008/12/12(金) 20:24:30ID:???したら、それ以外の処理がキャンセルされちゃった。。。
これって、調べるとreturnの特性みたいですけど、
回避するにはどうしたらいいですか?それとも勘違い?
0459nobodyさん
2008/12/12(金) 20:28:40ID:???>>456
に書いてあること理解できてる?
requireされてるファイルの中で出力するなと、
そして、そのファイルからreturnしろと読めない?
0461nobodyさん
2008/12/12(金) 22:10:32ID:???$trackback_for_products = require(DIR_WS_MODULES . FILENAME_TRACKBACKS_FOR_PRODUCTS);
$this->smarty_obj->assign('$trackback_for_products');
0462nobodyさん
2008/12/12(金) 22:16:48ID:???0463nobodyさん
2008/12/12(金) 22:47:25ID:???やりたいこととちがうんじゃねぇーの?
0464448
2008/12/13(土) 23:06:46ID:???結果オーライというか、上記本来の使用法かな?とも思ったりするのですが、
後学の為に正解をお願いします。
returnを実行phpで使うのか、includeしたphp内で使って、その結果を実行phpに渡すのか。
assignに渡すのと同じ行でreturn出来るのかなと思ったのですけど、
そんな感じじゃないみたいなので。。。
0465nobodyさん
2008/12/13(土) 23:07:39ID:???○上記が本来
0466nobodyさん
2008/12/14(日) 14:17:48ID:???formからアップロードしたzipファイルを解凍するスクリプト書いてるんですが、
解凍する前にzipファイルの破損をチェックするのってどうやったらできますか?
0467nobodyさん
2008/12/14(日) 14:18:44ID:???0468nobodyさん
2008/12/14(日) 14:30:49ID:???0469nobodyさん
2008/12/14(日) 14:32:31ID:???0470nobodyさん
2008/12/14(日) 15:07:29ID:???0471nobodyさん
2008/12/14(日) 15:07:51ID:???元を見てないならマルチかどうか知らんことだし
誘導されてきたことは告げるべきことなのか?
466じゃないけど気になったんで聞いてみる
0472nobodyさん
2008/12/14(日) 15:13:56ID:???0473nobodyさん
2008/12/14(日) 15:14:33ID:???それとも誘導レスを見る前にマルチしたのかどうやって判断するんだ?
時間的に整合性があればマルチじゃないと判断しろよ って言うのか?
誘導された旨を書くのがスマートだろ
0474nobodyさん
2008/12/14(日) 15:17:17ID:???ああ誘導があったから来たんだなっと
たしかに実際にはわからんけど悪い方にとり過ぎだと思うんだが
0476nobodyさん
2008/12/14(日) 16:50:59ID:???iPhoneのメールからある掲示板にメールで投稿する時に絵文字を挿入(タイトルへ)して送ると
普通の文字は大丈夫なのですが絵文字部分が =?utf-8?B?77+9?= という文字列になって表示してしまいます。
iPhoneでは1つの絵文字を書いたつもりなのですが。
同じ絵文字をメールで受信すると菱形の中に?が入ったように化けています。
これをiPhoneで掲示板を見たときはちゃんと絵文字を表示するようにしたいのですが、
どうすれば表示できるようになるのでしょうか?
どなたかその流れを教えてもらえませんか?
0477nobodyさん
2008/12/14(日) 19:09:19ID:???ここで誘導されてきたことを書く必要はない
0481nobodyさん
2008/12/14(日) 19:49:38ID:???■ このスレッドは過去ログ倉庫に格納されています