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

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

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

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

◆質問する時の注意
・ 自分の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
0685nobodyさん2007/03/02(金) 19:21:56ID:???
>>679
サニタイズ脳に答えるなんて親切だろ?

preg_replace("/\'|\"|\&|\<|\>/", "", $str);
0686nobodyさん2007/03/02(金) 19:28:28ID:???
>>679
高木さんのこのエントリーでも読んで少し勉強してきな。
http://takagi-hiromitsu.jp/diary/20051227.html
0687nobodyさん2007/03/02(金) 19:31:09ID:???
サニタイズ言うな言うな
0688虚弱PHP2007/03/02(金) 19:34:20ID:???
>>684
array_walk_recursive()
0689nobodyさん2007/03/02(金) 19:35:51ID:???
嫌サニタイザー多いな。
コーディングスタイルなんて人それぞれだろ?
06906792007/03/02(金) 19:36:16ID:???
>>685-688
みなさんありがとうございます。
いただいたソースとURLを参考に勉強します。
0691nobodyさん2007/03/02(金) 19:52:02ID:???
>>689
サニタイズ言うな黙れ
0692nobodyさん2007/03/02(金) 19:53:35ID:???
>>683
配列を回してそれぞれの要素に対して内容を判別して新たに配列を組みなおせば?
0693nobodyさん2007/03/02(金) 19:54:21ID:g1P/5yv2
PHPで主成分分析をしたいんですが、フリーで使えるライブラリを
ご存知の方いませんでしょうか?
行列計算に関しての情報が全然見つからなくて困っています。
下らない質問ですいません…。
0694nobodyさん2007/03/02(金) 19:55:17ID:???
>>693
検索した?
0695nobodyさん2007/03/02(金) 19:59:25ID:???
>>693
主成分分析ってどういう分析なの?
06966832007/03/02(金) 20:01:52ID:???
>>692
すみません、ちょっとよくわかりません。
私が考えていたのはif文を使って、
数字が同じなら / で区切り、数字が変わったら )+( で区切る様にする
という感じですが、その数字の判別をどうやってやるのかよく分からなくて、、、
0697nobodyさん2007/03/02(金) 20:05:58ID:???
>>694レスありがとうございます!

はい、PHPのマニュアルから探しはじめて、PEAR、PECL、
検索エンジンでも探したのですが見付かりませんでした…。
ごめんなさい。

>>695
クロス集計したデータを要約する統計的分析です。
いろんな項目を集約して、分類できそな値を見つけるのが目的です。
ttp://www5.ocn.ne.jp/~shinya91/csm/331csm_multi.html
0698nobodyさん2007/03/02(金) 20:06:21ID:???
>>696
1=A
とかっていうのは文字列なのかしら?
0699nobodyさん2007/03/02(金) 20:07:01ID:???
ヒント:配列とキー
07006832007/03/02(金) 20:09:53ID:???
>>698
そうです。
1-A,2-B,2-X,3-AB…
という感じで「半角数字=文字」の束がコンマ区切りで格納されています。
0701nobodyさん2007/03/02(金) 20:12:29ID:???
=でexplode
0702nobodyさん2007/03/02(金) 20:14:47ID:???
>>700
左辺も右辺も重複する場合があるって言うのが結構面倒そうですね
07036832007/03/02(金) 20:17:38ID:???
>>700
1=A,2=B…イコールの誤りですすみません
explodeすると
1,A,2,B,2,Cという感じにバラバラになってしまうので余計やりにくい様な
0704nobodyさん2007/03/02(金) 20:20:07ID:???
カンマなら配列要素の区切りだと思うだろ常識的に考えて
0705nobodyさん2007/03/02(金) 20:20:40ID:???
テンプレも読めない奴は氏ね、帰れ
07066832007/03/02(金) 20:32:41ID:???
すいません、死にます;;
0707nobodyさん2007/03/02(金) 20:33:07ID:???
$test = [];
for ($i = 0; $i < count($arr); $i += 2) {
$test.push({key: MODEL[$arr[$i]], val: $arr[$i+1]});
}
すべてカンマ区切りならこうすれば結構やりやすいんじゃないかと。
0708nobodyさん2007/03/02(金) 20:36:45ID:???
>>697
pearやpeclも調べてないんだったら厳しいね。(っていうか調べてたんなら最初から書いてね)
やり方分かってるなら自分でモジュール作ってみたら?
他の人も助かるかもしれないし。
0709nobodyさん2007/03/02(金) 20:44:33ID:???
>>708
ってか、投稿前に調べておくなんて常識だろw
調べないで投稿する方が異常なんだよ。つまりお前は異常。
07106832007/03/02(金) 20:44:33ID:???
先頭が必ず数字なので、正規表現使って先頭の数字を変数に入れて、
その数字が変われば次の処理にいく、という感じにしたいと思います。
0711nobodyさん2007/03/02(金) 20:46:59ID:???
>>709
死ねボケ
0712nobodyさん2007/03/02(金) 21:17:48ID:g1P/5yv2
>>708
書き忘れてすみませんでした。

ライブラリは無さそうですか…。残念ですが、自分で作ることにします。
PEARとPECLに登録されるようがんばります。
わざわざレスありがとうございました。
0713nobodyさん2007/03/02(金) 22:43:15ID:iNFjaYc/
MySQL 4.0を使用している環境でWebアプリを構築する場合、
PHP側が文字コードをMySQLの設定文字コードに合わせないといけないのでしょうか?

PHPのinernal encodingをEUC-JP、MySQLの設定文字コードをSJISにすると、
正常に検索が行えませんでした。
(LIKE %日本語% を発行すると、一部しか拾って来ませんでした。)
0714nobodyさん2007/03/02(金) 22:55:46ID:???
>>713
>>664
0715nobodyさん2007/03/02(金) 22:55:57ID:???
エンコーディング合わせろって話ではなくて?
0716nobodyさん2007/03/02(金) 23:00:08ID:???
>>713
検索前に検索文字列を変換しとけばいいじゃん
07177132007/03/02(金) 23:13:02ID:iNFjaYc/
3件も回答ありがとうございます。

>>714 さん
レンタルサーバで、MySQLの設定をいじることができません。

>>715 さん
PHPの内部エンコーディングをMySQLの設定文字コードに合わせたくないという事です。

>>716 さん
追加したデータは、EUC-JPで入っています。
INSERT時も内部エンコーディングEUC-JPのPGを使っているので、
データ自体、EUC-JPになっています。
ですので、検索時だけ対処しても駄目だと思います。
0718nobodyさん2007/03/02(金) 23:19:02ID:???
>>717
SJISのデータベースにEUCのデータを格納するんじゃねEEEEEEE
あなた馬鹿ですか。
0719nobodyさん2007/03/02(金) 23:19:07ID:???
>>717
接続時に SET CHARACTER SET ujis; とか
0720713=7172007/03/02(金) 23:31:13ID:iNFjaYc/
>>718 さん
馬鹿です。
本番環境のエンコーディングが今まで分からなくて・・・

>>719 さん
MySQL 4.0だから、その手は使えません。
それで、最初の質問で「MySQL 4.0を・・・」と書きました。
皆さんは、どうされていたのか、知りたいと思いまして。

やはり、SQL投げる度に(INSERTもSELECTも)、
文字コードの変換を書く必要がありそうですね。
データ量が10万件規模なので、面倒だと思いましたが、
仕方ないようですね。
0721nobodyさん2007/03/02(金) 23:37:28ID:???
>>720
これはもうPHP全然関係なくて、さすがにMYSQL内部でがエンコードが違うと
likeで部分一致を試みようと思ってもうまく処理できないんだよ。
諦めてデータベースの中身を1度入れ替えるべし。
0722713=7172007/03/02(金) 23:40:16ID:iNFjaYc/
>>719 さん
失礼しました。
SET NAMESではないですね。
ただ、それを実行すると、
#1115 - Unknown character set: 'ujis'
となります。
SHOW VARIABLES LIKE 'character%'
とすると、
latin1 big5 czech euc_kr gb2312 gbk latin1_de sjis tis620 ujis dec8 dos german1 hp8 koi8_ru latin2 swe7 usa7 cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek win1250 croat cp1257 latin5
となるのですが・・・
0723nobodyさん2007/03/02(金) 23:41:26ID:???
>>722
MySQL4.0以下ならPHPのmbstringで文字コード変換してからinsert。
これが基本。
0724713=720=7222007/03/02(金) 23:44:26ID:iNFjaYc/
親切な回答ありがとうございます。

>>721 さん
なるほど。エンコードが違うと、部分一致がうまく処理されないんですね。

>>723 さん
何か上手いやり方があるかと思いましたが、地道にするしかありませんね。

皆さんのおかげで、無事、解決しました。
mb_convert_encodingで文字コード変換します。
ありがとうございました。
0725nobodyさん2007/03/03(土) 03:03:11ID:fjJSaYh6
すんません
ZendFrameworkの板から流れてきたんですけど、どうやら問題はPDO関係っぽいので
こちらにおじゃまします。

postgresqlでPDO使ってる人いますか?

接続は

$db=new PDO('pgsql:dbname=testdb user=user');

であってますよね?これでつなげるし、クエリーも出せて結果も受け取れるんですけど
ZendFrameworkを使って接続すると、apache(httpdのuser)君にはそんな権限はありませんって
エラーが出て、どうやら、ユーザーを認識していない様子。

で、ソースをいじって、PDO接続するところを上記のように(ZF使う前からずっとこれでつなげてました)
変えたら、接続できて、その他のメソッドも動きました。

あちらでも指摘されたんですがPHPのマニュアルには
new PDO('mysql:host=localhost;dbname=test', $user, $pass);
と出てるんですよね。でも、このまま頭をpgsqlに変えると、apache君〜のエラーが出ます。
ちなみに、httpdの実行ユーザーをDBの接続ユーザーと同じ名前にすると接続できたりします。

ttp://www.php.net/manual/ja/ref.pdo-pgsql.connection.php
ここを見ると、postgresqlは違うような表記になってますけど、
これって、つなぐDBによって表記が変わるようなしろもんじゃないですよね?

長文失礼しました。
ご指摘ありましたらお願いします。
0726nobodyさん2007/03/03(土) 03:06:51ID:???
>>725
変わる代物です。例えば

MySQL : mysql:host=[HostName];dbname=[DatabaseName];charset=[MySQL Charset]
PostgreSQL : pgsql:host=[HostName] port=[PortNumber] dbname=[DatabaseName] user=[UserName] password=[Password]
SQLite3 : sqlite:[DatabaseFileName]
SQLite2 : sqlite2:[DatabaseFileName]
07277252007/03/03(土) 03:08:17ID:???
追記
PHP5.2.1
postgreSQL8.2.3
apache2.2.2
です。

エラーは
SQLSTATE[08006] [7] FATAL: role "apache" does not exist
です。(権限はないじゃなくて、いませんでした。勘違いですOTZ)
0728nobodyさん2007/03/03(土) 03:13:14ID:fjJSaYh6
>>726
即レスサンクス

やっぱりdbによって違うんですか。
ってことは、ZendFrameworkのバグでしょうか?

あっちでも書いたんですけど^^;
いくら試用段階とはいえこんなコアな部分にバグあって
誰も気づかないはずないですよね?

もうちょっといろいろ試してみます。
引き続き何かありましたらレスお願いします。
0729nobodyさん2007/03/03(土) 04:38:49ID:???
>>728
必要な情報がDB毎に異なる部分だからこの辺は
統一されている必要性があるとも考えてもいないんじゃない?
バグでなく「仕様」かと。
0730nobodyさん2007/03/03(土) 05:35:56ID:???
>>725
DSNの指定はDBごとに異なるものだけど、userとpassについては
第二引数、第三引数に指定することで各種DB共通に処理できる。

$db=new PDO("pgsql:dbname=testdb", "user");
で動かんか?
0731nobodyさん2007/03/03(土) 07:31:57ID:???
>>683
<?php
$array = array( "1=A", "1=B", "2=A", "2=K", "2=D", "3=SS", "3=AX", "4=A" );
$str = "";
$i = 0;
// sort($array);
foreach ($array as $val) {
$num = (int)$val;
if ($num == $i) $str .= " / " . $val;
elseif ($num > $i) {
if ($i == 0) $str .= "(" . $val;
else $str .= ") + (" . $val;
$i = $num;
}
else exit("Error");
}
$str .= ")";
echo $str;
?>
0732nobodyさん2007/03/03(土) 07:47:18ID:???
$array = array( "1=B", "2=A", "2=K", "2=D", "3=SS", "3=AX", "4=A", "1=A",); 
だったらだめじゃん
0733nobodyさん2007/03/03(土) 08:19:04ID:???
sortFunc($m,$n){
$m=(int)$m;
$n=(int)$n;
if ($m == $n){
return 0;
}else if ($m > $n){
return 1;
}else{
return -1;
}
}

sort($array,'sortFunc')
0734nobodyさん2007/03/03(土) 08:23:48ID:???
sortFunc($m,$n)→ function sortFunc($m,$n)
sort($array,'sortFunc') →usort($array,'sortFunc')
0735nobodyさん2007/03/03(土) 08:24:37ID:???
なーんかダサイコードだな
07367312007/03/03(土) 08:24:45ID:???
>>732
数字はあらかじめソートして配列が作ってあるのが前提です
並べ替えてよいのなら
sort($array, SORT_NUMERIC );
にしてください
0737nobodyさん2007/03/03(土) 08:29:42ID:???
出力が決められた文字列として出す事が前提だから
どうしてもださくなるわな
0738nobodyさん2007/03/03(土) 10:51:15ID:???
>>735みたいのは結局自分でかけない奴
0739nobodyさん2007/03/03(土) 10:53:33ID:???
なんか沸いたぞw
0740nobodyさん2007/03/03(土) 11:18:40ID:???
>>739
>なんか沸いたぞw
この場合の「わいた」は「沸いた」ではなく「湧いた」ではないでしょうか。
ご確認のうえ、訂正をお願いします。
0741nobodyさん2007/03/03(土) 11:26:05ID:???
functionを使った関数の書き方って
function hogeHoge($name,$type,$format);

出力側は、hogeHoge("名無し","テキスト","");

みたいな感じですよね?なんか他所で
function hogeHoge($name,$type[,$format]);
こういう書き方を見たのですが、こういう書き方って出来るんですか?
0742nobodyさん2007/03/03(土) 11:29:27ID:???
なんか湧いたぞw
0743nobodyさん2007/03/03(土) 11:30:13ID:???
>>741
どこで見たの?
0744nobodyさん2007/03/03(土) 11:33:08ID:???
>>741
Parse error: syntax error, unexpected '[', expecting ')' in C:\home\php\test.php on line 3
人に試させるなよ
0745nobodyさん2007/03/03(土) 11:33:15ID:???
マニュアルだろ
0746nobodyさん2007/03/03(土) 11:35:10ID:???
>>741
PHPマニュアルか
[, 変数 ]は省略可能を表している記号だ
07477412007/03/03(土) 11:43:10ID:???
>>746
マニュアルです。省略可能という事は、
hogeHoge("名無し","テキスト");

こう書けるって事ですか?ただこれをすると
Missing argument 4 for hogeHoge(), というようなエラーが出ました
0748nobodyさん2007/03/03(土) 11:51:03ID:???
ソースを晒したほうが早いです。
0749nobodyさん2007/03/03(土) 11:51:13ID:???
>>747
関数定義するとき省略可能なようにする
function hogeHoge ( $name, $type, $format = "")
{
echo $name;
echo $type;
if ($format) echo $format;
}
07507412007/03/03(土) 11:57:25ID:???
>>749
意味分かりました。ありがとうございました。
0751nobodyさん2007/03/03(土) 12:35:53ID:Z8h+tc0/
クラス外にある設定ファイル上の変数を、クラス内から使いたい場合ってどうすればいいんでしょうか。。
下記のような方法では、無理でしょうし。

* hoge.php

require_once 'settei.php';

Class Hoge
{
function sample(person){
echo $name[person]."さんです。";
}
}

* settei.php

$name = array(1=>"taro",2=>"jiro",3=>"saburo");
0752nobodyさん2007/03/03(土) 12:46:09ID:???
定数かglobalじゃ駄目なん?
とクラスが使えない俺が言ってみる。
0753nobodyさん2007/03/03(土) 13:16:08ID:???
PHP5なら
static $name = array(1=>"taro",2=>"jiro",3=>"saburo");
にして
settei::name[$person]
でアクセス

PHP4なら
define( "name", array(1=>"taro",2=>"jiro",3=>"saburo") );
にして
name[$person]
でアクセス

検証はしてないのでたぶん

0754nobodyさん2007/03/03(土) 13:31:19ID:???
サニタイズの高木の話、べつに悪いとは思ってないけど、
htmlspecialcharsでも悪くはない。

高木の言うことを鵜呑みにするのは初心者ですか?
0755nobodyさん2007/03/03(土) 13:33:41ID:2CUy4PID
PHP4.4.6リリースあげ
0756725:7282007/03/03(土) 13:40:25ID:fjJSaYh6
>>729
>>730
レスありがとうございます

すいません。わかりました。
passwordを省略すると、そのエラーが出るようです。

しかもZendFramework版のほうで指摘されてたのに見逃してたみたいです。
まじでごめんなさいOTZ

いいわけ:でも、エラーの出方が紛らわしいと思いません?^^;

ありがとうございました。
0757nobodyさん2007/03/03(土) 13:57:33ID:2CUy4PID
PHPマニュアルのページから目次以下の関数名と説明書き↓を取得したいのですが、
余計なものまで取得したり、配列がぐちゃぐちゃになって困ってます。
どこを手直ししたらよろしいのかご教授お願いいたします。

【取得したい内容】
apache_child_terminate ? このリクエストの後にApacheプロセスを終了する
・
・
virtual ? Apache サブリクエストを実行する
【ここまで】
(計14行文)



<?php
$url = "http://www.php.net/manual/ja/ref.apache.php";;
$subject = file_get_contents($url);
$subject = mb_convert_encoding($subject,"EUC-JP","auto");

$patten = "[(<dt>)+(.*)(</a></span>)+]";
preg_match_all($patten, $subject, $set);

echo"<pre>";
print_r($set);
echo"</pre>";

?>
0758nobodyさん2007/03/03(土) 16:18:07ID:cG1UPfnL
PHP4です。
300行ほど並んだCSVファイルから、ランダムで1行だけを取り出し、
その列のデータを配列$arrayに入れる方法を教えて下さい。
0759nobodyさん2007/03/03(土) 16:24:01ID:???
>>758
どこまで書いたの?
0760nobodyさん2007/03/03(土) 16:24:39ID:???
これは釣よ
0761nobodyさん2007/03/03(土) 16:25:32ID:???
$file=file("CSVファイル");

srand((float) microtime() * 10000000);
$array = array_rand($file);
0762nobodyさん2007/03/03(土) 16:26:28ID:cG1UPfnL
>>759
$file = "data.csv";
$file = @fopen($file);
$array = array($file);
$close;

でストップしてます
0763nobodyさん2007/03/03(土) 16:27:36ID:???
>>762
マニュアルでfopen関数のとこ見るといいよ
0764nobodyさん2007/03/03(土) 16:31:58ID:???
>>757
$patten = '[<dt>(.+?)</dt>]'; 
0765nobodyさん2007/03/03(土) 16:32:35ID:???
すいません、>>761の通り
$file = "data.csv";
srand((float) microtime() * 10000000);
$array = array_rand($file);
とした時、$arrayには行数が入りますよね?
0766nobodyさん2007/03/03(土) 16:33:07ID:???
>>765
マニュアルでarray_rand関数のとこ見るといいよ 
0767nobodyさん2007/03/03(土) 16:36:11ID:???
>>757
HTML化される前のSGMLを使った方がいいんじゃまいか?

<refentry id="function.apache-child-terminate">
 <refnamediv>
  <refname>apache_child_terminate</refname>
   <refpurpose>このリクエストの後にApacheプロセスを終了する</refpurpose>
てな感じにXMLの形式で書かれている。

元ネタはCVSで取得するしか無いが、まぁ難しいもんでもない。
今のように毎回本家に負荷を掛けるより、一回チェックアウトしてローカルファイルとしてやったほうがいいべ。
cvs -d :pserver:[email protected]:/repository checkout -d phpdoc-ja/reference
0768nobodyさん2007/03/03(土) 16:38:47ID:???
>>763>>766
理解しました。
$file[$array]で出力するとうまく一行だけ取り出せました。

ありがとうございました。
0769nobodyさん2007/03/03(土) 16:51:04ID:2CUy4PID
>>764さんのご指摘の箇所を修正しました。
しかし全部14行取得できません。悩みます。

>>767さんのおっしゃること通りですが、私には勉強不足な点がございますので調べてみます。
0770nobodyさん2007/03/03(土) 16:53:18ID:2CUy4PID
結果はります。
Array([0] => Array
(
[0] => apache_child_terminate ? このリクエストの後にApacheプロセスを終了する
[1] => apache_get_modules ? ロードされた Apache モジュールのリストを取得する
[2] => apache_get_version ? Apache のバージョンを取得する
[3] => apache_getenv ? Apache の subprocess_env 変数を取得する
[4] => apache_note ? Apacheリクエスト記号(note)を取得/設定する
[5] => apache_request_headers ? HTTPリクエストヘッダを全て取得する
[6] => apache_reset_timeout ? Apache の書き込みタイマーをリセットする
[7] => apache_setenv ? Apacheサブプロセスの環境変数を設定する
[8] => ascii2ebcdic ? ASCIIからEBCDICに文字列を変換する
[9] => ebcdic2ascii ? EBCDICからASCIIに文字列を変換する
[10] => getallheaders ? 全てのHTTPリクエストヘッダを取得する
[11] => virtual ? Apache サブリクエストを実行する
)
[1] => Array
(
[0] => apache_child_terminate ? このリクエストの後にApacheプロセスを終了する
[1] => apache_get_modules ? ロードされた Apache モジュールのリストを取得する
[2] => apache_get_version ? Apache のバージョンを取得する
[3] => apache_getenv ? Apache の subprocess_env 変数を取得する
[4] => apache_note ? Apacheリクエスト記号(note)を取得/設定する
[5] => apache_request_headers ? HTTPリクエストヘッダを全て取得する
[6] => apache_reset_timeout ? Apache の書き込みタイマーをリセットする
[7] => apache_setenv ? Apacheサブプロセスの環境変数を設定する
[8] => ascii2ebcdic ? ASCIIからEBCDICに文字列を変換する
[9] => ebcdic2ascii ? EBCDICからASCIIに文字列を変換する
[10] => getallheaders ? 全てのHTTPリクエストヘッダを取得する
[11] => virtual ? Apache サブリクエストを実行する
)
)
0771nobodyさん2007/03/03(土) 17:03:44ID:???
$patten = '[<dt>(.+?)</dt>]s'; とか
0772nobodyさん2007/03/03(土) 17:25:28ID:???
>>771さんのやりかたで14行取得できましたが、配列の最初に関係ないものを取得してしまいました。
アドバイスいただきありがとうございます。
0773nobodyさん2007/03/03(土) 19:19:38ID:Z8h+tc0/
file_get_contentsで失敗した時には〜みたいな処理をphp4でしたいのですが、マニュアルには
のってませんでした。可能でしたら、お教え下さい。。

file_get_contents("http://www.yahoo.comcomcom";) <= 404エラー
rescue
exit

みたいな。rubyでいう。
0774nobodyさん2007/03/03(土) 19:22:21ID:???
マニュアルくらい読めよ・・・

失敗した場合、file_get_contents() は FALSE を返します。
0775nobodyさん2007/03/03(土) 19:24:16ID:???
if(file_get_contents("http://www.yahoo.comcomcom";){
print "大成功!";
}
07767732007/03/03(土) 19:34:42ID:Z8h+tc0/
さんくす!
07777732007/03/03(土) 20:11:37ID:Z8h+tc0/
Warning: file_get_contents(
"http://www.yahoo.comcomcom";): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found

ためしてみたんですが、WARGINGは出ますねぇ。。
0778nobodyさん2007/03/03(土) 20:26:54ID:???
>>777
あー、カッコ足りなかった
0779nobodyさん2007/03/03(土) 20:27:56ID:???
あー、違うかもな
とにかく自分でソース確認しましょうね。
0780nobodyさん2007/03/04(日) 00:54:24ID:/sugyBqZ
>>664 すいません今度はそれでも駄目でした・・・
my.cnfの[mysqld] に
skip-character-set-client-handshake
を貼り付ければいいわけですよね?
うん〜 
0781nobodyさん2007/03/04(日) 02:01:20ID:74jdPdk8
ifや何もないブロックでも、関数と同じく、
ブロックが閉じる時に変数は破棄されますか?

if(***) {
$hoge;
}

{
$foo;
}

function Bar() {
$bar;
}
0782nobodyさん2007/03/04(日) 02:04:10ID:???
俺、夢見てるのかな
0783nobodyさん2007/03/04(日) 02:55:29ID:j6Pq8T7o
PHP5にて、クラス自体へのアクセスを制限する方法はありますか?
例えば、クラスAは、クラスBからはnewできるが、クラスCからはnewできない、などです。
packageやfriendクラスの概念が無いので正攻法では無理だと思うのですが、
何か擬似的な方法がありましたらご教授下さい。
0784nobodyさん2007/03/04(日) 03:05:39ID:???
自作関数の中で、switchにてcase分けし、あるcaseの場合にはそこで
関数から抜け出したい(関数内に書かれているその後の処理をしたくない)のですが、
どうやって任意のポイントで関数から抜け出したらいいでしょうか?

breakとかじゃないし・・・
exitだとプログラム全体が終わっちゃうし・・・
■ このスレッドは過去ログ倉庫に格納されています