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

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

■ このスレッドは過去ログ倉庫に格納されています
00011様2006/08/23(水) 00:54:52ID:uM5Jzzy0
PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0521下らねぇ質問ですが、、、2006/08/30(水) 19:45:34ID:???
今CSVのデータをつかってサイトを構築してるのですが、
これをSQLなどのデータベースに移行するのは難しいのでしょうか?
むずかしいのなら業者に頼みますが、個人でもできる程度ならがんばりたいのですが・・・
0522軟式PHP2006/08/30(水) 19:51:19ID:???
>>520
素直にcron使ったほうがよさそう。

>>521
難しくない。データベースの種類を書いてないのでアドバイスしようがないが
大抵のDBにはインポート機能がついてる。PHPの質問じゃない気がするんだが…。
0523nobodyさん2006/08/30(水) 19:54:13ID:???
>>494
> >>486さん、詳しく説明して頂いて感謝致します
本職コンサルじゃないんで「多分そんな感じ」程度です。

> 1つのwebサイトなら納期1〜2ヶ月で計30万〜150万くらいが相場なのですかね?
あくまで推測です。コンサル自体の相場と作業分量と人的労力からこんなもん?と計算しただけ。
実際のとこはホントのコンサルに見積もってもらってください。

> 要求定義書、基本設計仕様書、詳細設計仕様書、運用マニュアル、保守マニュアル、運用データ統計表
いずれも「そのもの」の形の書類は無いです。これは大雑把にカテゴリ分けしただけで、
実際はそれぞれが複数の書類によって構成されることになると思います。
例えば基本設計の仕様書については、プログラムやDBテーブルなどの基本仕様書の他、
ページ遷移図、状態遷移図など多数の資料が添付されていないとダメでしょう。
運用データの統計は、1日のアクセス量、ピーク時のアクセス量、回線転送量、
1アクセス毎のCPU負荷、DBの総データ数、クエリー発行数など、実際の運用から
分かっているデータを統計して資料化しないといかんでしょう、ってことです。
アクセス量に関しては要求定義の中にも「当初見積もり」と「将来的な推定値」が
汲まれてなければいけないと思いますが、その上で実際の運用時のデータも必要です。
そこまでちゃんと資料化してないと「改変も考慮したレベルで仕様が把握されている」とは言えないと思います。

ま、通常のコンサルのやってる「システム再構築の前半部分の手順」そのものだと思うので
見積もり予測はそこから算出しています。
0524nobodyさん2006/08/30(水) 19:58:32ID:1H+VLBSI
>>520
出来なくはないが激しく迷惑
0525nobodyさん2006/08/30(水) 20:00:30ID:???
>>520
一般的にはcronで定期的にPHPを実行→指定時間なら送信
って作り方をする。
タイマーみたいなマネをするとそのPHPが10分ずっと動きっぱなしになってしまうので大迷惑。
0526nobodyさん2006/08/30(水) 20:02:23ID:???
>>515
画面のフォーム形式やボタンと操作方法、画面遷移などについて定義した設計書かと。
0527nobodyさん2006/08/30(水) 20:06:59ID:???
>>505
匿名掲示板でどうやってお金のやり取りをするのか興味あるなー
0528nobodyさん2006/08/30(水) 20:31:34ID:???
プラチナカードがきくPHP屋さんいますか?

youTUBEみたいなのつくって欲しいです。 おいくら?

0529nobodyさん2006/08/30(水) 20:48:20ID:???
ここは依頼スレじゃないです
0530nobodyさん2006/08/30(水) 21:12:46ID:???
>>529
おめーにきいてねー    おいくら?

0531nobodyさん2006/08/30(水) 21:24:45ID:???
3億円
0532nobodyさん2006/08/30(水) 21:53:36ID:???
>>508
$hoge2 = $hoge;
0533nobodyさん2006/08/30(水) 22:06:18ID:???
結果をセットしてあるクエリから決まった行番号から行番号までをPHPで取得したいんですが
どうすれば効率がよいですか?
今は$cntと$startと$endを作って
for($cnt=0;$date=mysql_fetch_object($hoge);$cnt++){
if($cnt>=$start && $cnt<=$end){・・・・・・・・・
こんな風にやってcntがstartからendまで表示させるようにしてるんですが
もっとよさそうな書き方があると思いまして
0534nobodyさん2006/08/30(水) 22:19:41ID:VJ9Gj9KK
意味不明
0535nobodyさん2006/08/30(水) 22:21:09ID:1H+VLBSI
>>533
どうせSQLを使うならSQL側で処理する方が良いですよ
検索結果からの順番ならLIMITでも使ってくださいな
0536nobodyさん2006/08/30(水) 22:21:32ID:???
行番号の範囲を指定してSELECTすれば良いんじゃないか?
0537nobodyさん2006/08/30(水) 22:28:26ID:???
ここはほんとレベル低いな。。。
0538nobodyさん2006/08/30(水) 22:32:00ID:???
>>537
スレタイ
0539nobodyさん2006/08/30(水) 22:55:46ID:H9L03cAN
関数の中から、
使ってるローカル変数のリストを取得することはできますか?

func(){
$hoge = 1;
$fuga = 2;
(処理)
}

処理を行うと、hogeとfugaを取得するような感じです。
0540nobodyさん2006/08/30(水) 23:08:40ID:???
get_defined_varsでアサーリできますた
0541nobodyさん2006/08/30(水) 23:33:30ID:3wkmyd6L
<?= $_GET['test'] ?> というプログラムで、
test.php?test=%00 と呼び出すと、\0 と表示されるのです。

別の言い方をすると、
<?= urlencode( $_GET['test'] ) ?> というプログラムで、
test.php?test=%00 と呼び出すと、%00 ではなく %5C0 と表示されるのです。

何とかならないでしょうか。
0542nobodyさん2006/08/30(水) 23:37:51ID:UvEI8vY7
レンタルサーバとかでphpが動作するがセーフモードとして

と書かれていますが、本屋さんに売っているphpの入門書どおりのphpのインストールしたやつと
何がちがうんですか?
0543nobodyさん2006/08/30(水) 23:40:59ID:???
>>542 特定の関数でファイルのオーナーを見るようになる
0544nobodyさん2006/08/30(水) 23:44:05ID:???
>>541
それはそうです。0x00はnull文字ですから¥0 が返されます。
0が欲しいなら test.php?test=%30 で呼び出さないと。
0545nobodyさん2006/08/30(水) 23:47:30ID:???
>>535
LIMITでうまくできました
ありがとうございます
05465422006/08/30(水) 23:48:07ID:???
>>543さん私にはむずかしいです。まだまだ勉強不足ってことですね
ちょっと調べてみましたけどいまいちわかりません。
あんまり使わない関数だらけなので、メールフォームや掲示板スクリプトなら気にすることもないですよね。
http://php.s3.to/man/features.safe-mode.functions.html

05475162006/08/30(水) 23:52:29ID:???
ぎぶみーあんさー
0548nobodyさん2006/08/30(水) 23:53:05ID:???
>>544 >>544 漏れはエスケープされていない\0というバイナリがほすぃのです。
もしくは引数でURLエンコードされた文字列を渡した場合、
展開しないで変数に入れる方法はアルでしょうか?
urldecodeで自前で展開すれば大丈夫なのです。

>>546 ファイル操作しなければ大丈夫です
0549nobodyさん2006/08/30(水) 23:53:15ID:???
>>493
IPでいいんじゃないの?
ある一定の短い期間に、同じIPから偶然別々の人が
その投票システムで投票する確率なんてかなり低いと思う。
0550nobodyさん2006/08/30(水) 23:57:47ID:???
>>439 クッキーのほうがよさげ。
クッキー食べないブラウザははじくようにして。
0551nobodyさん2006/08/31(木) 00:04:28ID:???
Oh, why not?
05525162006/08/31(木) 00:06:53ID:???
自己解決しました。
なんか基本を勘違いしてました。
0553nobodyさん2006/08/31(木) 00:24:08ID:???
うちの事務所のPCは、外に出る時のグローバルIPは全部いっしょだ
0554nobodyさん2006/08/31(木) 01:07:31ID:???
>>553みたいな環境もあるから>>550のいうとおりクッキーが一番
現時的かも
0555nobodyさん2006/08/31(木) 01:30:13ID:???
同一グローバルIPは、同じ地域のケーブルTV接続が丸ごと一緒だったりして難儀なんだよねー。
ただ、クッキーはブラウザでクリアして再投稿を繰り返せるからこれもどうかと思うけどね。
実際によくやられるし、これ。
こういう端末識別って難しいよ…
0556nobodyさん2006/08/31(木) 01:37:17ID:???
>>493
いっその事会員制にするって手もあるな。
ユーザID(メルアドでもOK)+パスワードで認証。
これが今のところ確実な方法じゃない?

でも、ユーザ登録の部分を作る手間と登録させるユーザの手間、そして
同じユーザが別のメルアドで登録してきたら防ぎようが無いという諸刃の剣
0557nobodyさん2006/08/31(木) 01:43:59ID:???
おまえらレベル ひっく ・・・

0558nobodyさん2006/08/31(木) 01:46:29ID:???
>>557
ではレベルの高い解決策を教えてくれたまえ
0559nobodyさん2006/08/31(木) 01:47:52ID:???
>>557
大丈夫か? しゃっくりには水をゆっくり飲むといいらしいぞ。
0560nobodyさん2006/08/31(木) 02:12:08ID:???
>>555 クッキーのクリア手間でしょ?
05615572006/08/31(木) 02:26:38ID:???
PHPごときの下級Pではしゃいでる奴まだいんだww

0562nobodyさん2006/08/31(木) 02:28:12ID:???
>>560
OperaやFirefoxではボタン一発だよ
0563nobodyさん2006/08/31(木) 02:36:17ID:???
>>561
かなりの高級言語だと思うぞ
0564nobodyさん2006/08/31(木) 02:40:06ID:???
多分CとかJavaとかとりあえずワザワザ毎回コンパイラ通さないと実行できない
言語はどんどん廃れていくだろうな。余程の速度を求められるシステム以外では
意味がないだろう。

おっと!インタプリタだってコンパイルしてるじゃんプギャーなんて突っ込みは無しだぜ!
0565nobodyさん2006/08/31(木) 02:50:03ID:???
>>557は下級言語の意味を知らないんだろ。
しょぼいからとかダサイからとかで、
下級言語とかそういうニュアンスじゃないぞ?
簡単に言えば、より人間がより理解しにくい言語を下級言語というんだ。
つまり人間が理解できないような難しい言語ほど下級言語なんだよ。
よく覚えときな。
0566nobodyさん2006/08/31(木) 02:58:33ID:???
>>565
上げ足取りのつもりは無いけど、本当は低級じゃないか?
0567nobodyさん2006/08/31(木) 03:00:32ID:sPSpAFNc
fwriteとfputsの違いがわかりません。
どちらを使っても機能はまったく同じなのでしょうか?
0568nobodyさん2006/08/31(木) 03:00:39ID:???
561のアレって下級「プログラム言語」じゃなく下級「プログラマ」なんじゃ・・・・
0569nobodyさん2006/08/31(木) 03:01:38ID:???
>>567
マニュアルに「fputs - fwrite()のエイリアス」とあるように、中身は全く一緒。
0570nobodyさん2006/08/31(木) 03:06:37ID:???
ありがとうございます。エイリアスとはそういう意味だったんですね。
0571nobodyさん2006/08/31(木) 03:55:32ID:???
>>568
後者ならPGといってもらいたいな。
まぁ何が言いたいかよくわからないやつだが、
夏も終わりだし暖かい目で見守ってやろうじゃないの。
0572nobodyさん2006/08/31(木) 04:05:57ID:???
「PHPごときの下級プログラマではしゃいでる」?
シャッチョサン、ニホンゴヘンデス
0573nobodyさん2006/08/31(木) 04:29:48ID:???
>572だとしても、「下級プログラマ」が何を指すのかさっぱりだ。
0574nobodyさん2006/08/31(木) 04:54:38ID:???
$カカロット=下級生物;
$べジータ=高等生物;

$phpぷろぐらま=$カカロット;
$C=$ベジータ
0575nobodyさん2006/08/31(木) 05:02:04ID:???
質問です。

$a = array("aaa","bbb","ccc");
$a = implode("",$a);
echo $a;

とやった場合にaaabbbcccと思ったとおりには出てくれるのですが、
これはPHPの正常な機能なのでしょうか?
$a = implode("",$a);この行で、$aが自身ではなく、
1つ前の$a = array("aaa","bbb","ccc");を評価しているようですが、
本当にこんなんでいいのだろうか?と思ってしまって・・・
プログラムはPHPが始めてなのですが、これは他の言語でも正常なのでしょうか?
05765752006/08/31(木) 05:06:36ID:???
すみません。日本語がおかしかったですね。
ようするに、曖昧な気がしてならないのですが、
このような使い方は普通にするのでしょうか?
普通は別々の変数に分ける気がするのですが、
前者の$aを使わない予定なら、こういう使い方もありかなと思いまして。
0577nobodyさん2006/08/31(木) 05:28:53ID:???
>>574
>$aが自身ではなく、 1つ前の$a を評価しているようですが

当たり前だろ。
変数はなぜ「変数」という名前なのか、よく考えてみたまえ。

ただまあ、配列から配列でない変数にする場合は、
同じ変数名のままだとなんとなく気持ち悪いけどな。
0578nobodyさん2006/08/31(木) 05:35:14ID:???
>>577
ちょ…、アンカー間違ってるぞ。カカロット。
0579nobodyさん2006/08/31(木) 05:46:21ID:???
>>575
PHPに限らずほとんどのプログラム言語でそういうもの。
$a = 式; の式の部分では1つ前の行までの状態を元に実行が行われ、
その結果が改めて $a = の部分で$aに格納され直すことで内容が更新される。
05805752006/08/31(木) 05:48:08ID:???
>>577
>変数はなぜ「変数」という名前なのか、よく考えてみたまえ。
なるほど。理解できた気がします。

>ただまあ、配列から配列でない変数にする場合は、
>同じ変数名のままだとなんとなく気持ち悪いけどな。
ではこういうケースでは分けることにします。

どうも回答ありがとうございました。
05815752006/08/31(木) 05:49:28ID:???
>>579
>PHPに限らずほとんどのプログラム言語でそういうもの。
これを聞いて安心しました。
PHPは曖昧だとか、よく他の掲示板で見るので、
こういうのがPHPの曖昧なとこかな?と勘違いしていました。

ご丁寧に説明していただきありがとうございます。
05825792006/08/31(木) 05:49:39ID:???
ただ、厳密な他の言語では上の$aと下の$aがデータの形式が違う(この場合は配列とスカラー)ことで
型エラーを起こす場合があるので注意。
PHPでは$aとするだけであらゆるデータ型を格納可能なので、そういった融通のある使い方ができる。
0583nobodyさん2006/08/31(木) 05:49:59ID:???
>575-576
> $aが自身ではなく、 1つ前の$a を評価しているようですが
ひょっとして、= を数学的な記号(左辺と右辺が同値)と勘違いしてないんだろうね?
ttp://jp.php.net/manual/ja/language.operators.assignment.php

> このような使い方は普通にするのでしょうか?
変数名に合った値なら、あり得る。
変数の数を減らすためだけに、流用するのは変だけど。
05845752006/08/31(木) 06:04:19ID:???
>>582
>$aと下の$aがデータの形式が違う(この場合は配列とスカラー)ことで
>型エラーを起こす
ということは、将来他の言語も触ることを想定すると、
きっちり分けたほうが良さそうですね。

>>583
>ひょっとして、= を数学的な記号(左辺と右辺が同値)と勘違いしてないんだろうね?
仰る通り、勘違いしていたかもしれまん。

>変数の数を減らすためだけに、流用するのは変だけど。
変数の名前付けが下手で、よく他の変数名と似てしまうため、
悩んだ末に、減らそうと思ってしまいました。
他人にソースを見せるわけではないので、
別にどんな変数名でもいいんですよね…
ちょっと意識しすぎていました。

ということで、他の言語にも融通がきくように、
データ形式が違う場合はこのような使い方をしないように注意したいと思います。
その前にデータの形式を理解していないので、そこから勉強してきます。

ご丁寧にどうもありがとうございました。
0585nobodyさん2006/08/31(木) 07:00:34ID:???
PHPから始めてCとかJavaやると型がうぜーと感じてしまう…
0586nobodyさん2006/08/31(木) 07:30:15ID:???
でもPHPって型が融通ききすぎて、関数の戻り値で型が変わることがあって面倒だよね。
配列戻りの関数でFALSEとか返されると、いちいち型チェックのコード挟まないと
変なとこで実行時エラーになっちゃうんだよなー。
0587nobodyさん2006/08/31(木) 07:42:09ID:???
$a = "ABC";
$a[1] = "D";
0588nobodyさん2006/08/31(木) 07:55:07ID:???
>>585
俺も、PHPをちょっといじってからCをさわってみた。

どちらの言語も基本的には似ているので、Cを覚えるのにそんなには時間はかからなかった。
ただ、Cでは変数のデータ型を宣言して使う必要があったため、ちょっと面倒くさく感じた。

PHPでは特にデータ型を宣言する必要はない。
まあこういった曖昧さが万人受けする言語なんだとは思うけど。

あと、Cは毎回コンパイルしないと実行出来ないので、スムーズに開発が出来ないかな(初心者の考え?)。
まあ最終的にはPHPのようなインタプリタ言語だってコンパイルはしているけど、開発者が意識してコンパイラ通す必要が無い
ので、トライ&エラーによる開発が出来ると考えている。
0589nobodyさん2006/08/31(木) 08:14:01ID:???
Cで開発するときは大抵の場合、エディタ内蔵の統合開発環境を使うか、
開発用エディタのマクロに一発コンパイル→実行のコマンドを登録して使うんで、
ソース書く→その場でボタン一発でコンパイル即実行→エラーが出たらエディタがその行に自動ジャンプ
みたいな感じで、エディタ上で全部完結するんでトライ&エラーに関して特に面倒は感じないよ。
0590nobodyさん2006/08/31(木) 09:12:05ID:Pu8F0f0K
かれこれ1時間以上悩んでいるのですが、、よろしければアドバイス下さい。
RSS(XML)をPHPにて表示するプログラムを作っています。

<?php
$xml = simplexml_load_file("http://weather.livedoor.com/forecast/rss/3.xml";);
foreach($xml->channel->item as $item){
echo mb_convert_encoding($item->title, "Shift_JIS","auto")."<br>";
}
?>

上記は、ライブドアの天気予報を表示するもので、これは成功するのですが、
表示出来るXMLファイルと出来ないものがあります。
上記のソースには何が足りないのでしょうか?
0591nobodyさん2006/08/31(木) 10:08:54ID:???


  PHPプログラマっておまえら m9(^皿^)プギャーーーーー



0592nobodyさん2006/08/31(木) 10:30:55ID:???
PHPをCやJAVAやperlと比べてもしょうがないからな・・・
特性違うし。

入りやすい割りに(サーバーサイドで)できることが結構多い言語ってことでいいじゃん。
0593nobodyさん2006/08/31(木) 11:07:25ID:???
こんにちは。 次のようなループ処理の方法で良い方法が思いつかず四苦八苦しております。

$A = array(2,4,6,7,8,10,1,3,5,7,9); //例えば10個の値の入った配列があります
asort($A); //値をソートします(キーはバラバラに並びます)
for($i=0; $i<5; $i++){next($A); } //任意の回数ポインタを進めます

このポインタが進んだ状態でN回、配列をループ処理しようと思います。
foreachが一番スマートに書けるのですがその場合ポインタは自動的に先頭へ戻されてしまいます。

やはりポインタを進めるのではなくarray_pop($A);のように削り取るべきでしょうか。

よろしくお願いします。
0594nobodyさん2006/08/31(木) 11:09:00ID:???
何がしたいんだ?
0595nobodyさん2006/08/31(木) 11:13:09ID:DLfMY9o3
よくわからんがin_search()使えば良いのでは?
in_search(int,$A)
0596nobodyさん2006/08/31(木) 11:14:03ID:???
array_searchだった-;
0597nobodyさん2006/08/31(木) 11:15:26ID:???


   PHPプログラマっておまえら レベルひっくぅーーー

   m9(^皿^)プギャーーーーー


0598nobodyさん2006/08/31(木) 11:22:26ID:???
レスありがとうございます
>>594
データベースのソート出力を作っていまいた。
例えば 名前、性別、誕生日 と各項目があって20件ずつの出力という感じです。
その過程で、誕生日でソートとやると誕生日が若い数字順に出力する感じです。

ですが、40件目からの誕生日が若い順の出力の場合どのようにして中間地点からループを始めようか悩んでおりました。

>>595-596
ということはポインタを進めて、
foreachで先頭からループさせてnextした値と同値があれば出力という分岐を作るということでしょうか。

変な質問してすみません。
0599nobodyさん2006/08/31(木) 11:27:04ID:ED6qIG4m
1. function my_func( $str )
2. {
3. return echo '<p>' . $str . '</p>';
4. exit;
5. }
6.
7. my_func('TEST');

とかやると:
Parse error: syntax error, unexpected T_STRING [略] on line 7

となります。
パーサトークンがT_STRINGだったので、その行で文法エラーが無いか探してみましたが、どうてみも大丈夫なはずです。
なんで?
0600nobodyさん2006/08/31(木) 11:31:56ID:???
returnって()で括らなくてよかったんだっけ?
0601nobodyさん2006/08/31(木) 11:31:57ID:???
>>598
PHPでやるよりもDBにやらせた方が簡単だと思うけど
0602nobodyさん2006/08/31(木) 11:34:08ID:???
>>601
レスありがとうございます。
それが我ながらそう思うのですが、作成環境にDBが入っておらず(SQLiteも)
なんというかファイルからの読み込みで処理している状況です(効率が悪いのは重々承知です)。

DB環境の構築云々は検討中でしてphpでやる場合としてお願いしますm(_ _)m
0603nobodyさん2006/08/31(木) 11:34:36ID:???
>>599
それ出力するだけなら、return とexitがいらない。
06045992006/08/31(木) 11:35:37ID:ED6qIG4m
>>598
データベースのクエリでやらせたほうが簡単かと思うが。
とりあえずORDER とか LIMITを勉強するんだ!

>>600
大丈夫だと思いますが?

あ、それから my_func(1) のように文字列ではなく数値(INT)だとエラーでないや。
ますます謎。。
0605nobodyさん2006/08/31(木) 11:35:47ID:???
>>599
リターン以降の文は評価されない。
変数を返すわけではないのでその例だとリターンは不要
06065992006/08/31(木) 11:44:40ID:ED6qIG4m
>>603,605
それがこうしても同じエラーなんですよ。

function my_func( $str )
{
return array('hoge' => 'hogehoge', 'foo' => $str);
}

$bar = my_func('TEST');
0607nobodyさん2006/08/31(木) 11:47:34ID:???
>>606
なんもエラーでないが
0608nobodyさん2006/08/31(木) 11:49:41ID:???
>>602
先にソートして配列に入れ直してから、20〜39件目(もちろんページによる)をforで出力とか。
0609nobodyさん2006/08/31(木) 11:59:20ID:AfkjZNVX
正規表現で<body>から</body>まで抜き出す方法はあるのでしょうか。
<body>の書式が<body background="hoge">となっているケースもあるので対応の仕方がわかりません。
06105992006/08/31(木) 12:13:34ID:ED6qIG4m
>>607
詳しく書いちゃうとこんな感じ:

if (! isset($foo)) my_func ('エラーだよん');
↑ここで: Parse error: syntax error, unexpected T_STRING
0611nobodyさん2006/08/31(木) 12:15:17ID:???
>>609
まず、そのまんま「<body>から</body>までを抜き出す」正規表現は書けているのかい?
応用はその後だ。まずは自分の考えた正規表現を示せ。
0612nobodyさん2006/08/31(木) 12:22:01ID:???
>>610
---------------------------------
function my_func( $str )
{
return array('hoge' => 'hogehoge', 'foo' => $str);
}

$bar = my_func('TEST');
print_r($bar);

if(!isset($foo))
{
print_r(my_func('エラーだよん'));
}
---------------------------------
でひとまずエラーは出ない
これが動くか単体でテストして味噌
06135992006/08/31(木) 12:30:17ID:ED6qIG4m
>>612
テストしてみたんだけど、文字列をダブルクオーテーションで括るとエラー出ないよ。
die()でも同じ:

die('Error') → Parse error: syntax error, unexpected T_STRING
die("Error") → エラーでない

こんなこと初めて。
何でだろう……、考えられる原因はある?
06146092006/08/31(木) 12:31:22ID:???
>>611
一応やってはみてるんですが・・・
そうだ!
とりあえず<bodyから>まで抜けばいいんだ!
と思って spliti("<body.*>" , $src) ってやったらbody以前までがキレイに抜けました(;´Д`)
0615nobodyさん2006/08/31(木) 12:31:57ID:???
>>613
ひとまず環境とか書いてみれば?
0616nobodyさん2006/08/31(木) 12:36:07ID:???
>>613
俺もそれ経験してる。

___________________↓文字列が引用符で囲まれてない
$date = date ('Y-m-d);
die ('ふにゃふにゃ') → 当然エラー

俺の場合はこうだった。
エラー行のちょっと前のコードを確認してみ
06175992006/08/31(木) 12:38:39ID:ED6qIG4m
>>616
あ、マジだ・・・

PHPエラー教えてくれてデバックには便利なんだけど、直感的じゃないなぁ。
PHPエディタでも使うか。

本当にありがとうございました。
0618nobodyさん2006/08/31(木) 12:42:15ID:???
>>617
要するに >>612 で書かれてあったように、単体(現象が発生しない最小構成)で
検証スクリプトを試してなかったんだね。
はぁ… くだらね。
06195992006/08/31(木) 12:45:32ID:ED6qIG4m
>>618
そうですね……

私は別にベタ書きというわけではないのですが、単体でテストはしていません。
職業プログラマでもないし、好きなようにコーディングしています。

やっぱり単体でテストしてから、次に全体のテスト……という順番でテスト
すれば効率がよいのかなぁ?
06206092006/08/31(木) 12:46:16ID:???
$body = spliti("<body.*>" , $src);
$src2 = str_replace($body[0] , "" , $src);
$body = spliti("</html>" , $src2);

1行目で<body>以前を抜いて
2行目で<body>以前を消して
3行目で</body>以下を切り分ける

ってやったらできましたが・・・すごいムダのような・・・
■ このスレッドは過去ログ倉庫に格納されています