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

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

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0381nobodyさん2008/01/19(土) 00:53:48ID:???
質問です 変数に収まっている値のデータ型を判別する関数ってありますか?
03823812008/01/19(土) 00:54:18ID:FuloTUhn
しまった うっかり下げてしまいました
よろしくお願いします
0383nobodyさん2008/01/19(土) 01:01:29ID:???
>>381
http://jp.php.net/manual/ja/function.gettype.php
http://jp.php.net/manual/ja/function.get-class.php
ほい。
0384nobodyさん2008/01/19(土) 01:25:50ID:???
FFFTPやらデバックやら…
03853812008/01/19(土) 01:37:05ID:FuloTUhn
>>383
ありがとう 助かりました
0386nobodyさん2008/01/19(土) 02:27:23ID:???
"デバック" に一致する日本語のページ 約 228,000 件中 1 - 50 件目 (0.39 秒)

全米が泣いた。
0387nobodyさん2008/01/19(土) 05:24:17ID:nyppE0sx
ここのスレホント役に立たない。
2回質問したが全くレスがない。
ちょっと難しい論点を出すと、全く歯が立たないんだなぁ。
このスレの住民の能力が手に取るように分かった。
0388nobodyさん2008/01/19(土) 05:25:34ID:???
※餌を与えないでください
0389nobodyさん2008/01/19(土) 05:46:08ID:???
>>387
> 2回質問したが全くレスがない。
> ちょっと難しい論点を出すと、全く歯が立たないんだなぁ。

お前の質問の仕方が悪いんだろ。人のせいにするな。
0390nobodyさん2008/01/19(土) 07:36:55ID:???
bug :【和称】バグ
debug:【和称】デバッグ

デバックではないアホ
0391nobodyさん2008/01/19(土) 07:58:06ID:???
こういうことに固執して書き込みする奴って、
「鯖」とか普通に使ってたりするんだよな。

っていうか、何でFFFTPが急に出てくるのか分からない。
0392nobodyさん2008/01/19(土) 08:30:40ID:???
>>391
わかるわかるwwwwwwww

ヒント >>358
0393nobodyさん2008/01/19(土) 08:39:29ID:uG/K5st/
>>390
古フランス語puc由来なので
デバックで濁らないのが本来の発音、アホ。
0394nobodyさん2008/01/19(土) 08:54:19ID:uG/K5st/
ガリア訛りのロマンシュ語。
英貴族は当初は濁らなかったんだよ。
デパック。
0395nobodyさん2008/01/19(土) 09:02:37ID:???
>>392
なるほど。ありがとう。
03963392008/01/19(土) 09:18:23ID:???
>>346
Cakeのアプリ作成の動画があったから見たら、そんな使い方してたのよ
http://p4life.jp/cake/

FWがどんな感じで動くのかわからないときにこういう動画見たから、
てっきりFW自体がそういうものだと思い込んでた

ちとZend調べてきまー
0397nobodyさん2008/01/19(土) 09:43:37ID:ctJIPU4v
extendsについて質問です。

class A {
  public function Test(){
    echo "TEST";
    return 0;
  }
}

class B extends A {
  function Test2(){
    echo "Hello ";
    parent::Test();
  }
}

$extends = new B();
$extends->Test2;

この場合、「Hello TEST」と表示されますが、
extendsなしで、
parent::Test();を
A::Test();とすればいいのに
extendsをするメリットはあるのでしょうか?
03983972008/01/19(土) 09:46:29ID:ctJIPU4v
ああ、メンバ変数が継承されているのかΣ
メソッドの継承は、別クラスからClass::hogehoge()で呼べばいいだけで・・・あれ?
0399nobodyさん2008/01/19(土) 09:55:10ID:???
出っ歯9本
04003972008/01/19(土) 09:57:16ID:ctJIPU4v
すみません、extends理解できました
普通に便利ですねこれ

ただ、使い方間違えるとゴチャゴチャになりそうで怖いです・・・
0401nobodyさん2008/01/19(土) 10:12:49ID:???
多分色々間違って覚えてるんだろうな
04023972008/01/19(土) 10:16:08ID:ctJIPU4v
>>401
自分の解釈では
「メソッド・メンバ変数の継承」

class Aで使っていたメソッドやクラスをclass Bに継承させると考えていいのですよね?
0403nobodyさん2008/01/19(土) 11:39:42ID:FuloTUhn
フォームで半角英数字を入力して、DBに登録して、それを後で引き出して
gettypeで判別したらstringになってたんですが、コレは仕様ですよね?
数字のままdbに保存→引き出し をする方法はないですか?
0404nobodyさん2008/01/19(土) 11:44:11ID:???
無意味に継承してどうするのと。
>>397のソースは不可解。
includeみたいなものだと勘違いしてない?

>class Aで使っていたメソッドやクラスをclass Bに継承させると考えていいのですよね?
A(スーパークラス)で定義したメソッドやフィールド(メンバ変数)をB(Aのサブクラス)で継承する。
またはAで別クラスを継承してた場合、そのクラスのものも継承する。

継承についてはオーバライドやポリモーフィズム(多態性)を理解しないと使うのは難しいと思う。
0405nobodyさん2008/01/19(土) 11:47:41ID:???
>>403
仕様。
>数字のままdbに保存
保存する直前でintに変えてから保存すればいいじゃないか。
0406nobodyさん2008/01/19(土) 11:56:23ID:QtJ57h/6
数日前にPHPをやり始めた者です。勉強がてら、>>181の回答にあたるものを>>322を
参考にしながら書いてみたのですが、重い処理をしているのではないかとか、
間違ったコーディングをしているのではないか、と不安になってここで質問してみました。
どうぞよろしくお願い致します。

test.php ファイルの内容
<?php
// 日付、IPアドレスを取得
$date = getdate();
$day = $date["year"] . sprintf("%02d",$date["mon"]) . sprintf("%02d",$date["mday"]);
$ip = getenv("REMOTE_ADDR");

// 重複入力チェック。同じ日に同じIPアドレスからであると、はじく。
$fp = fopen("test.dat", "r");
if($fp == false){ printf("<html><body>エラー:ログファイルが開けません。</body></html>");return;}
while( !feof($fp) ){
$read_line = fgets($fp, 1024);
$file_day_ip = split(",", $read_line);
if( ( $file_day_ip[0] == $day )and( $file_day_ip[1] == $ip ) ){
consecutive_error_html();
return;
}
}
fclose($fp);

// POSTを受け取る。
$q1 = $HTTP_POST_VARS["Q1"];
$q2 = $HTTP_POST_VARS["Q2"];
$q3 = $HTTP_POST_VARS["Q3"];
$q4 = $HTTP_POST_VARS["Q4"];
$q5 = $HTTP_POST_VARS["Q5"];
0407nobodyさん2008/01/19(土) 11:58:19ID:QtJ57h/6
>>406のつづき

// 未入力チェック。いきなりtest.phpにアクセスしてきた時にもはじく処理。
if( ($q1=="")or($q2=="")or($q3=="")or($q4=="") ){
input_error_html();
return;
}

// 任意入力欄にて、CSVで使用している文字を変更する。
$q5 = ereg_replace(",", "、", $q5);
// 任意入力欄にて、改行を <br> に変更する。
$q5 = ereg_replace("\r|\n", "<br>", $q5);

// 文字列をつなげてファイルへ書込み
$write_line = $day . "," . $ip . "," . $q1 . "," . $q2 . "," . $q3 . "," . $q4 . "," . $q5 . "\n";
$fp = fopen("test.dat", "a");
if($fp == false){ echo "<html><body>エラー:ログファイルが開けません。</body></html>"; return;}
if(flock($fp, LOCK_EX)){
fwrite($fp, $write_line);
}else{
echo "<html><body>エラー:ログファイルのロックが出来ません。</body></html>";
return;
}
fclose($fp);
finish_html();
return;
0408nobodyさん2008/01/19(土) 12:00:13ID:QtJ57h/6
>>407のつづき

// 連投拒否
function consecutive_error_html(){
echo "<html><title>エラー</title><body>";
echo '<div align="center"><b>エラー:連投ですか?</b><br>';
echo "$ip<br>";
echo '<a href="test.html">戻 る</a></div>';
echo "</body></html>";
}
// 入力不備
function input_error_html(){
echo "<html><title>エラー</title><body>";
echo '<div align="center"><b>エラー:Q1〜Q4すべてを選択して下さい。</b><br>';
echo '<a href="test.html">戻 る</a></div>';
echo "</body></html>";
}
// データ登録完了
function finish_html(){
echo "<html><body>";
echo '<div align="center"><b>ご回答ありがとうございました。</b><br>';
echo '<a href="test.html">戻る</a></div>';
echo "</body></html>";
}
?>

終わり
0409nobodyさん2008/01/19(土) 12:22:27ID:t8kHENxA
// POSTを受け取る。
$q1 = $HTTP_POST_VARS["Q1"];
$q2 = $HTTP_POST_VARS["Q2"];
$q3 = $HTTP_POST_VARS["Q3"];
$q4 = $HTTP_POST_VARS["Q4"];
$q5 = $HTTP_POST_VARS["Q5"];

この部分

$HTTP_POST_VARSは古い$_POSTに変更
値は配列にしたほうが後々楽

$Q[1] = isset($_POST['Q1']) ? $_POST['Q1'] : null;
$Q[2] = isset($_POST['Q2']) ? $_POST['Q2'] : null;
0410nobodyさん2008/01/19(土) 12:44:54ID:???
日付は$day = date('Ymd');にできる

if( ( $file_day_ip[0] == $day )and( $file_day_ip[1] == $ip ) ){
これは
if($file_day_ip[0] == $day && $file_day_ip[1] == $ip){
でいい下の$q1〜等もそう

$HTTP_POST_VARSは$_POSTでいいし
$ip = getenv("REMOTE_ADDR");
の部分は$ip = $_SERVER['REMOTE_ADDR'];に置き換えられる

あと重複チェックなら1行ずつ取得して
文字列一致を探した方が早いんじゃ?

それとCSVで使用している文字を変更するとあるが
勝手に入力値を変更するはどうかと
やるならダブルクォーテーションで囲って
ダブルクォーテーションを&quot;に置き換えた方が良い

あと自作関数だがエラーと完了のみにして
function error($errMsg,$title='',$param=null){
エラー処理(かくのめんどくせ)
}
因みに連投拒否のところに書いてある$ipは表示されないからねっ
0411nobodyさん2008/01/19(土) 12:48:04ID:???
>>402
俺も単なる関数の集合としか使えてなかったけど
Zend Framework使ったらオブジェクト指向の利点が体感できたよ。
0412nobodyさん2008/01/19(土) 12:56:38ID:???
>324でも書いたけど
なんでq5だけに改行や','が入ってくるって決め付けてるのさ
04134032008/01/19(土) 13:15:48ID:???
>>405
>保存する直前でintに変えてから保存すれ

フォームでsubmitした時点で文字列になっちゃうわけですかね?
気づかなかった、確認してみるよ ありがとう
0414nobodyさん2008/01/19(土) 13:18:45ID:???
>>403
dbから取得した時点で既に文字列
0415nobodyさん2008/01/19(土) 13:20:28ID:CC01YTh8
どなたかお助けください。
アマゾンAWSECSというwebサービスからXMLを取得
→XMLファイルに保存
→XSLTファイルを作成(画像URLとタイトル抜き出し)
→PHPのxslt_process関数を用いてXSLTを適用しHTMLを出力

ってな事をしたました。
リロード7回に1回の割合で上手く表示されるのですが、
ほとんどの場合空白ページが表示されてしまいます。

これを回避する方法はありませんでしょうか?
原因すらよくつかめてませんで_(_ _;)_
なにか考えられることありませんでしょうか?

ブラウザはIEとFireFoxで試したのですがIEのほうが少し空白になる割合が低そうです。

コード・サンプルなどは要望がありましたらUPしますけど。
0416nobodyさん2008/01/19(土) 13:29:11ID:???
>>413-414
ちゃうだろ、例えpostで取得した時点で文字列だとしてもクエリ発行の際に
クオーテーションで囲むか否かで数値として入れるか文字列として入れるかが変わる
0417nobodyさん2008/01/19(土) 13:29:15ID:???
>>415
原因すらつかめてないならコード晒そうよ
出せない部分は伏字とかで良いから
0418nobodyさん2008/01/19(土) 13:30:20ID:???
>>415
まずどの時点で想定外の結果になっているかを把握
0419nobodyさん2008/01/19(土) 13:32:21ID:???
データをどう扱うかは結局PHP側でどうにかしないと
0420nobodyさん2008/01/19(土) 13:41:16ID:???
馬鹿ばっかり。

データベースに書き込んだ時点で、PHPでどういう型で
扱っていたかなんか忘れ去られる。

SQLで数値をクォーテーションでくくったからと言って
数値で記録されるというわけでもない。そもそも数値だろうが文字だろうが
全部クォーテーションでくくって何の問題もない。

データベースにはPHPの型情報なんて記録されていないんだから、
データベースから取得した時点で型がどうなるかは、データベースと
そのスキーマ定義と読み込むときに使用するPHPライブラリに依存する。
まあ、普通はデータベースのフィールドの型になるだろうが例外もあるだろう。

つまりだ、なんのデータベースを使って、テーブルのフィールドの型が
どうなっていて、どのライブラリを使ったか書けという話。
04214062008/01/19(土) 13:42:58ID:QtJ57h/6
みなさん、丁寧なご回答をありがとうございます。
古い表記を知らなかったなど、変なコーディングをしていたことに気づき、
勉強になりました。

>>409
古い表記とかあるのですね。調べてみます。
確かに、受け取るデータは配列に入れて管理すると楽になりますね。
ループで一気に処理など出来ますし。

>>410
私はつい、(...)and(...)を使ってしまうへんな癖があるようです。直します
IPアドレス取得のコードは表記が古かったのですね。

> あと重複チェックなら1行ずつ取得して
> 文字列一致を探した方が早いんじゃ?
これは、具体的にはsplit(",",$read_line)を使用せずに、
例えば以下のようにするという意味でよろしいのでしょうか。
$day_ip = $day . "," . $ip;
if(preg_match($day_ip, $read_line))

> それとCSVで使用している文字を変更するとあるが
> 勝手に入力値を変更するはどうかと
確かに言われてみるとそうですね。"にしてみます。

> あと自作関数だがエラーと完了のみにして
> function error($errMsg,$title='',$param=null){
言われてみて、そういうまとめ方がいいなと気づきました。
構造的に似たような関数になってますしね。

> 因みに連投拒否のところに書いてある$ipは表示されないからねっ
自分の環境で動かしていて気づいていなかったのですが、
確かにおっしゃる通りですね。スコープを考えていませんでした。
04224032008/01/19(土) 13:48:09ID:???
>>414
ほんとだ、、SQL送信直前にintvar()したけど、取得したら文字列でした
最終的に、取得値をNullと0で区別したいんですが…
取得値に対して再度intvar()しなきゃいけないのかな やっても
登録するカラムのデフォルト値がNULLなんで、
if(intvar(取得値)===0){〜〜;} ってした場合、NULLを拾ってきた場合も
処理してしまいますよね? めんどくさいなー
04234062008/01/19(土) 13:48:56ID:QtJ57h/6
>>412
> なんでq5だけに改行や','が入ってくるって決め付けてるのさ
これは、誰かがformを自作して変なデータを入力しようとするのを
防ぐという意味合いですよね?
Q1〜Q4においても、入力されるデータにチェックをかける必要が
ありますね。
04244152008/01/19(土) 13:51:52ID:???
<?php
//header("Content-Type:text/html;charset=EUC-JP");
$strDir=dirname(__FILE__);
$strXml=$strDir."/[****].xml";
$strXsl=$strDir."/[****].xsl";
$objPrc=xslt_create();
$result=xslt_process($objPrc,$strXml,$strXsl);
//print(mb_convert_encoding($result,"EUC-JP","UTF-8"));
if ($result){
print $result;
}else{
print"errno=".xslt_errno($objPrc);
print"err =".xslt_err($objPrc);
}
xslt_free($objPrc);
?>


あいよー汚いソースですんません。PHP側のソースはこんだけ
XSLTは静的に(XML文書内にXSLTを指定)はなんら問題なく表示されてます。

0425nobodyさん2008/01/19(土) 13:57:12ID:???
もっとも正しい答えは「今さらAWSなんてやめとけw」
04264152008/01/19(土) 14:00:16ID:CC01YTh8
すいません。今いろいろ試して解ったのですが
どうも借りてるレンタルサーバ(ロリポ)でおかしく、サクラだと何の異常もなくうごいたので、
どうもレンタルサーバの負荷もしくは環境かなと。

迷惑かけてすいませんでしたー。

>>425ごもっともw
0427nobodyさん2008/01/19(土) 14:02:07ID:???
>>420
お前が一番バカで口だけの存在だよ
0428nobodyさん2008/01/19(土) 14:56:18ID:???
>>422
420よめよ。。
だいたいオマエのDBは文字列型も数値型も両方同じフィールドに入るのかと。
アドホッククエリ書いてる気がするんだけど、そうなら連結してる変数を
intに変えようが全く意味がないし。

nullと0の区別はPHPのように型が緩い言語ではやりにくい。
ライブラリとか使ってるなら勝手に変換されちゃうこともあるんでさらに。
なので数値型のフィールドではnot null制約しといて規定値0にしてる。
04294032008/01/19(土) 15:27:14ID:???
>>428
すみません、422書いてる間に420のレスもらってたみたいで読めてませんでした
カラムはint型でデフォルトがNULLです
0だと後々の処理の中で意味を持ってしまうので(>>422)そうしたつもりだったんですが
いっそのことNULL指定もしない空欄にすべきでした
PHPが型指定あいまいってのを今回ようやく痛感した感じです

>>420
>データベースにはPHPの型情報なんて記録されていないんだから、
確かに…って感じです ありがとうございました
0430nobodyさん2008/01/19(土) 15:30:26ID:???
PHPの型指定の曖昧さは他の箇所でのことなんだけど
0431nobodyさん2008/01/19(土) 16:19:11ID:???
int のカラム SELECT した結果て intで入るっけ?
0432nobodyさん2008/01/19(土) 17:53:09ID:???
>>393
お前はbugのこともバクと呼んでいるんじゃないのか?w
http://e-words.jp/w/E38387E38390E38383E382B0.html
0433nobodyさん2008/01/19(土) 17:53:12ID:???
関数によるでしょ
0434nobodyさん2008/01/19(土) 17:53:46ID:???
>>432
いまさら蒸し返すなよ粘着野郎。
04353502008/01/19(土) 18:05:25ID:yodDlY2F
350です。
昨日は皆様ありがとうございました。
参考にさせて頂いたページや、他のページも見ながらとりあえず読み込むことができるスクリプトを書いてみようと思い、
ちょっと書いてみましたが上手くいきません。
ファイルへのアクセスはできているようですが、echoした結果が'<'としか出ません。
どこが間違っているのか添削をお願いできないでしょうか?
よろしくお願いします。

<?php
$log = "http://www.xxxxxx.com/test.log";
$size = sizeof($log);

$handle = fopen($log, "r");
if (!$handle) {
echo "<p>Unable to open remote file.\n";
exit;
}
$line = stream_get_line($handle, $size);
fclose($handle);

print $line;
?>
0436nobodyさん2008/01/19(土) 18:07:33ID:???
>>435
君、才能ないから百姓でもしてな
それが最終的に君のためになるんだよ。
0437nobodyさん2008/01/19(土) 18:12:55ID:???
こいつの書き込みを読むたびに笑ってしまうのだが、ウケ狙いなのか?w
0438nobodyさん2008/01/19(土) 18:14:06ID:???
むしろ本気だから面白いんだろう

>>435
二万で目的のもの作ってやるよ
0439nobodyさん2008/01/19(土) 18:41:47ID:???
>>435
何がやりたいのかよくわからんけど
echo file_get_contents("http://example.com/test.log");
じゃだめなのか
0440nobodyさん2008/01/19(土) 18:49:35ID:???
>>435
それは君の使っているサーバの仕様も関係することだから、
その具体的なサイトを書いてくれないと話は進まないぞ。
04413502008/01/19(土) 18:57:53ID:???
>>440
具体的なサイトは晒せません。ごめんなさい。
もういいです。

>>436 死ねクズ

0442nobodyさん2008/01/19(土) 19:03:12ID:???
偽者だろうけど真面目な話題中に茶化すなよ屑
0443nobodyさん2008/01/19(土) 19:07:03ID:???
どこが真面目なのか僕にはわっかりましぇーん
0444nobodyさん2008/01/19(土) 19:13:58ID:???


  レベル ヒック (ドイツの思想家 1906-1972)


0445nobodyさん2008/01/19(土) 20:31:01ID:???
>>429
SELECTした値をカラムの型に合わせて(というかDBが返してきた型そのままで)
ちゃんと取得できるライブラリやフレームワークもあるけど、PHPだとどうかなあ?
ある程度やってくと、型が緩いってのはデメリットだと思うようになったりするんだよね。
ぼやいても仕方がないので、それを考慮してあらかじめ回避しとくしかない。

個人的には言語に関係なく、数値型のカラムの0に意味を持たせるのは避けたほうがいいと
思ってる。型に厳格な言語なら、nullと0の区別はつくけどね。
0446nobodyさん2008/01/19(土) 21:57:02ID:FuloTUhn
すみません、設定について質問します
cmdでpearのライブラリをインストールしようとしたら(php.exeの実行)、
「php_mbstring.dllが見つからなかったためインストール失敗しました」という
メッセージが出ます。(その後も立て続けに○○が見つからないという警告が出ます)
phpinfo()で調べたら
extension_dir C:\PHP\ext となっていて、その中にphp_mbstring.dllが入ってました
php.iniのextension=php_mbstring.dllもコメント解除してあります

何が原因でしょうか? それとも見るところが間違ってますか?
環境はphp5.2.3でapache2、windowsXPです

(さらにいうと、アラート表示はするものの、C:\php\PEAR\Calendarの形で
インストール自体は成功してます)
0447nobodyさん2008/01/19(土) 22:37:05ID:???
ひょっとして php.ini がこうなってるんじゃね?

extension=php_exif.dll
extension=php_mbstring.dll
↑これじゃ、駄目で

extension=php_mbstring.dll
extension=php_exif.dll
↑こうしないと駄目

php_exif.dll は php_mbstring.dll がロードされてないとロードできないから、
その様なエラーメッセージボックスが表示される
0448nobodyさん2008/01/19(土) 23:55:53ID:???
rsswriterってダウンロード元のリンクが切れてるんだけど、
どこで配布してるん?
0449nobodyさん2008/01/20(日) 00:15:54ID:???
>>1
04504482008/01/20(日) 00:25:15ID:y4+xWtE5
ID公開おk
04514482008/01/20(日) 00:32:24ID:???
事故快尻しました
04524482008/01/20(日) 00:36:18ID:y4+xWtE5
>>451
してねーよハゲ太郎
04534482008/01/20(日) 00:47:43ID:???
>>450は偽者です。

rsswriterってダウンロード元のリンクが切れてるんですが、
どこで配布しているかご存知の方いませんか?
04544462008/01/20(日) 00:52:46ID:jGlr+mbd
>>447
すごい! ほんとにそうなってました。
で、php_exif.dllよりもmb_string.dllを先にして再起動後
pear install -f Spreadsheet_Excel_Writer としたんですが、
今度は「OCI.dllが見つからなかったため失敗」と言われました
どうしたらいいんでしょうか? .dllの記述順って厳格に決まってるんですか?
あるならどこかそれを確認できるサイトないでしょうか?
また、実際php.iniにはphp_pdo_oci.dllとphp_pdo_oci8.dllはあったけど
oci.dllはありませんでした ※でもやはりインストール自体は成功してます

http://hey.chu.jp/up/source3/No_12545.txtなんですが、
僕のphp.iniのextension変ですか?
0455nobodyさん2008/01/20(日) 01:01:36ID:???
>>454
http://www.php.net/downloads.php
ここでダウンロードしたらiniに書いてるよ。
04564462008/01/20(日) 01:27:57ID:jGlr+mbd
>>455
ありがとうございます しかしダウンロードしたphp5.2.5のphp.ini見てみると、
自分のものと記述の順序同じです
ていうか、php_exif.dllがmb_string.dllよりも先にあります
(447さんの推奨順序とちがう、、) これはいいのかな?

あと、apacheのエラーログ見ると、
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\PHP\\ext\\php_curl.dll'
というエラーが延々出ています
.dllの個数分というわけじゃないですが、これも関係してるんでしょうか?
0457nobodyさん2008/01/20(日) 01:45:51ID:???
>>456
小出しか
0458nobodyさん2008/01/20(日) 02:08:22ID:???
>>456
糞zendの .ini ファイルなんて信用するなよw
windows のインストーラー壊れたまま、chm 文字化け放置してるぐらいなんだからw

で、pdo 使いたいみたいだが、これもロードの順序あるんだわw
extension=php_pdo.dll
をとにかく前の方に記述してみな
0459nobodyさん2008/01/20(日) 03:36:50ID:???
htmlの削除フォームから、ファイル名を入れ、
ディレクトリAにアップロードされたファイルaを
削除しようと、

unlink(basename($_POST['filename']));

を使おうとしたのですが、ディレクトリA内の指定の仕方がわからなくて困っています。
$dir = "./A/"として
unlink(basename($dir,$_POST['filename']));などいろいろやってみたのですがうまくいきませんでした
詳しくは、

html側
<form action="delete.php" method="">
<input type="text" name="filename" value="">
<input type="submit" name="delete" value="delete">
</form>

php側
<?php

if($_POST['filename']){
unlink(basename($_POST['filename']));
}

?>

ですが、エラーはないのですが、もちろんファイルを消してくれることもありませんでした。
どうかよろしくお願いします助けてください
04604592008/01/20(日) 03:39:35ID:SGo/1Pd2
windows xp
Apache 2.0 Handler
でし
0461nobodyさん2008/01/20(日) 03:40:23ID:SGo/1Pd2
→です
0462nobodyさん2008/01/20(日) 03:55:05ID:???
unlink(basename($dir.$_POST['filename']));
             ^ ここ
不特定多数が利用する仕組みなら、ディレクトリトラバーサル対策に
realpath()とか使って想定されたパスかどうかチェック
0463nobodyさん2008/01/20(日) 03:56:35ID:???
あと、 method="post"としないとGETになるよ
0464nobodyさん2008/01/20(日) 04:04:20ID:???
windows xp
Apache 2.0 Handler
でし!!(*'-^)d
0465nobodyさん2008/01/20(日) 04:23:04ID:GtMoA5jM
現在、PHPの勉強様に掲示板を作っています。
そしてDBより取得した「DateTime型」の値を2chの様に

2008/01/20(日) 00:15:54

といった形式で表示するにはどうすれば良いでしょか?
1※レコードセットで取得しておりまして、DBより取得した値は
 「2008-01-17 01:13:47」
 の様な形で入っています。

2※次のサイトを参考に見ているのですがどうしても2chの様な
文字列で出力する事が出来ません。

http://www.scollabo.com/banban/php/php_12.html

0466nobodyさん2008/01/20(日) 04:35:41ID:???
preg_match→mktime→dateとか
もっとシンプルな方法があるかも知れんが
0467nobodyさん2008/01/20(日) 04:43:07ID:SGo/1Pd2
>>462-463
おお!
realpathとmethod="post"つかったら
とりあえずはファイル削除することができました!
ありがとうございました!
0468nobodyさん2008/01/20(日) 04:43:21ID:???
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
0469nobodyさん2008/01/20(日) 05:26:38ID:???
初歩的な質問をさせていただきます

$test1 = 'test';
$test[0] = 'test';
$test2['test'] = 'OK';

print "$test2[$test1]\n";   ←�@
print "$test2[$test[0]]\n";  ←�A

�@は上手くいきますが�Aは上手くいきません
�Aのように、連想配列の添え字を配列にすることはできないのでしょうか
0470nobodyさん2008/01/20(日) 05:32:19ID:???
>>465
$timestamp = strtotime('2008-01-17 01:13:47');
$weekNum = date('w',$timestamp);
$week = '';
switch($weekNum) {
 case 0:
  $week = '日';
  break;
 case 1:
  $week = '月';
  break;
 case 2:
  $week = '火';
  break;
 case 3:
  $week = '水';
  break;
 case 4:
  $week = '木';
  break;
 case 5:
  $week = '金';
  break;
 case 6:
  $week = '土';
  break;
}
$date = date('Y/m/d('.$week.') H:i:s',$timestamp);

俺ならクエリーで全部済ませちゃうな
0471nobodyさん2008/01/20(日) 05:36:17ID:???
>>469
ダブルクォーテーション外せば通るよ

外すのが嫌なら
print "{$test2[$test[0]]}\n";
こんな風に{}で囲めば良い
0472nobodyさん2008/01/20(日) 05:41:31ID:???
471さん
出来ました、ありがとうございます^^
0473nobodyさん2008/01/20(日) 06:41:24ID:???
>>470
馬鹿すぎだろ。せめて配列に入れとけよ。
0474nobodyさん2008/01/20(日) 07:14:25ID:???
>>473
確かにそうだなw
寝ぼけてたw
0475nobodyさん2008/01/20(日) 14:33:02ID:???


相変わらずレベル低すぎ


0476nobodyさん2008/01/20(日) 14:58:37ID:GtMoA5jM
>>466さん,>>468さん
勉強してみようと思います。


>>470さん
ありがとうございます。解決しました。
でも、よくよく考えてみると態々PHPで整形する必要性は全く無いですね^^;
でもPHP関数の勉強になるので今回は敢えてPHPで実装してみようと思います。
0477nobodyさん2008/01/20(日) 17:33:41ID:???
>>471
たまにそんな風に{}で囲むことがある場合があるけど、その場合の{}の意味合いはどう解釈するものなの?
0478nobodyさん2008/01/20(日) 17:50:05ID:???
>>465
strftime でおk
0479nobodyさん2008/01/20(日) 17:50:56ID:???
>>477
まぬあるに書いてあるよ
>>478
全てタイムスタンプを基準としてstrtotime使ったほうが楽でないか?
0480nobodyさん2008/01/20(日) 18:04:17ID:???
おまえらのレベルの低さは産まれつきなのか?親がIQが低いと悲惨よのぅ。
0481nobodyさん2008/01/20(日) 18:13:45ID:???
レベル低いだの煽ってる馬鹿はID出して素晴らしい解答してやってくれ
■ このスレッドは過去ログ倉庫に格納されています