トップページphp
1001コメント319KB

【PHP】下らねぇ質問はここに書き込みやがれ 44

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/04/12(木) 16:54:47ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 43
http://pc11.2ch.net/test/read.cgi/php/1175368910/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0403nobodyさん2007/04/19(木) 17:08:41ID:???
どうやってPHPでServletコンテナみたいなものを実現させるの?
0404nobodyさん2007/04/19(木) 17:11:07ID:???
>>402
やっぱり同じクラスを2つのページに書いてるの?
処理a, b, c, dがあるクラスを両ページでincludeすればいいんじゃないでしょうか?
04053792007/04/19(木) 17:15:28ID:???
>>404
そうですね。例えば一覧表示(list.php)の場合は検索のclassはいりませんが、
>>402の例で言うと、a〜cまでのclass(関数)は使っています。
そして検索用のファイル(search.php)では、検索用のclass(例ではd)
を追加している。といった感じです。

現在は両ページでincludeしているのですが、a〜cまでは共通しているので
更にa〜cまでまとめてincludeした方が良いのかな?と言うのが悩みです。
0406nobodyさん2007/04/19(木) 17:20:55ID:???
えーとそれだとクラスの再利用とかの意味がないよね。
関数集としての使い方しかしてないみたいだし、普通にfunctions.phpにでも関数入れて
各ページで読み込ませることにしたほうがいいんじゃね?
んでこれが終わったらオブジェクト指向・設計とかクラスとかについて勉強するといいと思われ。
0407nobodyさん2007/04/19(木) 18:13:04ID:???
>>402
なんか根本的にclassの使い方判っていない感じがする
0408nobodyさん2007/04/19(木) 18:37:31ID:???
被るならextendsなりincludeしたらいい
04093792007/04/19(木) 19:02:47ID:???
とりあえずもう少し見直してみます。

オブジェクト指向化していると思うのですが、
自分の思う基準が一般的な基準と違うかもしれませんし。

アドバイスいただいた方、ありがとうございました。
0410虚弱PHP2007/04/19(木) 19:07:32ID:???
>>409
まあ、class使ってカプセル化する事がオブジェクト指向ではないので。
(といいつつ、定義は難しいよね)
デザインパターンとか勉強してみるといいかも。
0411nobodyさん2007/04/19(木) 19:26:32ID:???
今更だけどクラスの使い方わからん
変数がそのまま残るってこと?
だったら消えてくれたほうが使いやすい
0412nobodyさん2007/04/19(木) 19:29:19ID:???
(・∀・)ニヤニヤ
0413nobodyさん2007/04/19(木) 19:36:20ID:JjAom0RF
いちいちincludeかかないで、どこのディレクトリからでも、
特定のクラスを使えるようにしたいのですが、
なんかそういう方法ありますか?
パスとおすみたいなことができればおしえていただきたいです。
0414nobodyさん2007/04/19(木) 20:08:09ID:E0JBJHfw
DoCoMo/2.0 YYYY(c10;ser12345678901; icc12345678901234567890)

上記の文字列の、「12345678901」の部分を取得したいのですが、

$ascii="DoCoMo/2.0 YYYY(c10;ser12345678901; icc12345678901234567890)";
preg_match("/ser(.*);/",$match,$agent);
でマッチしないです。
"/ser\d{15};/"
も試してみたのですが同じです。
この部分はどのような文でマッチさせるのがベストなのでしょうか?
0415nobodyさん2007/04/19(木) 20:27:19ID:???
>>414
するけど?
ていうかなんかおかしいぞ。変数が。

$ascii="DoCoMo/2.0 YYYY(c10;ser12345678901; icc12345678901234567890)";
if (preg_match("/ser(.*);/", $ascii) {
  echo "match";
}
04164152007/04/19(木) 20:28:24ID:???
訂正
if (preg_match("/ser(.*);/", $ascii) {

if (preg_match("/ser(.*);/", $ascii)) {
0417nobodyさん2007/04/19(木) 20:29:58ID:E0JBJHfw
>>416
あー
比較する変数と比較した結果が格納される変数を
書く場所が逆でした

ありがとうございます
0418nobodyさん2007/04/19(木) 21:11:25ID:g61ARuJQ
サクラのレンタルサーバで、htpd-2.0.53.tar.gzをインストールして
php5を使っています。

先ほどCall to undefined function: array_combine() とエラーが出てしまいました。
sqliteは使えるのでPHP5はインストール出来ていると思います。
何か設定がいるのでしょうか?
ちなみに、同じプログラムは自宅の環境では動いています。
0419nobodyさん2007/04/19(木) 21:14:24ID:???
>>413
http://jp.php.net/manual/ja/language.oop5.autoload.php
0420nobodyさん2007/04/19(木) 21:35:47ID:???
>>418
一応phpinfo()で確認してみれば
0421nobodyさん2007/04/19(木) 21:54:57ID:???
>>420
ネタニマジレスカコワルイ
0422nobodyさん2007/04/19(木) 22:01:09ID:3qk/G7nZ
DBからひっぱってきたさまざまな値を表示したいのですが、
select * from table where 1;
とかして、1回のクエリで全部取得して、配列などを駆使して頑張って表示するか、
select column from table where group = 1;
みたいなクエリを数回実行して、
数回にわたり、クエリ送信→結果取得・表示を繰り返すのは、
どちらが一般的な方法なのでしょうか?
あと結果取得する際は、fetch_assocやfetch_objectなど
さまざまな関数がありますが、どの関数を使うのが一般的ですか?(もちろん用途によるでしょうが)
0423nobodyさん2007/04/19(木) 22:03:46ID:???
>>422
さまざまな値によるんじゃね?
0424nobodyさん2007/04/19(木) 22:10:07ID:???
SQLが複雑になっても1回のクエリにした方が
大抵の場合は速いのでDBへのクエリ発行は基本少なくした方が良い
配列でとるかオブジェクトでとるかは好みでいいと思うが
最初は配列でいいんじゃないかな
0425nobodyさん2007/04/19(木) 22:11:20ID:3qk/G7nZ
>>423
具体的にテーブルの構成は、
ID, GROUP(int), NAME(char), DESCRIPTION(char)ってかんじで、
GROUP別にNAMEとDESCRIPTIONを表示するだけなんですけど、
イメージとしては
<table>
<tr>
<td rowspan="3">Group1</td>
<td>Name</td><td>Description</td>
</tr>
<tr>
<td>Name</td><td>Description</td>
</tr>
<tr>
<td>Name</td><td>Description</td>
</tr>
</table>
ってかんじです。

#だいぶスレ違いすみません。
0426nobodyさん2007/04/19(木) 22:15:09ID:3qk/G7nZ
>>424
レスありがとうございます。

>SQLが複雑になっても1回のクエリにした方が
>大抵の場合は速いのでDBへのクエリ発行は基本少なくした方が良い

やっぱそうですよねー
まだ1度で全てやったことはないので勉強がてら頑張ってやってみようと思います。

>配列でとるかオブジェクトでとるかは好みでいいと思うが

ではオブジェクト慣れしてないので配列で頑張ってみます。
0427nobodyさん2007/04/19(木) 22:26:41ID:???
3回に分けてクエリ発行するほうが面倒でない?
0428nobodyさん2007/04/19(木) 23:40:32ID:0KeZVqYA
はじめまして、ほんとくだらなくて申し訳ないんですが

SimpleXMLのasXML()を使ってxmlファイルを作成する際に、
インデントさせた形でxmlファイルに書き込むにはどうすればよいですか。

$xml = simplexml_load_file('example.xml');
$a = $xml->addChild('a');
$b= $a->addChild('b', 'hoge');
$c = $a->addChild('c','fuga');
$xml->asXML('example.xml');

example.xml:

<a><b>hoge</b><c>fuga</c></a></a>
↑これを

<a>
  <b>hoge</b>
  <c>fuga</c>
</a>
↑このように整形した形でファイルに
書き込見たいのです。
0429nobodyさん2007/04/19(木) 23:47:20ID:???
>>428
残念ながら仕様なので無理ですね。
0430nobodyさん2007/04/19(木) 23:47:20ID:???
\nと\t
04314282007/04/20(金) 00:07:56ID:b3irjh4D
>>429さん、>>430さん
すばやいレスありがとうございます。
仕様なら仕方ないですね。
ほかの方法であたってみます。
ありがとうございました。
0432nobodyさん2007/04/20(金) 00:09:40ID:???
simplexml使ったこと無いけど
grepで確認してSimpleXMLElementからオーバーライド
0433nobodyさん2007/04/20(金) 00:19:50ID:SGW4zUZi
session.save_path は、パスの深さが 2 よりも大きい場合、
session.gc_probability, session.gc_divisor の設定では
自動で GC が行われないということですが、

/var/tmp // 自動で GC される
/home/usr/tmp // 自動で GC されない

という解釈でよいのでしょうか?
0434nobodyさん2007/04/20(金) 00:31:36ID:???
>>428
DomDocument->dump_file()なら第一引数をTRUEにすれば
整形されるらしいから、そっち使えば
0435nobodyさん2007/04/20(金) 01:19:08ID:???
チーッス
array(
array('a', '1'),
array('b', '2'),
array('x', '5')
)
と言う配列を手っ取り早く
array(
'a' => '1',
'b' => '2',
'x' => '5'
)
にする方法はないかな?
ヨロシク!
0436nobodyさん2007/04/20(金) 01:20:37ID:tutvnVSF
IDだしとくぜ
0437nobodyさん2007/04/20(金) 01:23:30ID:???
>>436
配列の要素と中身を入れ替える関数あるから調べてみれ
0438nobodyさん2007/04/20(金) 01:24:22ID:???
array_flip
0439nobodyさん2007/04/20(金) 01:27:16ID:???
ビットで

010010

100010
を処理して

110010
という感じの処理をしたいのですが、これをなんと言うのですか?
またやり方を知りたいです。

ビットを立ててフラグを管理するようなのを見るのですが、やり方がわかりません。
0440nobodyさん2007/04/20(金) 01:28:07ID:???
>>435の上下って同じ意味なの?
上の形は初めてみた。
0441nobodyさん2007/04/20(金) 01:46:45ID:VuqLwFSH
沖縄県の方へ(命に関わる注意事項です)

沖縄県での選挙ですが、どうか民主党だけは避けてください。県民の生命に関わる可能性があります。
民主党の最大の公約は一国二制度(※)ですが、一度「一国二制度 沖縄 三千万」で検索をお願いします。
この際、民主党のHPで調べても良いです。以下の注釈↓と矛盾することは書いてないはずですから…

※一国二制度
 簡単に言えば沖縄を中国と日本の共有物にし、そこに3000万人の中国人を入植させます。
 (つまり沖縄人口の 96% を中国人にして、実質、沖縄を中国人の居住地とします。)
 さらに「自主」の名の下、沖縄で有事が起きても自衛隊は干渉できません。
 3000万人の中国人が、少数派となった130万人の日本人に何をしても、です。
 そして反日教育を受けた中国人の反日感情の強さは、ほとんどの日本人の理解を超えるものです。

今回の選挙で民主党が勝った場合、「自主」「発展」を連呼しつつ段階的に進めていくことになります。
自主と言っても、自主を認めるのが「住人の96%が中国人となった」後だということに気をつけてください。
発展と言っても、新沖縄の少数派となった「少数民族日本人」の発展ではないことに気をつけてください。
0442nobodyさん2007/04/20(金) 01:49:49ID:???
完全にスレ違いだが
XMLってエラーあるとページ表示されんのかな?
0443nobodyさん2007/04/20(金) 01:51:30ID:???
状況がわからんが、XMLを誰に食わせて、その結果を誰に渡してページを表示するんだ?
04444422007/04/20(金) 01:57:19ID:j6HhIKSH
ちゃんとした質問になりそうなのでID表示します。

>>443
CSV形式のファイルをPHPを使ってXMLに書き出そうと思うのですが、
なかなかうまいこといかずに苦戦中・・・

XML宣言してるのに形式が.phpだから表示されなかったり・・・
0445nobodyさん2007/04/20(金) 02:01:22ID:???
>XML宣言してるのに形式が.phpだから表示されなかったり・・・
そりゃ当たり前だ。
htaccessで拡張子phpをxmlとして動作させるようにしないと。
phpでechoでxmlを出力してるなら、headerでxml指定すればいい。
0446nobodyさん2007/04/20(金) 02:03:50ID:j6HhIKSH
>>445
.xmlで実行させてみたんだけど
宣言の<?xml〜?>がPHPとして認識されてしまう・・・

とりあえずヘッダーで出力してみることにします
0447nobodyさん2007/04/20(金) 02:08:58ID:???
>>439
ビット演算
>>440
ちゃうよ
>>446
別に妥当なXML文書が出力できてればPHPで実行しようと問題ないだろ
0448nobodyさん2007/04/20(金) 02:09:34ID:j6HhIKSH
<?xml version="1.0" encoding="utf-8" ?>
- <rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule";>
- <channel>
- <item>
<title>最新データをXMLで出力</title>
<link>http://www.yahoo.co.jp/<;/link>
<pupDate>2007/4/20</pupDate>
</item>
- <item>
<title>CSVで保存してPHPで出力</title>
<link>http://www.yahoo.co.jp/<;/link>
<pupDate>2007/4/19</pupDate>
</item>
- <item>
<title>XMLでも出力</title>
<link>http://www.yahoo.co.jp/<;/link>
<pupDate>2007/4/18</pupDate>
</item>
- <item>
<title>役にたつかな?</title>
<link>http://www.yahoo.co.jp/<;/link>
<pupDate>2007/4/15</pupDate>
</item>
- <item>
<title>オナかすいた</title>
<link>http://www.yahoo.co.jp/<;/link>
<pupDate>2007/4/13</pupDate>
</item>
</channel>
</rss>
0449nobodyさん2007/04/20(金) 02:10:07ID:j6HhIKSH
のような感じに出力できました

更新ボタン押すたびに

XML ページを表示できません
スタイル シートを使用した XML 入力は表示できません。エラーを訂正してください。 [更新] ボタンをクリックするか、または後でやり直してください。


--------------------------------------------------------------------------------

指定したエンコードはシステムでサポートされていません。リソース 'http://localhost/XML/make.php' の実行エラーです。



というページが表示されるが・・・orz
0450nobodyさん2007/04/20(金) 02:11:27ID:???
"xml宣言 php"でぐぐれ
0451nobodyさん2007/04/20(金) 02:13:37ID:???
450は無しで
0452nobodyさん2007/04/20(金) 02:14:07ID:???
>>440
お前は何を言ってるんだ。
上は多次元配列、下は1次元の連想配列じゃないか。
0453nobodyさん2007/04/20(金) 02:14:36ID:???
>>449
じゃ出力文書のエンコードが間違ってんだろ
0454nobodyさん2007/04/20(金) 02:16:09ID:tutvnVSF
>>437,438
元のは必ず多次元配列になるんでarray_flipは使えないモヨリ。
0455nobodyさん2007/04/20(金) 02:17:56ID:???
array_mapとarray_walkを試して見たのだが
キー部分が変えられなかった。
0456nobodyさん2007/04/20(金) 02:20:02ID:???
はいヒントっつーか答え。これみてよく考えてください。

<?php
header('Content-Type: application/xml; charset=utf-8');
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
?>
<rss>
</rss>
0457nobodyさん2007/04/20(金) 02:21:30ID:j6HhIKSH
>>456
あー、
なるほど、charsetのところに文字コードの変数じゃなくて別の変数を当てはめていたのが原因でした
0458nobodyさん2007/04/20(金) 02:22:09ID:???
何当てはめてたんだよ('A`)
0459nobodyさん2007/04/20(金) 02:22:38ID:j6HhIKSH
>>458
ちなみにこんなコードになってます
http://www.dotup.org/uploda/www.dotup.org2686.txt

こりゃおかしくなるわwwwwwwww
0460nobodyさん2007/04/20(金) 02:23:38ID:???
>>459
なんじゃこりゃあああああw
0461nobodyさん2007/04/20(金) 02:25:59ID:???
まぁ頑張った形跡は伺えるな。
0462nobodyさん2007/04/20(金) 02:26:32ID:j6HhIKSH
どこか直したらいいところがあればアドバイスplz
0463nobodyさん2007/04/20(金) 02:34:29ID:???
>>462
普通はxml関数使って出力するけど、別にいいんじゃない?
思い通りに動けばおk
0464nobodyさん2007/04/20(金) 02:37:42ID:???
PHP6じゃ<?xmlではじまってるか<?phpではじまってるかで判断してくれないかね。
xhtml使ってる身としてはいちいち書くのだるい・・・
0465nobodyさん2007/04/20(金) 02:38:03ID:j6HhIKSH
>>463
あー・・・
リファレンスにはxmlファイル取得と解析関係のしか載ってなくて
xml出力の関数もあるんですかorz
0466nobodyさん2007/04/20(金) 02:44:24ID:???
short_open_tagだかの設定があるだろ
04674182007/04/20(金) 03:07:22ID:/zvZod/N
>>420
php4.4.6でした・・・。
ありがとうございます。サーバにインストールしたのが
WINDOWS版で、UNIX版でなかったからでしょうか。
また奮闘して、インストールしてみます。
04684392007/04/20(金) 03:26:22ID:???
>>447
ビット演算って言うんですね、ありがとうございます。

0101 & 0011 = 0001
0101 | 0011 = 0111
0101 ^ 0011 = 0110
~0101 = 1010
0101 << 1 = 1010
0101 >> 1 = 0010

あとは各計算方法の名前を教えて頂ければ嬉しいです。
0469nobodyさん2007/04/20(金) 03:29:29ID:???
マニュアルに全部書いてあるので読んで頂ければ嬉しいです。
0470nobodyさん2007/04/20(金) 05:08:42ID:4Ur3eUeX
オブジェクト指向にもふれとこうとおもって、
いろいろ参考サイトみているのですが、こんな書き方がありました。

function action(){
   $this->soul() and $this->weight *= 0.9;
   $this->weight < $this->first_weight * 0.6
     and $this->soul(true);
以下略

はじめてみる書き方なのですが、
(条件文でもなさそうなのに論理演算子や比較演算子が)
これは一体どういった意味なのか教えていただけませんでしょうか?
04714392007/04/20(金) 05:45:49ID:???
>>469
了解です、読んでみまっす
0472nobodyさん2007/04/20(金) 05:55:54ID:???
>>468
もっと言えば>>439は論理和。
& 論理和
| 論理積
^ 排他的論理和
~ ビット反転
<< 左シフト
>> 右シフト
あたりがポピュラーな名称かな?
シフトで切り落としたビットを逆方向から挿入するローテイトなんて演算もあるけどこれを実装している言語はほとんどない。

>>470
実はオブジェクト指向とは全然関係ない。
あまりそういう書き方はされないが論理演算子のロジックを利用した条件式。
論理積は全てが真でなければ真とならないため、偽があった時点で評価を止め、偽を返す。
論理和も同様、どれかが真であれば真となるため、真があった時点で評価を止め、真を返す。
論理和の方は「fopen() or die();」などの形でしばしば利用される。
つまりは「$this->soul() and $this->weight *= 0.9;」は「if($this->soul()) $this->weight *= 0.9;」と等価。
ぶっちゃけif文の方が条件分岐専用なので若干(本当に若干だが)効率は良い。
04734722007/04/20(金) 05:57:05ID:???
ごめんこれ逆ねorz
& 論理積
| 論理和
04743752007/04/20(金) 05:59:38ID:???
わたしの質問の肝心なとこには誰も答えてない件について
0475nobodyさん2007/04/20(金) 06:23:11ID:???
>>281

AddModule mod_php5.cはWINには関係ないからスルーしていいよ
0476nobodyさん2007/04/20(金) 06:24:51ID:???
>>474
どうしたら教えてもらえのか書き方を勉強してきたほうがいいよ。
インターネットのネチケットについてのサイトをみてこい
0477nobodyさん2007/04/20(金) 08:25:54ID:???
>>470
条件分岐のつもりで書いたぽいけど
and演算は代入よりも優先順位低いから
全く意味なしコードになってる予感

and と && は違うのよ
0478nobodyさん2007/04/20(金) 08:45:58ID:???
>>477
低いからこそのだよ?
高かったら代入が左に有ったとき論理値が入っちまう。
0479nobodyさん2007/04/20(金) 09:25:32ID:???
>>435
内側の配列をマージってことだからループなりでarray_merge

>>470
if (funcA() && funcB());
Aがfalseなら式全体はfalseであることが確定するので
Bは実行されない。これを短絡演算と言う。
ifの条件式内でなくても利用できる。
0480虚弱PHP2007/04/20(金) 10:25:05ID:???
>>470
それ書いたの、元Cか元BASICの年寄りプログラマーじゃない?w
0481nobodyさん2007/04/20(金) 10:25:42ID:???
>>375
君の質問は点数評価するなら10点なのでとりあえずソースを示してくれ。
0482nobodyさん2007/04/20(金) 12:00:55ID:???
session_start();ってこれを書いた後からセッションが有効になるのですか?
それとも、ファイルの冒頭に必ずかかなければいけないとか?
0483nobodyさん2007/04/20(金) 12:09:06ID:???
session_startで$_SESSIONに値が復元される
0484nobodyさん2007/04/20(金) 12:10:05ID:???
>>483
意味分かりました。ありがとうございました。
0485nobodyさん2007/04/20(金) 13:06:25ID:w/S09GXX
>>272
レス遅くなりました。ありがとうございました。
おかげで解決できました。
そのままreadfile関数を使わせていただきました。
0486nobodyさん2007/04/20(金) 13:21:29ID:???
アバター作成ツール作りたいのですが、ググっても参考になるサイトがありません。
基本的には画像の重ね合わせだと思うのですが(GDだけでいける?)。。
参考になるサイトもしくは過去に作った方いらっしゃれば(途中まででも)見せていただけませんでしょうか?
0487nobodyさん2007/04/20(金) 13:28:17ID:???
GDだけでもいけるけど、ImageMagick使ったほうが楽
0488nobodyさん2007/04/20(金) 13:32:03ID:???
>>486
昔ちょっとやろうとして面倒だからやめたけど、基本的にはあってるよ。
たとえば、基本フレーム、体、服、アクセサリを用意して、それぞれを同じ大きさであわせておく。
このとき、1色を透過色として使うので、その色はほかで使わない。
後はそれぞれを階層的に重ねていく(フレーム->体->服->アクセサリの順)
で、出力。
ただ、これを表示のたびにリアルタイムでGDでやろうと思うとごっつ重いので、
決定したときに一枚の画像で出力しておく。
という感じかな。
04894862007/04/20(金) 13:47:01ID:???
>>487-488
ありがとうございます
それにしても参考になるサイトが少なすぎます…(調べ方が悪い?)
GD アバター (PHP)
ImageMagick アバター
でもでないですね…

>リアルタイムでGDでやろうと思うとごっつ重い
なるほど
参考になります。
0490nobodyさん2007/04/20(金) 13:58:07ID:???
参考になるサイトって言っても
考え方だけであとは作業的なもんだからなあ…

アバターで検索かけてもそんなピンポイントの
内容を記したところなんてそうないだろう。
やるんなら画像とか透過とか
0491nobodyさん2007/04/20(金) 15:15:45ID:???
>>489
http://jp.php.net/gd
ここに書いてあることだけで十分できるだろ
04924702007/04/20(金) 16:25:57ID:4Ur3eUeX
レス遅れてすみません。
皆さん教えていただきどうもありがとうございました。
確かにor die()とか似たようなものはよくみますね。
短絡演算というのですか。
あまり使われないやり方とはいえ、大変勉強になりました。
0493nobodyさん2007/04/20(金) 17:26:43ID:???
<html>
<head><title>テスト記録</title></head>
<body>
<table>
<tr>
<th>番号</th><th>名前</th><th>点数</th>
</tr>
<tr>
<td><center>1</center></td><td>鈴木</td><td>67点</td>
</tr>
<tr>
<td><center>2</center></td><td>加藤</td><td>74点</td>
</tr>
<tr>
<td><center>3</center></td><td>高橋</td><td>53点</td>
</tr>
</table>
</body>
</html>

こういうWebページがネット上にあったとして
点数が69点以下の人のみの表を表示するPHPプログラムを作りたいとき
どういう方法が良いのでしょうか
要素を配列に取り込む方法があったりするのでしょうか?
0494nobodyさん2007/04/20(金) 17:31:04ID:???
if ($tensu < 69){
echo バカ;
}else{
echo ^^;
}
0495nobodyさん2007/04/20(金) 17:35:25ID:???
>>493
すでに作られた静的HTMLを元に動的ページにしようとしてるのか?
HTMLからデータ抽出する方法もない事もないが、
普通は事前に手作業等でデータだけを抜き出して
CSVファイルなりDBなりに保存するもんだ。
HTMLからのデータ抽出は
・表示されてるHTMLからのコピペ
・HTMLソースをテキストエディタで置換
等で大した手間でもなくできるだろ。
0496nobodyさん2007/04/20(金) 17:58:05ID:???
>>493
>>495のいうとおりデータを抜き出したものを作るのが妥当。
どうしてもやりたいのなら、
fileあたりで配列に読み込んだあと、
正規表現で該当行の必要なデータを抜き出してそれを成形して表示する。
0497nobodyさん2007/04/20(金) 18:02:18ID:???
DBを使わずにPHPのみで、

Yamada: Taro
Suzuki: Ichiro
John: Smith

のデータが入ったテキストファイルを、
例えば、2行目のSuzuki: Ichiroを削除したり、
Suzuki: Suzukiro みたいに変更したりできますか?
file()で配列にすればいいのかと思うのですが。
0498nobodyさん2007/04/20(金) 18:09:16ID:???
>>497
いいとおもうならやってみればいいんじゃないですか?
0499nobodyさん2007/04/20(金) 18:12:21ID:???
そう言われてみりゃそうなんでとりあえず試してみます
0500nobodyさん2007/04/20(金) 19:01:53ID:ebFeEZPT
正規表現がイマイチ理解できん…

$a = abcde72;

この72の部分だけ変数にして取り出したいんだがどうすればいいんだ?
0501nobodyさん2007/04/20(金) 19:05:49ID:???
自分がどう書いてできなかったのか、まずはソースを出せよ。
05025002007/04/20(金) 19:10:51ID:???
>>501
スマソ

$a = abcdef76afrew

$a1 = '[0-9]';

$no1 = strpos($a,$a1);
$no2 = $no1 + 1;

$str = substr($str, $no1, $no2);

echo $str;
■ このスレッドは過去ログ倉庫に格納されています