【PHP】下らねぇ質問はID出して書き込みやがれ 96at PHP
【PHP】下らねぇ質問はID出して書き込みやがれ 96 - 暇つぶし2ch300:295
10/06/08 11:33:04

which phpで検索した/usr/bin/php の間違いでした

301:295
10/06/08 11:34:23
何度も連投すみません
/usr/local/bin/phpで解決しました
解決したことを書き込む前にアップしてしまいました

302:nobodyさん
10/06/08 12:39:01
>>296
フィーーッチになってるお

303:nobodyさん
10/06/08 12:39:50
ちゃんと通じていたことを見ておくべきでした

304:nobodyさん
10/06/08 12:52:25 lvF7sIjD
PHPで1円の誤差も許さない金額計算などを行うときには
どのような点に気をつければよいでしょうか。

JavaでいうところのBigDecimalを使うとか、
特定のクラスを使用する必要がありますか?

305:nobodyさん
10/06/08 13:08:53
小数を使わない。誤差が出ない計算を考える。他の言語でもそうじゃないの?

306:nobodyさん
10/06/08 13:10:50 o6m5GUPU BE:1452744386-2BP(2)
>>210
やってみます

307:nobodyさん
10/06/08 13:17:20
>>304
例えば、PHPを避ける

308:nobodyさん
10/06/08 14:06:45 YOnOVKl0
PHP:5.1.6
OS:Centos
utf-8でmail関数を使ってメールを送るクラスをつくっています
phpスクリプトから送信をしてOutlookで受信した際に本文が正しく表示されません
通常であれば表示されてはいけない This is a MIME encoded message から全て表示されてしまいます
正しくメッセージを表示するようにするにはどうしたらいいでしょうか?

メッセージ部分を生成関数
private function MakeBody()
{
 if(count($this->APPENDFILE) > 0)
 {
  $FILEDATA = '';
  foreach($this->APPENDFILE as $RECORD)
  {
   $FILE = chunk_split(base64_encode($RECORD['DATA']));
   $FILEDATA .= "--{$this->BOUNDARY}\n\n"
    . "Content-Type: text/plain; name=\"{$RECORD['NAME']}\"\n"
    . "Content-Transfer-Encoding: base64\n"
    . "{$FILE}\n";
  };
 };
 $RESULT = mb_convert_encoding("This is a MIME encoded message.\n\n",'iso-2022-jp','utf-8');
 $RESULT .= mb_convert_encoding("--{$this->BOUNDARY}\n\n",'iso-2022-jp','utf-8');
 $RESULT .= mb_convert_encoding("Content-Type: text/plain; charset=\"iso-2022-jp\"\n",'iso-2022-jp','utf-8');
 $RESULT .= mb_convert_encoding("Content-Transfer-Encoding: base64\n",'iso-2022-jp','utf-8');
 $RESULT .= mb_convert_encoding("{$this->MESSAGE}\n\n",'iso-2022-jp','utf-8');
 $RESULT .= $FILEDATA;
 $RESULT .= mb_convert_encoding("--{$this->BOUNDARY}--\n",'iso-2022-jp','utf-8');
 return $RESULT;
}


309:nobodyさん
10/06/08 14:07:40
//メール送信関数
function Send($MODE = true)
{
 $SUBJECT = mb_encode_mimeheader($this->SUBJECT,'iso-2022-jp','utf-8');
 $HEADER = $this->MakeHeader();
 $BODY = $this->MakeBody();
 $FROM = "-f{$this->FROM['NAME']} <{$this->FROM['ADDRESS']}>";
 foreach($this->TO as $RECORD)
 {
  $TO = mb_encode_mimeheader("{$RECORD['NAME']} ",'iso-2022-jp','utf-8')."<{$RECORD['ADDRESS']}>";
  if($MODE === true)
  {
   mail($TO,$SUBJECT,$BODY,$HEADER,$FROM);
  }
  else
  {
   echo "--HEADER--\n{$HEADER}\n--TO--\n{$TO}\n--SUBJECT--\n{$SUBJECT}\n--BODY--\n{$BODY}\n";
  };
 };
}

310:nobodyさん
10/06/08 14:08:41
送信テスト用スクリプト
$MAIL = new SENDMAIL();

if($MAIL->SetFROM('送信テスト元','hoge@example.com') === true)
{
if($MAIL->AddTO('送信テスト先','hagu@example.com') !== false)
{
$TIME = 'TEST'.strftime('%Y-%m-%d %H:%M:%S',time());
$MAIL->SetMessage("てすとにゃーん {$TIME} ");
$MAIL->SetSubject("サブジェクトテスト");
$MAIL->SEND(true);
}
else
{
echo 'error TO';
};
}
else
{
echo 'error FROM';
};


311:308
10/06/08 14:17:04 YOnOVKl0
色々設定を変えてテストしていたのですが修正漏れがありました
>>308
違:$RESULT .= mb_convert_encoding("Content-Transfer-Encoding: base64\n",'iso-2022-jp','utf-8');
正:$RESULT .= mb_convert_encoding("Content-Transfer-Encoding: 7bit\n",'iso-2022-jp','utf-8');

312:200
10/06/08 14:23:33 KP/ycwH2
>>210
Error: invalid method
そのままではこれがでます。なので、

//エラーチェック
//リクエストメソッドチェック
if($REQUEST_METHOD != "POST") {
print "Error: invalid method";
exit();
}
を削除しました。
するとやはりDBの中身すべてが出てしまいます。

313:282
10/06/08 14:41:31 IOcc/liv
すみません。遅くなりました。
ファイルは全部で5つあるのでzipにしてアップしました。
URLリンク(loda.jp)

>>292 ぐぐってみたらこれっぽい気がするのですが、なにがなんだか分からない状態です;
もう少しがんばってみようとおもいます。。

314:282
10/06/08 14:57:42
guest_red.phpの13行目の
while ($row = fgetcsv($file, 1024, "\t")){

while ($date = fgets($file, 1024)){
$row = explode("\t", $date);
としたら解決しました。
すみませんでした。

315:nobodyさん
10/06/08 16:39:32
下のような検索フォームを作りたいです。
phpとセレクトフォームによって呼び出すcgiを選択させるphpを教えてください。
呼び出すcgiについては完成しています。

<form method="post" action="URLリンク(aaa.php)">
<input type="text" name="keyword" size="20" value="定着率" />
<br />
<select name="search">
<option value="bookmark">あああ</option>
<option value="mobile">いいい</option>
<option value="pc">えええ</option>
</select>
<input type="submit" value="検索" />
</form>


316:nobodyさん
10/06/08 16:57:07
呼び出すCGIを選択するのではなくて
searchの値によってaaa.phpの中で場合分けして処理するのがセオリーだろうね。

どうしてもってんなら、Javascriptでselectが変更されたら、formのactionを書き換えるか。
でも、このやり方じゃ、アクセシビリティー的にアウトだろう。

317:nobodyさん
10/06/08 17:38:05 hMNg2N9l
最近って文字コードどうしてますか?
もうUTF-8に統一されました?
まだEUCだよとかSJISで頑張ってるとか教えて下さい。

318:nobodyさん
10/06/08 17:39:56
>>316
レスありがとうございます。
すでに検索用のインデックスは作成してしまったので、
それに対応するcgiを選択すればいいだけだったのですが難しそうですね。

319:nobodyさん
10/06/08 19:00:54
対応するcgiに302でいいんじゃないの?
てか、cgiとphpという言葉の使い分けはなんだろ。perl-cgiとか使ってんのかな。なんでもいいんだけどさ。

320:nobodyさん
10/06/08 21:08:21
>>169でファイルロックに関して質問した者です。
>>179のやり方を試して数日様子を見たところ、どうやら問題が解消されたようです。
とても困っていたので助かりました。
ありがとうございました。

321:nobodyさん
10/06/09 01:36:39
appleのhtml5デモサイトでphpが使われてた件

322:nobodyさん
10/06/09 01:41:01
そんなアップル

323:nobodyさん
10/06/09 03:00:39 BsRvxOVf
初歩的で申し訳ありません。
PHPでローカル鯖から送信すると問題なく送れますが
鯖にUPして送ると表示される文字が全部???になってしまいます。

文字コードをいろいろ弄ってみたのですが、全部???で文字化けの変化もしません。
お知恵を貸してください。宜しくお願いします。

324:nobodyさん
10/06/09 03:14:49
それだけじゃ何とも言えないかな。
文字コードは何なのかとか、表示される文字ってHTMLの文字?

325:nobodyさん
10/06/09 03:26:35
これは難しい。
2行目を読んだ時点ではメール送信かと思ったが、3行目でどん詰まりだ。

326:nobodyさん
10/06/09 04:34:39
教えてください!!!
何が分からないのか分かりません!!!(><)

327:nobodyさん
10/06/09 04:40:29
ああわかった。
鯖とローカルのphp.iniを見比べてみてくれ。
encodで検索した内容を主に見てくれ。encodeではない、encodで、だ。
それから、ローカルはIISで鯖はapacheじゃないか?

328:nobodyさん
10/06/09 04:41:36
じゃないな、phpinfoの結果を見比べてくれ。

あと、薄い可能性として、鯖にUPするときに改行コードがおかしくなってないかも疑ってみてくれ。

329:nobodyさん
10/06/09 05:00:03 BsRvxOVf
回答ありがとうございます。

>>324
POST送信でしょうか・・・
pearでインストールしたPHPを使っているので、
どう送ってるのかわかりません。すいません。

>>327
ローカル鯖はapacheです。UPした鯖は、仕様がわかりませんがPHPは
safe_modeで動いているようです。
phpinfoはエラーを吐いてしまいました。

Warning: phpinfo() has been disabled for security reasons in

330:nobodyさん
10/06/09 09:24:00
文字が?になっちまうのは、文字コード変換処理で*失敗*してる。
mbstring.encoding_translation が onか、自前の処理が入ってるか分からんけど。
htaccess使えればoffにする。 使えないようなサーバーなら、
文字化けしないエンコードにページのエンコードを変えるしかない・・・

331:nobodyさん
10/06/09 11:14:04 W1sVZbXG
URLリンク(php.net)
session.use_trans_sid の項目

「PHP_INI_ALL は PHP <= 4.2.3、PHP_INI_PERDIR は PHP < 5 から。PHP 4.0.3 から利用可能。」

意味がわからん 幼稚園児にもわかる日本語で説明頼む
4.0.3~4.2.3 は PHP_INI_ALL 
4.2.3~現行ver まで PHP_INI_PERDIR なのか??

332:nobodyさん
10/06/09 11:26:06
から。がチョットいまいちだけど分からんほどではないかと。
英語のページ見ればよろし。
5からは INI_ALL

333:nobodyさん
10/06/09 11:38:27 BsRvxOVf
>>330
ありがとうございます。ローカル、UP先ともに
;mbstring.encoding_translation = Off
という状態です。

>>327
encodというところはなく、encodingの文字が入るところは
先頭に全て;がついていました。

334:nobodyさん
10/06/09 11:42:59 W1sVZbXG
ありがとう いまいちわかってないけどw
4.0.3 ~ PHP_INI_SYSTEM
4.2.3~ PHP_INI_PERDIR
5~   PHP_INI_ALL

が正解かな??
「PHP <= 4.2.3」て書かれると 4.3.2以下のバージョンと読んじゃうね

335:nobodyさん
10/06/09 11:51:23
いや、なんか変だな。ちょっと調べる。

336:nobodyさん
10/06/09 12:47:11 W1sVZbXG
>>323

phpinfo(); のmb_string の項目をローカルと鯖両方さらすがよろし

337:nobodyさん
10/06/09 12:54:11
PHP <= 4.2.3って書いて 4.2.3から (ALL)
PHP < 5 って書いて 5から (PERDIR) なのかねぇ。

338:nobodyさん
10/06/09 13:05:54 W1sVZbXG
5.1.6 でプログラム中の
 ini_set('session.use_trans_sid', '1'); 効いたんだべ



339:nobodyさん
10/06/09 13:45:29 BsRvxOVf
>>336
ありがとうございます。
phpinfoを実行するとエラーがでてしまいます。
Warning: phpinfo() has been disabled for security reasons in

340:nobodyさん
10/06/09 14:07:58 W1sVZbXG
なる 今まさにワシもそのタイプのものと格闘中w

mbstring.detect_order → print mb_detect_order();
mbstring.internal_encoding → print mb_internal_encoding(); 
mbstring.internal_encoding → print mb_internal_encoding();

手な感じで1個1個調べるしか無いっぽいですね

mbstring.encoding_translation はどうやって調べればよかたかな?

情報少ないのであてずぽですが、
internal_encoding = EUC
mbstring.encoding_translation = on
になってんじゃないかなー 笑顔鯖 ならw

341:nobodyさん
10/06/09 17:03:38 wh/h1AEj
Livedoor Blog APIのAtomについて質問です。

URLリンク(wiki.livedoor.jp)
ここを見ると、本文の投稿には次の二つのやり方があるみたいですが

<content type="text/html" xml:lang="ja" xml:base="URLリンク(blog.livedoor.jp)">
<p>記事本文</p>
</content>

<blogcms:source>
<blogcms:body><![CDATA[<p>記事本文</p>]]></blogcms:body>
<blogcms:more><![CDATA[<p>記事追記部分</p>]]></blogcms:more>
</blogcms:source>

上の例の場合に、記事追記部分を指定するにはどうすればいいのでしょうか。

342:nobodyさん
10/06/09 18:51:55 BsRvxOVf
>>340
ありがとうございます

mb_internal_encodingを設定しない場合、
echo mb_internal_encoding();は
ISO-8859-1 でした。



343:nobodyさん
10/06/09 23:02:26 kxHltjxi
大抵の通販サイトなどで使用される、画像を表示する処理を作っているのですが
商品がたくさんある場合、「次へ」などのリンクをクリックすると
次の画像群が表示される……という処理を作ろうとしています。

PHP+SQLで画像のパスを保存しておいて、PHPファイル内でHTMLを記述し描画を行う処理はできたのですが
次の画像群を表示するというメッセージはどのようにすればPHPに送ることができるのでしょうか。

すごく初歩的な質問ですがよろしくお願いします。

344:nobodyさん
10/06/09 23:06:28 kxHltjxi
曖昧な質問の仕方でした。
知りたいことは、一般的な通販サイトではどのような処理になっているのかということと
前述した、「次へ」というリンクをクリックすることで、
動的にページを更新し、次の画像群を表示するためのメッセージを送る方法についてです。

よろしくお願いします。

345:nobodyさん
10/06/09 23:07:32
ページング処理のことかな?

346:nobodyさん
10/06/09 23:11:52
getでページnoを指定する
index.php?page=1みたいに
PHPでpage=1のパラメータを受け取った後
画像の表示件数を1ページに50とした場合
50*page-1から50*pageまでをLIMITで指定したものをSQLから取り出すとか
取り方なんかはDBの構造にもよってもっと効率のいい指定方法ができるけど
まぁこんな感じ

347:nobodyさん
10/06/09 23:11:58 kxHltjxi
OKWaveで同様の質問を見つけることが出来ました。
ありがとうございます!
まずそこを見て実装してみます。

348:nobodyさん
10/06/09 23:23:43 kxHltjxi
>>346
ありがとうございます!
ページング処理(今知りました)はget送信で送るみたいですね。
概要はわかりましたが、index.php?page=1が解読できないので調べている最中です。

349:nobodyさん
10/06/09 23:28:12
タッチの差だったな

350:nobodyさん
10/06/09 23:45:16 YOGuQm0P
>>342

ということはその値を設定してるのかな??

もちーっと詳しく書かないと
エスパーにしか答えがわからんっぽい

mb関係の実際のPHP動作時の設定
何が文字化けしているのか(POST GETで渡された文字列のみ 全体 etc)
などなど


351:nobodyさん
10/06/10 00:35:45 /fuvg3FQ
phpでのページング処理は、再帰構造でカレントページのIDをどんどん受け渡す感じなんですね。

肝心のHTMLの記述方法が分からなくてどうすればいいのか探してたら
>>346さんのindex.php?page=1で直接GET送信するってことか。
やっと作れます。
ありがとうございました。

352:nobodyさん
10/06/10 01:47:48
多分再帰という用語の使い方を間違えてるだけだろうからそのままがんばってください

353:nobodyさん
10/06/10 14:31:48 PM/fSWQl
XMLのURLに色々な指定を加えていると
URLリンク(api.com)
こんな感じで長くなってしまい見にくいので、整列する方法を教えてください。
要素を一つずつ配列にしてみたんですが、ループしないとすべて表示できないのでうまくいきませんでした。

354:nobodyさん
10/06/10 16:08:19 I9t81ujy
スマナイ ニホンゴで頼む

355:nobodyさん
10/06/10 16:12:46
XMLの話か?URLの話か?
長いから整列ってのも意味分かんないし、
突然でてきた要素ってものの指すものもわからんし、
配列、ループでうまく出来ないって、なにがさ。

356:nobodyさん
10/06/10 16:45:05
プログラムへたなやつって日本語も苦手なやつ多いよな。

357:nobodyさん
10/06/10 17:58:51
言っちゃあ要件定義も設計書もコーディングも翻訳作業だもんな

358:nobodyさん
10/06/10 23:37:48 /fuvg3FQ
また質問させて頂きます。
PHP 5.3.1
Eclipse php galileo SR2 win32 (PDT)
XDebug 2.1.0 rc1
を使用し、ブレークポイントで処理がとまるようにデバッガの設定を行っていますが出来ませんでした。
デバッガを利用してる方で、安定して動くバージョンを教えてください。
よろしくお願いします。

359:nobodyさん
10/06/11 01:12:25
xdebug.dll は ts/nts vc6/9 などは合わせてあるか
php.ini での設定内容を晒す

360:nobodyさん
10/06/11 01:53:05 8X4/rYMm
dllは、non-thread-safeでない方です。

phpInfoで確認したところ、
Compiler MSVC6 (Visual C++ 6.0)となっていますので、
使用しているdllは、php_xdebug-2.1.0RC1-5.3-vc6.dllです。

iniファイルの設定内容は、ファイルの最後に

zend_extension_ts = "C:\xampp\php\ext\php_xdebug-2.1.0RC1-5.3-vc6.dll"
xdebug.remote_enable=1
xdebug.remote_handler="dbgp"
xdebug.remote_mode=req
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_log="C:\xampp\apache\logs\xdebug.log"
xdebug.manual_url = URLリンク(jp2.php.net)
xdebug.collect_params = On
xdebug.dump.GET = *
xdebug.dump.POST = *

を追加しました。

361:nobodyさん
10/06/11 02:43:41
見た感じ問題なさそうだなぁ
なんとなくeclipse側の気がする
ポート9000 で通信してるかとか確認してみるのがいいかも

可能ならphp/xdebug vc9ビルドを試してみるとか
xdebug は結構不安定だったりするからver変えてみるのもいいかも


362:nobodyさん
10/06/11 03:23:14 8X4/rYMm
>>361
ほとんどのバージョンを試してみましたがダメのようです。
ありがとうございました。

もし正常にデバッグできている方がおられたら、PHPやEclipseのバージョンを教えてください。

363:nobodyさん
10/06/11 03:26:13 /BtEfgaD
XAMPPは標準装備
追加いらず
php.ini書き換えだけ

364:nobodyさん
10/06/11 03:28:28
xdebug.idekey はどうなってる?
eclipse と php.ini 両方で合わせる必要があったはず

365:nobodyさん
10/06/11 03:30:56
ふと自分の php.ini 見て思った。
zend_extension_ts の ts が要らんかも
zend_extension="/path/to/xdebug.dll"
にしてみて

366:nobodyさん
10/06/11 03:36:51 8X4/rYMm
>>365
tsが無いと、終了せずにどこかでループを起こしてるみたいです。
進捗が途中で動かなくなります。

xdebug.idekey について今調べているところです。

367:nobodyさん
10/06/11 04:52:38 8X4/rYMm
URLリンク(www.php-seed.net)

によると、私の環境であればzend_extension_tsでないとダメみたいなのですが
phpInfo()をみると、XDebugの記述が出てきません。
しかし、zend_extensionとすると、phpInfo()にXDebugの情報が出てくるようです。

368:nobodyさん
10/06/11 09:43:31 S65wpJHf
皆さんの会社はLinuxを使っていると思いますが、どのディストリビューションを使っていますか?
またサーバ機とAMP開発用ではOSを使い分けてたりしますか?


369:nobodyさん
10/06/11 12:24:55 E6U8qQpk
AND(絞り込み)検索を簡単にする方法、あるいは関数などないでしょうか?

URLリンク(q.hatena.ne.jp)

ここを読んだ限り、"いちご AND バナナ" などのキーワードに整形すると
AND検索をしてくれる関数があるように思えるのですが。。

それとも、Keywordをスペースで分割して、一つ一つif文でつなげて
mb_strposしていくしかないのでしょうか?

370:nobodyさん
10/06/11 12:31:26
まあ、SQLのことですね。
データベースでないなら、ちまちまやるしかないです。

#LINQ PHPなんてものもあるんだな。

371:nobodyさん
10/06/11 12:32:55 /BtEfgaD
データベース

372:nobodyさん
10/06/11 12:34:59 E6U8qQpk
>>370

レスありがとうございます。
やはりSQL限定ということですね。

自分の用途としては、
HP上にある文字列をscrapで取り出して、 保存していたキーワードを使って検索というものです。

例えば、 "りんご バナナ" というキーワードをデーターベースに登録。
HP上で ”りんご ぶどう バナナ” などのように絞り込み検索に適合するものがアップされたらマッチするといったものです。

373:nobodyさん
10/06/11 14:39:35 1mHG41R+
ファイルの読み込み速度のことで困っています。

現在、外部サーバにあるファイルを取得したいと考えているのですが、
どうも取得に5秒近くかかってしまいます。

また、ローカルのファイルであれば100ms程度で取得が完了します。

この開きをなるべく縮めたいのですが、何か解決策はありますでしょうか?
アドバイスよろしくお願いします。

環境:Win7/Apache2/PHP5

374:nobodyさん
10/06/11 14:43:31
>>373
PHPでどうこうなる問題じゃない
レスポンスの速い外部サーバにかえてください

375:373
10/06/11 14:48:12 1mHG41R+
>>374
ありがとうございます。

説明不足でしたが、いかなる外部サーバであっても結果は同じなんです。
違いはローカルかそうでないかという点のみです。

ブラウザのように高速にファイルを取得することはできないのでしょうか?

376:nobodyさん
10/06/11 14:50:17
ファイルを取得してる部分のソースは?

377:373
10/06/11 14:56:15 1mHG41R+
>>376
今は簡単に file_get_contents で取得しています。

file_get_contents("URLリンク(www.google.com)"); //遅い
file_get_contents("URLリンク(66.249.89.99)"); //IP指定するも変化なし
file_get_contents("./index.html"); //ローカルであれば高速

先ほどローカル内で他サーバのファイルを取得してみましたが、
やはりこちらも時間がかかってしまいました。

file_get_contents("URLリンク(192.168.1.25)");

378:nobodyさん
10/06/11 15:03:44
外部サーバから外部サーバのファイル取得ではなく、
ローカルから外部サーバのファイル取得?
そのスクリプト自体はサーバのレスポンス次第ですぐ返ってくる
www.google.comだと一瞬
ファイアーウォールとかが邪魔してるんだろうか

379:373
10/06/11 15:10:07 1mHG41R+
>>378
今はローカルサーバから外部サーバへの接続という形ですが、
将来的には外部サーへ移行させる予定です。(完成次第)

先ほどファイアーウォールをすべて無効にした上でテストしてみましたが、
結果に変わりはありませんでした;

380:nobodyさん
10/06/11 15:18:06
サーバーで wgetってやっても遅いんじゃない?サーバーの設定の問題かも。

381:nobodyさん
10/06/11 15:20:09
>>379
サーバ(かPHP?)のipv6をdisabると良い


らしい↓
URLリンク(www.directadmin.com)

382:373
10/06/11 15:32:53 1mHG41R+
>>380
サーバ機にインストールされているブラウザでは通常のスピードで
ページの読み込みができました。

>>381
どうやらこちらが怪しいみたいなので、もう少し時間を置いて設定を
見直してみたいと思います。

下らない質問にお付き合い頂きありがとうございました。

383:nobodyさん
10/06/11 16:53:35 bRlHND6j
質問です。
Cache_Liteを使ってキャッシュを保存しているんですが
新着があった場合(キャッシュがない場合)に、
キャッシュとの差分のみ(新着部分のみ)を取得することってできませんか?

384:nobodyさん
10/06/11 20:34:14
スレリンク(php板)

385:nobodyさん
10/06/11 20:44:10
スレリンク(php板:931番)
これって終わってない?海外は情報も多いので兎も角、国内www

386:nobodyさん
10/06/11 20:44:11 /BtEfgaD
1.htmlと2.htmlの差分抽出を求めることでキャッシュは必然ではない。

387:nobodyさん
10/06/11 22:08:35
>368
開発環境はWindows or Macだが、動作させる開発サーバーはLinux(仮想マシン)で、本番環境と同じもの。
ディストリは某日本語サポートのあるものを使っている。

388:nobodyさん
10/06/12 05:44:24
>>382
自分の環境でもfile_get_contentsはすっごい遅かった、cURLの1、5倍ぐらい遅い
<?php
function curl_get($url) {
  $ch = curl_init();
  $option = array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true, //結果を出力させない
    CURLOPT_BINARYTRANSFER => true, //結果を加工しない
    CURLOPT_FORBID_REUSE => true, //処理が終了した際に接続を切断
  );
  curl_setopt_array($ch,$option);
  return curl_exec($ch);
}
echo "file_get_contents<br />";
for($i = 1 ; $i <= 10 ; $i++) {
  $time_begin = microtime(true);
  file_get_contents("URLリンク(www.google.com)");
  echo $i." : ".(microtime(true)-$time_begin)."s<br />";
}
echo "curl<br />";
for($i = 1 ; $i <= 10 ; $i++) {
  $time_begin = microtime(true);
  curl_get("URLリンク(www.google.com)");
  echo $i." : ".(microtime(true)-$time_begin)."s<br />";
}


389:nobodyさん
10/06/12 05:57:57
1.5倍なら大したことないじゃん

390:nobodyさん
10/06/12 06:00:00
1.5倍どころじゃないわ、3-4倍ぐらい違う
file_get_contents
1 : 0.282200098038s
2 : 0.286005020142s
3 : 0.289804935455s
4 : 0.285599946976s
5 : 0.285084962845s
curl
1 : 0.110718011856s
2 : 0.0746190547943s
3 : 0.0745959281921s
4 : 0.0765240192413s
5 : 0.0723419189453s

391:nobodyさん
10/06/12 06:06:46
1/10秒でそこまでするのもな・・・
5秒ってのが明らかに異常なわけで

392:nobodyさん
10/06/12 14:05:51 CAUo94F7
最近PHPを始めたものです。とても初歩的な事を聞くようで申し訳ないのですが…

PHPを書いたファイルをWEBサーバで開いたところ何も表示されず、真っ白いままです。
おそらく、コーディングに誤りがあるのだと思うのですが、式が膨大な量なためどこにミスがあるのか見つけるのが大変です><
エラーメッセージを出して誤りのヒントを探りたいのですがどうやったらいいのでしょうか?
できれば、何行目にミスがあると指定してくれるものがあれば最高です。。ご教授くださいませ…

393:nobodyさん
10/06/12 16:52:59
デバッガ使う

394:nobodyさん
10/06/12 19:06:06
>>392
とりあえず、Webサーバの方のエラーログを覗いてみたら何か出てるかもよ。

395:nobodyさん
10/06/12 20:29:04
>>392
ローカルでエラー表示するような実行環境作るといいよ

396:nobodyさん
10/06/12 21:18:33
<?php
$domain = "127.0.0.1";
$fp = fsockopen ( $domain , 80 );
fwrite($fp, "Referer: URLリンク(www.google.co.jp)");
fclose($fp);
?>
<a href=URLリンク(www.kojikoji.net)確認</a>



こう書いても送られるリファラがURLリンク(www.google.co.jp)になりません
原因はなんでしょうか

397:396
10/06/12 21:19:17 7hIU3RqJ
すいません、ID出すのを忘れていました

398:nobodyさん
10/06/12 22:10:26
えっ・・・?

399:nobodyさん
10/06/13 00:36:25
リファラを設定するのは誰だろうね

400:nobodyさん
10/06/13 00:47:14
ぐぐって、ちゃんとできてるやつ真似たらどうでしょう。
URLリンク(d.hatena.ne.jp)
2種類入ってるので、どっちかでテストしてみては



401:nobodyさん
10/06/13 03:03:14
php でおもしれえサイトハケーン

URLリンク(2chtocsv.zzg.jp)

2ちゃんのスレをCSVにするらしい
今まで無かったのが不思議だな

402:nobodyさん
10/06/13 03:58:04
宣伝乙
こんなのこのスレにいるやつなら誰でも作れますから

403:nobodyさん
10/06/13 05:50:13
>>402
正規表現と、多少の知識あればいけるなって事で同意w
てか、金取ってねぇサイトで宣伝乙もさもしいなw

404:nobodyさん
10/06/13 09:43:25
正規表現必要か・・・?

405:nobodyさん
10/06/13 14:27:11
でっcSVにしてどうすんの?

406:nobodyさん
10/06/13 17:14:55
>>405
Microsoft Moneyにインポートする

407:nobodyさん
10/06/13 18:57:45 0BtVGJ62
Fatal error: [] operator not supported for strings の対処方法でお助けくだされ。

$array = array("33","55");

foreach ( $array as $array ) {

//全角数字を半角に
$array = mb_convert_kana($array , "n");

$test = array();
$test[] = $array;

}

上記のようにしてもエラーが消えず、配列に格納できないのです。

408:nobodyさん
10/06/13 19:02:49
> foreach ( $array as $array ) {


409:nobodyさん
10/06/13 19:06:57 0BtVGJ62
>>408

おおーーーーー!!!
上手くいきました!!

ありがとうございます!!!

これでめちゃくちゃはまってたんです。

Thank you!!!!

410:nobodyさん
10/06/13 19:07:09 ebiz4dpp
$array = array("33","55");

foreach ( $array as $array ) {

411:nobodyさん
10/06/13 19:07:36 0BtVGJ62
foreach使う時は 同じ名前の変数を使ってはいけないのですね。。
これからは気をつけたいと思います。

412:nobodyさん
10/06/13 19:34:32 0BtVGJ62
"06/12 タイトル 花見" 

半角スペースで区切られた文字列があります。

この最初のスペースが出現するまでの "06/12" の最初の文字列のみを削除して、

"タイトル 花見" という文字列を作るにはどうすればよいでしょうか?



逆引きレシピを参考にそれらしい関数を探しているのですが、
どうにも見つからず。。

413:nobodyさん
10/06/13 19:53:48
>>412
strstr

414:nobodyさん
10/06/13 20:14:37 0BtVGJ62
>>413

ありがとうございます!!
これでなんとか出来そうです!

415:nobodyさん
10/06/13 21:11:04 gv6bC0io
janeのNGFiles.txtに書かれているようなハッシュ値にMD5を変換したいと思います。
URLリンク(ideone.com) を移植して実現しようと思っているのですが、どうにもうまくいきません。

どなたかMD5→NGFiles.txtのハッシュ値変換のサンプルをください。

416:nobodyさん
10/06/13 21:15:01
>>403
dat ファイル見たことある?

417:nobodyさん
10/06/13 21:25:24
URLリンク(pc11.2ch.net)

<>をカンマに置き換え
文字列のカンマをエスケープする
終了

418:nobodyさん
10/06/13 22:10:02
そしてカンマいなくなった・・

419:nobodyさん
10/06/13 22:30:54
DATファイルに<BR>とか入ってるのね

420:nobodyさん
10/06/14 05:13:57
Excelのインポート時に区切り文字を<>にすればよい。

421:nobodyさん
10/06/14 05:58:34
お前ら突っ込みが容赦ないな
>>401はがんばって作ったんだよ
ほめてやれよ

422:nobodyさん
10/06/14 12:30:36 Ea+qDap6
【PHPのバージョン】5.3
if(!empty($var['a']) || !empty($var['b']) || !empty($var['c'])){
$varの配列のキーが可変の場合
上記のようにa,b,cとキーを指定しなくても
どれかの値が入ってればtrueと判別出来る方法ありますか?


423:nobodyさん
10/06/14 12:37:52
$b = false;
foreach ($var as $a) {
if (isset($a)) {
$b = true;
break;
}
}

424:nobodyさん
10/06/14 12:48:47 Ea+qDap6
サンクス

425:nobodyさん
10/06/14 13:04:21
issetと !empty動作違うので注意ね。 ""のときとか。

426:nobodyさん
10/06/14 14:32:12 Pwcpy8Zl
良くある風俗の出勤管理のシステムを作ってるのですが、

【管理画面でやりたい事】
・管理画面でアクセスした日から一週間分の出勤予定データを登録できる。

【表示ページ】
・日付ごとに出勤予定の女の子の写真と名前表示

【現在の状況】
・table「girlsprof」で女の子のID、名前、プロフを管理。

【質問】
出勤予定を管理できるよう、table「schedule」を作って管理しようと思ったのですが
このtableにはどのようなカラムをもたせればよいですか?

例1:6/1 6/2 6/3 6/4と月日を全部カラムにしておき、管理画面ではプログラムでその日から一週間分を
取得し、それぞれの日付と一致するカラムを更新。ってやらないとだめなのか?

例2:1~31までをカラムとする。しかしこれだと、30日に管理画面をひらいたときは本来なら30日~翌月の5日までの
予定を登録できなきゃいけないのに、その月の日数(2月は28日までしかない)とかによっても、狂ってきてしまいます。

これはどうやれば解決できますでしょうか?

427:nobodyさん
10/06/14 14:44:10
プログラマを雇う

428:nobodyさん
10/06/14 14:45:04
そういうのだったら普通は、日付と女の子IDと出勤予定ありなしの3カラムじゃねーの?

429:nobodyさん
10/06/14 14:55:50
ISO 8601のYYYY-DDD形式で入力してもらう

430:nobodyさん
10/06/14 15:02:29 Pwcpy8Zl
>>出勤予定有り無しは確かに必要ですね!ありがとうございます。
3カラムだけって事は日付の部分はどう管理するんですか?

日付にも、
何月かの情報を含めて365カラム(うるう年も考えて366カラム)か
1~31日までの31カラムかとかいろいろあると思うのですが、

3カラムだけで管理するとなると、どうやるのでしょうか?
日付のカラムに出勤予定日を追記していく感じでしょうか?
それだと、過ぎた過去の日にちも残ってしまうということでしょうか?

431:nobodyさん
10/06/14 15:15:11
>>430
PHPがどうのこうの以前の話
データベース板へどうぞ

432:nobodyさん
10/06/14 15:21:35
>>430
一週間分なので、"何日から"かと7日分の出勤予定。 表示側なり管理画面では
今日から一週間分の予定をそこから出す。範囲外だったら予定なし。 未定と休み分けるんなら別カラムか
分かるような値にしとく。
3カラムってのは、出勤用に別テーブルで ID、日付、出勤データ つくる形かと。 どっちも一長一短あるので好きな方で。

433:nobodyさん
10/06/14 15:34:24
良くある風俗の出勤管理のシステムを作ってるのですが、 | OKWave
URLリンク(okwave.jp)

434:nobodyさん
10/06/14 15:36:35
>>430
普通は横に持たず、縦に持つ。
表示する時にそれを加工する。
過去のデータがどうしても要らないなら毎日、もしくは毎週削除する処理をつくるが、
あったら困るものでもないと思う。

435:nobodyさん
10/06/14 15:46:37
こんなに釣り師にやさしいスレは初めて拝見したんだぜ

まぁ、こんなでいいんじゃないの?
girlsprof: | ID | 名前 | プロフ |
schedule: | ID(girlsprofのIDと一致) | 出勤日 |

例)
girlsprof:
| 0001 | ブス子 | ア○ルもおkです |
| 0002 | デブ美 | デブでよければ |
schedule:
| 0001 | 2010-06-25 |
| 0001 | 2010-06-26 |
| 0002 | 2010-06-25 |

女の子のIDで検索すればその子の出勤日が取得できるし、日付で
検索すればその日に出勤する女の子が取得できるから充分でしょ。

436:nobodyさん
10/06/14 15:48:39
>>433
わざわざOKWaveに登録してマルチを装うなんてお前も暇だなw

437:nobodyさん
10/06/14 16:23:40
>>433
マルチに見せかけとか正直ひくわ・・・
お前が日本人ではないことを祈るよ

438:nobodyさん
10/06/14 16:32:32 hKCZ/dhE
質問がそのままコピペでワロタ

439:nobodyさん
10/06/14 16:35:40
>>436-437
お前らよくマルチに見せかけとかわかるな

俺にはお前らのレスが「マルチに見せかけという事にしたい」と見えてしまうよ
邪推かな?

440:nobodyさん
10/06/14 16:36:24
>>437
祈られてもオレは日本人w 日本人は善人ていう思い込みは一体どこから?w

441:nobodyさん
10/06/14 16:41:32
>>439
ヒント:登録日

>>440
日本人が優れた人種とは一言も言っていない
要するにこんなくだらんことを思いつくようなやつはチョン以外ありえないって言いたかったんだよ
分かりにくくて悪かったな

442:nobodyさん
10/06/14 17:01:22
一つ間違いないのはマルチするやつも、見せかけるやつもクズだってことだ。

443:nobodyさん
10/06/14 17:20:19
もう一つ間違いないのは>>426が最もクズだってことだ。

444:nobodyさん
10/06/14 18:18:39 154tZPz8
今までXHTMLで作っていたものをhtml5で作ってみようといじっていたのですが、
下のようにドキュメント宣言を変えただけなのですが、何故かPHPの部分が出力されなくなりました。
なんででしょうか?? apacheの設定が別途必要なのでしょうか??

index.htm
------------------------------
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "URLリンク(www.w3.org)">
<html xmlns="URLリンク(www.w3.org)">
<head>
 …
</head>
<body>
<?php include_once($_SERVER['DOCUMENT_ROOT'] . '/aaa.php'); ?>
 …



<!DOCTYPE html>
<html lang=="ja">
<head>
 <meta charset="utf-8" />
 …
</head>
<body>
<?php include_once($_SERVER['DOCUMENT_ROOT'] . '/aaa.php'); ?>
 …

445:nobodyさん
10/06/14 18:33:38
ショートオープンタグをOFFにするとか 1行目 echoで出せば直るかも。

446:nobodyさん
10/06/14 19:06:51
上のは間違い。

447:nobodyさん
10/06/14 19:46:52
>>444
apacheの設定は必要ないだろうからそれだけじゃ分からないよ。
PHPの部分だけ表示されないとの事だけど、肝心のPHPの部分はどうなってるの?
includeしなきゃ表示される?

448:nobodyさん
10/06/14 20:24:19 IP77a2fP
file_get_contentsでは失敗するとfalseが戻りますが404だったときに404を取得する方法はありますか?


449:nobodyさん
10/06/14 20:25:36 154tZPz8
>>445
short_open_tagはoffになってました
>>447
XHTMLのものをそのまま使ってるだけなので
PHPのコード自体は問題ないはずです

試しに
<?php include_once($_SERVER['DOCUMENT_ROOT'] . '/aaa.php'); ?>
の部分を
<?php echo 'test php';?>
に変えてみたのですが、やはり表示されなかったです

450:nobodyさん
10/06/14 20:33:57
>>448
file_get_contents 404 で検索。

451:nobodyさん
10/06/14 20:42:11 qzix/x5L
"4時限 日本のメディアと文学 千田 洋幸 教育 "

"4時限 日本のメディアと文学 千田 洋幸 教育"

上のように、半角スペースやタブなど様々な要素が混ざっている文字列を
下のように半角スペース区切りで整形したいです。


■考えたコード

//全角数字を半角に
$keyword = mb_convert_kana($keyword, "n");

//全角スペースを半角に
$keyword = mb_ereg_replace('[ ]{1,}', ' ', $keyword);

$keyword = trim($keyword);

上記のようなコードでは上手くいかなかったのですが、
どうすれば綺麗に整形できるでしょうか?

452:nobodyさん
10/06/14 20:48:46
$keyword = str_replace( array(" "," ","\t")," ",$keyword);

453:nobodyさん
10/06/14 21:17:59 qzix/x5L
>>452

ありがとうございます!

試してみたのですが、

” 1時限 社会開発論 店田 廣文 人科”

このように2以上のスペースやタブの時に完全に半角スペースひとつになりませんでした。。

454:nobodyさん
10/06/14 21:20:36 qzix/x5L
$words =" 4時限 日本のメディアと文学 千田 洋幸 教育 ";
$words = trim($words);
$words = preg_split("/[\s,]+/",$words);

正規表現で分割してみたのですが、全角スペースが分割されませんでした。
全角スペースも分割する方法はあるでしょうか?


array
0 => string '4時限' (length=9)
1 => string '日本のメディアと文学' (length=30)
2 => string '千田 洋幸' (length=15)
3 => string '教育' (length=6)

この ”千田 洋幸” も分割したいです。

455:nobodyさん
10/06/14 21:32:25
>>454
正規表現に全角スペースを足せばいいじゃん

456:nobodyさん
10/06/15 04:36:19
<form enctype="text/css" action="<?php echo $PHP_SELF; ?>" method="get" >
<?php
if(is_null($shu)){
種類:<input type="text" name="shurui">
付属品:
<select name="huzoku">
<option value="abc">ABC</option>
<option value="lmn">LMN</option>
<option value="xyz">XYZ</option>
</select><br>
<input type="submit" value="送信">
}
else{
$shu = $_GET['shurui'];
$huz = $_GET['huzoku'];
echo "Your choice is $shu with $huz";
}
?>
</form>

見にくいコピペですいませんが、if文内のタグがすべてエラー対象になってしまいます。
何がいけないのかどなたかご教授のほどを…

457:nobodyさん
10/06/15 05:05:47
文法くらいなんとかしろよ

458:nobodyさん
10/06/15 10:27:34
これはひどい

459:nobodyさん
10/06/15 11:02:33
SHIFT-JIS環境でPHPファイルを作ってしまい、
それをUTF-8にすると、コメントがすべて文字化けしてしまうのですが、
どうすれば日本語を文字化けせずにUTF-8に変更できるでしょうか?
SHIFT-JISからUTF-8にすると文字コードの違いから
文字化けしちゃうのはわかりますが、対処策がわかりません

460:nobodyさん
10/06/15 11:09:33
>>1

461:nobodyさん
10/06/15 13:53:31
すみません、スレ違いでした

462:nobodyさん
10/06/15 14:25:48 FYWiA/i5
>>455

ありがとうございます。上手く行きました!

463:nobodyさん
10/06/15 14:29:04 FYWiA/i5
array
0 => string '' (length=0)
1 => string '' (length=0)
2 => string 'テスト' (length=9)
3 => string '12' (length=2)

このような配列の時、配列の中身があるものだけ残すには
どのようにすればよいのでしょうか?

array
0 => string 'テスト' (length=9)
1 => string '12' (length=2)

最終的にこのように変換したいです。

マニュアルを調べたところ、array_spliceでやるのかなと思っているのですが、
やり方がなかなか分かりません。

464:nobodyさん
10/06/15 14:43:49
ループさせるのが簡単でいいんじゃね

465:nobodyさん
10/06/15 14:51:30 FYWiA/i5
>>464

できればもう少しヒントを! 使う関数名だけでもよいので!

466:nobodyさん
10/06/15 15:04:30
つarray_filter

ただし添え字は詰めてくれないのでarray_mergeあたりと併用

467:nobodyさん
10/06/15 15:05:59
素直なものなら
for ( $i = 0 ; $i < count($array) ; $i++) {
if ( $array[$i] ==""){
array_splice( $array ,$i,1);
$i--;
}
}

468:nobodyさん
10/06/15 15:15:54 FYWiA/i5
>>466 >>477

ありがとうございます! 
ヒントをもとにいろいろ試してみます!

469:nobodyさん
10/06/15 15:18:12
$WK = array('','11','','','22','33','','44','');
echo "元の状態\n";
var_dump($WK);

$WK2 = array();
foreach($WK as $WK1)
{
if((isset($WK1) === true) and (strlen($WK1) > 0))
{
$WK2[] = $WK1;
};
};

echo "\n結果\n";
var_dump($WK2);

470:nobodyさん
10/06/15 15:19:29
>>467で結果が出ていたか

471:nobodyさん
10/06/15 15:26:53
$a = array_merge(array_filter($a, function($s){return strlen($s) > 0;}));

472:nobodyさん
10/06/15 15:27:54 wrbhrBX4
>>463
$array = array('', '', 'テスト', '12');
var_dump(array_diff($array, array('')));

473:nobodyさん
10/06/15 17:38:39 pnwlJPRh
会員サイトでユニークID何にするか迷ってるんだけど
UNIXタイムスタンプってよくない?

474:nobodyさん
10/06/15 18:02:28
別にそれでもいいけど、それなら連番でもよくね?

475:nobodyさん
10/06/15 18:45:33
いやこう登録した時間も分かるし一石二鳥みたいな?

476:nobodyさん
10/06/15 19:41:36
そして同じ時刻に2人登録して罠に...

477:nobodyさん
10/06/15 21:01:27
同じ時刻に登録されるのが怖いならmicrotime()使えば?
1秒間に10万人が登録しても余裕(1マイクロ秒=100万分の1秒)

478:nobodyさん
10/06/15 21:07:40
それでもやっぱり所詮は確率なのであった。ま、シングルコアなら
大丈夫な気がするけどw

479:nobodyさん
10/06/15 21:09:11
DB使え。登録日もいれとけ。

480:nobodyさん
10/06/15 21:10:43
会員ID&日時でいいじゃん。

481:nobodyさん
10/06/15 21:17:55
まあ普通は登録日時は別にとっとくもんだ。

482:nobodyさん
10/06/15 22:49:42
まあファイルロックでもして待たせればタイムスタンプでもいいわな


483:nobodyさん
10/06/15 23:14:51
uniqidっていうユニークIDを生成する関数があるよ。

484:nobodyさん
10/06/16 00:23:12
普通連番だろ
それ以外にする理由がない

485:nobodyさん
10/06/16 00:35:10
IDをユーザが決められるようにすればいいじゃん
登録時に既存のIDをチェックして、重複が発生しないようにする

486:nobodyさん
10/06/16 00:44:04
まあ掲示板みたくIDを表示する必要があるならそれでいいが
最近はメールアドレスをID代わりにするのがトレンド


487:nobodyさん
10/06/16 01:27:08
そして連番にして番号をずらせば他の人の情報が読めちゃう不思議仕様に


488:nobodyさん
10/06/16 01:41:37 sfuhSdY7
拡張子がPHPのファイルにはアクセスさせない、ってのをしたいんですけど、
$HTTP["url"] == "\.(php)$" {
{url.access-deny = ( "" )
}

URLリンク(exprode.net)
URLリンク(exprode.net)
URLリンク(exprode.net)

のようなURLまで対応させるにはどうしたらいいでしょうか?

489:nobodyさん
10/06/16 01:43:16
メールアドレスをID代わりにするデメリットもあるよね。

490:nobodyさん
10/06/16 01:46:07
>>488
それはPHPの話なのかな?
Webサーバ(lighttpd?)でアクセス制限したいように見えるけど…。

491:487
10/06/16 01:56:07 sfuhSdY7
質問的には正規表現ですね
linux板で聞きます

492:nobodyさん
10/06/16 02:52:57
環境Eclipse for PHP Developers(eclipse3.5.2)を使用しています。

デバッグにて引数を渡したいのですが、
メニュー > 実行 > デバッグの構成 > PHPスクリプト引数
に値を設定してもデバッグ時に$_GETの中に値が入ってくれません。
(具体的には、hoge.php?id=1 とし、$_GET['id']で1が取れる事を期待しているのですが・・・)

実行時に引数を渡してやるにはどうしたらよいのでしょうか。
よろしくお願いします。

493:nobodyさん
10/06/16 05:28:00 MIQQfYzz
PHP+PDOで、検索結果の総レコード数を取得したいです。

SELECT * FROM tablename WHERE ( colum BETWEEN 10 AND 20 ) LIMIT 25; # 実際には320件ある
rowCount()だと当然「25」となります。
総レコード数である「320」を取得する効率的な方法を教えてください。

現在は、以下のように2回クエリを発行して対処しています。

$stmt = $pdo->query( 'SELECT COUNT(*) FROM tablename WHERE ( colum BETWEEN 10 AND 20 );' );
list( $count ) = $stmt->fetch();
echo $count;
$stmt = $pdo->prepare( 'SELECT * FROM tablename WHERE ( colum BETWEEN 10 AND 20 ) LIMIT 25;' );
$stmt->execute();

他に定石的な方法はありますでしょうか?

494:nobodyさん
10/06/16 05:43:29
2回投げるしかないと思うよ。

495:nobodyさん
10/06/16 07:55:42 J3wcOhw/
【OS名】Windows Vista
【PHPのバージョン】PHP5.10.1
【連携ソフトウェア】MySQL ActionScript3.0
【質問内容】
プログラム初心者です。スレチだったら誘導して頂けると幸いです。
現在、FlashとDBを連携させるプログラムを作っているのですが、
その仲介としてPHPを利用しています。
echo文を使ってFlash側に変数の受け渡しをしようと思っているのですが
PHP側で
echo "key=".$key;
とすると、Flash側に変数$keyを渡すことが出来ているのですが、
echo "key=".$key;
echo "val=".$value;
と記述すると、Flash側の変数keyに文字列として
$keyval=$value;
※&変数には実際の値が入っています。
と表示されてしまいます。

どのような記述をすれば二つの変数をうまくFlash側に渡すことが出来るでしょうか?
よろしくお願いします。


496:nobodyさん
10/06/16 09:07:59
MX時代の知識だからバージョンによって違うかもしれないけど
FlashとPHPでの値のやり取りは変数名=値&変数名=値… と&で連結する必要が
あったんじゃなかったかな
あと気をつけるのはphp側の文字エンコード

497:nobodyさん
10/06/16 11:36:03
>>493
SELECTは一回で済むけど、結局内部的には二回じゃないのか? であり、
なおかつメモリ効率的には「俺って馬鹿げたことしてんなぁ」という方法

countする方をサブクエリにして、その結果を検索結果の方の一カラムに収める。
(検索結果行の全てに、同じ値(count結果)が収まってるカラムが付いちゃう)



MySQLだったら、SELECTは二回だけど二回目は実際の検索はしないから軽い(だろう)という方法有り(他は知らない)

SQL_CALC_FOUND_ROWS でぐぐってみてね。


498:nobodyさん
10/06/16 11:40:12
後半のlimitって、count取ってからごにょごにょして作ったりしない?

499:nobodyさん
10/06/16 12:34:49
countは全部数えるしかないし、limitつきのselectは適切なインデックスが
あれば全部見なくても値を返せるから別の処理。2回やってもしょうがない
と思う。まあインデックス使えなければ条件で全部ナメが2回走るかも
だけど、それはむしろインデックス用意しろだな。countとlimitつきのselectを
分けたいぐらい要素数が多いのならその価値はあるだろう。

500:nobodyさん
10/06/16 13:56:16 6gbQuGMY
URLリンク(www.plusmb.jp)
ここ等を参考に、swfmillで作成した携帯向けFlashを
header('Content-type: application/x-shockwave-flash');
echo $swfOutput;
のように返すと何故か
FireMobileSimulatorでは表示できるのに携帯では表示できない。

いったんfile_put_contentsでファイルに書き出し、そこにLocationヘッダで飛ばしてやると
携帯でも表示される。

ディスクI/Oを減らすためできればファイル吐かずに済ませたいんですが、
何かお知恵はありませんでしょうか。

501:nobodyさん
10/06/16 14:10:56
>>500
2つの場合でヘッダに違いがないかよーく比べてみるとなにかわかるかも?

502:nobodyさん
10/06/17 04:56:28 mKgRGi9a
PHPでブログ投稿したいのですがそのようなアプリありますか?

503:nobodyさん
10/06/17 05:16:08
phpのセッションはどうやってクライアントを判別してるのでしょうか?



504:nobodyさん
10/06/17 05:20:16
あクッキーみたいですね
IPで判別してるのかと思ってました。
クッキーにランダムな文字列のセッションIDだけを入れて
後はサーバー側に保存と・・

505:495
10/06/17 05:26:02 sy18pq7k
>>496
お返事が遅くなって申し訳ありません。
試してみます。
回答ありがとうございました。

506:nobodyさん
10/06/17 09:29:50 Ii8+nE6y
質問いたします。
送信フォームなどで使うボタン。以下のように書けばボタンの代わりに画像を使うことができますよね。

<input type="image" src="image.gif" name="sub" /> ←(ボタンの代わりに、“image.gif”という画像を使う)

そこで、画像の代わりに文字列を使うことは出来ますでしょうか?どういうことかと申しますと、普通によくあるリンク
(< href="xxxxxxxxx.html">リンク</a>)を張る感じで、それをクリックするとデータを送信させるようにしたいのです。

例えば、これは私の予想ですが、ヤフオクとかで条件を絞り込む場合、
「デスクトップ」という文字列のリンクがあり、それをクリックすると「デスクトップ」というデータを送信し、それを抽出して表示…
という仮定を踏んでいるものだと思っています(間違ってたらすいません)。

皆様のお知恵を拝借したいと思います。宜しくお願いします。

507:nobodyさん
10/06/17 09:40:25
POSTとGETリクエストは理解してるの?

508:nobodyさん
10/06/17 11:47:14 Ii8+nE6y
>>507
POSTとGETリクエストは理解してるの?
理解はしてる…つもりです。一応ですけど。
<input type="image"……で、画像を使った時はうまくいきました。

509:nobodyさん
10/06/17 12:03:43
506はずっとPOSTの話をしていると思うけど、
ヤフオクの例はGETなんじゃねーの?ってことを
507は言いたいんだと思う。

ちなみにリンクでsubmitしたければ、javascriptで
onclickイベントにsumbitを書けばおk

510:nobodyさん
10/06/17 18:22:02
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>">
<input type="text" name="search">
<input type="submit" value="search!!">
</form>
<?php
if(isset($_POST["search"])){
$str = $_POST["search"];
mb_internal_encoding("UTF-8");
mb_http_output("UTF-8");
$url = "URLリンク(search.yahooapis.jp)";
$url .= "&query=".urlencode($str);
$data = simplexml_load_file($url);
print_r($data);
}
?>

検索したい言葉を入れて、Yahooの検索APIから検索結果を表示させたいんだけど、
検索結果が文字化けしちゃうし、日本語の検索キーワードを入力すると検索結果0件になっちゃうんだけど
どこがおかしいの?

511:nobodyさん
10/06/17 19:55:52
>>510
スレタイを読まないお前の頭

512:nobodyさん
10/06/17 23:06:44
勝手に質問だと思い込むのはやめてもらえませんか?

513:nobodyさん
10/06/17 23:11:18
>>511
「くだらない質問をするときはIDを出さなければならない」とは書かれているようですが、それがいかがなさいましたか?

514:nobodyさん
10/06/17 23:11:53
質問じゃないならスレ違い

515:nobodyさん
10/06/17 23:14:24
>>514
くだらなくない質問もですか?

516:nobodyさん
10/06/17 23:15:55
「くだらなくない質問もですか?」は明らかにくだらない質問だな


517:nobodyさん
10/06/17 23:18:39
>>515
もちろんスレ違い。
くだ質というのは昔からそのようにできている。

518:nobodyさん
10/06/17 23:18:57 WMbR8KJ3
亀で横からなんだけど、
>>30でUAを設定してるのと設定してないので取得できる量が変わるのはなんで?

519:nobodyさん
10/06/17 23:21:50
なんでかわからんが、そのうちはまりそうな気配がするな。
パケットキャプチャしたりするとわかるのかな。

520:nobodyさん
10/06/18 00:26:09 df2633Ti
php-5.3.2-srcをDLしたんですが
php4ts.dllをシステムフォルダにコピーすればいいらしいんですが
php4ts.dllが見つかりません
どこにおいてあるのでしょうか?

521:nobodyさん
10/06/18 00:27:56
>>520
なんでそんなことしてんの?

522:nobodyさん
10/06/18 00:41:58 df2633Ti
URLリンク(www.scollabo.com)
このサイトによると必要らしいので

523:nobodyさん
10/06/18 00:49:38
windowsへのインストールなら、xamppでいいじゃん。
少なくともそこのサイトの通りやっても5系の入れられないし、
あなたがダウンロードしちゃったのはソースなので使えないです。

524:nobodyさん
10/06/18 01:29:12 df2633Ti
ええっーマジですか…
回答ありがとうございます

525:nobodyさん
10/06/18 01:57:21
>>523
残婦なんか勧めるなよ
あれは「分かってるヤツ」がほんの若干の手間を省くためのもの

>>524
どこにソースをダウンロードなんて書いてあんだよ
URLリンク(windows.php.net)
から
x86 Thread Safe
の Installer を落とせ

526:nobodyさん
10/06/18 03:13:36 df2633Ti
>>525さん
インストーラーを落としましたサンクスです
インストールする時にother cgiを選んだんですがこれでもいいですよね?
あとインストールすればすぐにPHP使えますか?

527:nobodyさん
10/06/18 03:33:58 feYzfmHO
すいません、質問です。

最近、PHPの勉強を始めたばかりなのですが。
XAMPPをインストール、テスト用の簡単なPHPも使用できていて、
動作には問題ないように思います。
mysqlは、utf8の文字コードを追加しています。
また、.htmlで、phpが動作するように、.htaccessを使用しています。

ウェブサイトを基本xhtmlでコーディングしていって、ヘッダーなどの部分を
PHPで共通化できればと思い、勉強を始めたのですが、いきなり文字化けに陥りました。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
これがソース内にあると、文字化けします。
逆に、なければ文字化けはしません。

これは、なぜなんでしょうか・・・

どなたか、おわかりになる方、ご教授してください><

528:nobodyさん
10/06/18 03:56:02
>>526
ごめん オレには other cgi が何か分からん。
だいたい apache module みたいなんだと思う
君が cgi/fcgi を望んでるとは思えん

>>527
それぞれの文字コードを見直す

529:nobodyさん
10/06/18 03:59:31
>>526
言い忘れたけど >>522 の内容は php4 を php5 に置き換えれば
そのまま使えるはず。


530:527
10/06/18 04:33:07 feYzfmHO
>>528
ありがとうございます。
php.iniを、もう1度みなおしていたら、UTF-8じゃない部分がありました。
単純なミスで質問してしまって、すいませんでした。

回答ありがとうございました!

531:nobodyさん
10/06/18 07:32:29
>>520
phpに限らず、メジャーバージョンが異なるものの情報を鵜呑みにするのはやめたほうがいいよ

532:nobodyさん
10/06/18 08:52:21 KlmzoK3k
echo $_SERVER["REMOTE_ADDR"];
は表示されるのですが、

echo $_SERVER["REMOTE_HOST"];
は表示されません。
これは何処の設定をいじくれば表示されるようになるんでしょうか?

533:nobodyさん
10/06/18 09:18:11
>>525
またお前か。最後まで面倒みてやれよ。

534:nobodyさん
10/06/18 14:04:34 J92h6I5e
>>532
URLリンク(nyx.pu1.net)

535:nobodyさん
10/06/18 14:43:06 PtT48P2n
もの凄いくだ質なんですが、、気になったので質問します。

MySQLのテーブル「user」の各フィールド名を
user_id|user_name|user_mail
のように、テーブル名を接頭辞にして付けています。

$sql = "SELECT * FROM user";
$res = mysql_query($sql);

みたいにしてSQL文を実行してmysql_fetch_arrayで登録値を取得出来るわけですが、
登録値を取得する時、どういう配列名にすればいいか悩みます。
これまでは
$user = mysql_fetch_array($res);

のように、テーブル名を配列にして代入していたのですが、
これを出力する時、 $user["user_name"]となるので、ややこしく感じます。

どうするのが一般的なかと疑問に感じ、質問させていただきました。

536:nobodyさん
10/06/18 14:45:47
フィールド名のuser取ればいいじゃない。自分でもそう思ってるんでしょ?

537:535
10/06/18 14:53:14 PtT48P2n
いえ。それは思っていません。結合する時ややこしくなりますから。

538:nobodyさん
10/06/18 14:59:35 J92h6I5e
僕は>>536の意見に賛成


539:nobodyさん
10/06/18 15:11:06
RDBMSがなんのためにスキーマ、テーブル、カラムで空間を分けてるか考えたら
結合のときにカラムのエイリアスを付けなくていい

540:nobodyさん
10/06/18 15:14:44
すまそ途中送信
RDBMSがなんのためにスキーマ、テーブル、カラムで空間を分けてるか考えたら
結合のときにカラムのエイリアスを付けなくていいという理由だけで
接頭辞を乱用すべきじゃないね

541:535
10/06/18 15:21:55 PtT48P2n
確かに接頭辞を付けると無駄にフィールド名が長くなるので
乱用すべきでないというのは分かります。

ただ、テーブル数が多くなってくると、やはり接頭辞を付けた方が
ソースが分かりやすいんです。WordPressやMTなんかも接頭辞を付けてますし。

で、>>536-540さんの意見を総合すると、
$user = mysql_fetch_array($res);
というようにテーブル名の配列に代入する方法が一般的なんですかね。

542:nobodyさん
10/06/18 16:42:15
これ見てよ↓
URLリンク(livedoor.2.blogimg.jp)
ばらまこうぜ!


543:nobodyさん
10/06/18 18:19:48 df2633Ti
>>525さんのURLからPHP 5.3のインストーラーをDLして
インストールしたんですが
これって設定の変更とかせずにそのまますぐに使えますか?

544:nobodyさん
10/06/18 18:20:53
>>525
呼んでるぞー

545:nobodyさん
10/06/18 18:22:19 9ev+TnD6
これすぐ使えるぜ


URLリンク(itpro.nikkeibp.co.jp)
bamcompileでスタンドアロンEXEアプリを作ろう - PHP TIPS:ITpro

546:nobodyさん
10/06/18 18:25:10 UII6mL4g
APCを使おうと思ってさくらのレンタルサーバーに組み込んだんですが、
どうも上手く動作してないような気がします。

wwwフォルダ以下にある色んなphpやjpgなどを開いたら、
↓のapc.phpキャプチャ画像の2~4番目あたりが変化しそうな気がするのですが、全く変わりません。
この状態だとキャッシュされているのが、その時開いたapc.phpだけという意味ですよね?

どこが悪いのかさっぱりです。
分かる方いましたらどうかよろしくお願いします。


【組込手順】
 ・本家からAPC.tgzダウンロード→解凍→サーバーにAPCフォルダとしてアップ
 ・cd APC
 ・phpize
 ・./configure --enable-apc
 ・make
 ・modulesにapc.soができたのを確認

【主なフォルダ/ファイル構成】
home
|
└myid
    |
   ├APC
    |  └modules
    |       └apc.so
    |
   └www
        └html/phpなど

547:nobodyさん
10/06/18 18:25:32 9ev+TnD6
サーバー環境付きで動くフルセットはこれ使えよ。

XAMPP Windows版 1.7.3 51 MB 自己解凍型RAR アーカイブ

URLリンク(www.apachefriends.org)

548:546
10/06/18 18:26:25 UII6mL4g
【apc.php】
URLリンク(up.mugitya.com)
URLリンク(up.mugitya.com)
URLリンク(up.mugitya.com)
URLリンク(up.mugitya.com)

【phpinfo】
URLリンク(up.mugitya.com)
URLリンク(up.mugitya.com)

549:nobodyさん
10/06/18 18:30:17
Linuxなら
apt-get install lamp-server とコマンドを打つだけで
Apache MySQL PHPが自動でインストールされるのに

Windowsは非常に面倒だな


550:nobodyさん
10/06/19 05:25:01 9jWjEAKJ
PHPで4バイト整数のファイル入出力はどうやればいいですか。

551:nobodyさん
10/06/19 05:41:28
fgets fputs

552:nobodyさん
10/06/19 09:08:29
fread, fwrite

553:nobodyさん
10/06/19 19:33:03 PoSyZtDI
<?php
header('Content-Type: text/html; charset=UTF-8');
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>
<form method="POST" action="">
<textarea name="replace" cols=20 rows=4></textarea>
<input type="submit" value="replace!!">
</form>
<?
if(isset($_POST["replace"])){
$before = $_POST["replace"];
echo $before;
echo mb_detect_encoding($before);

$after = str_replace("です", "でした", $before);

echo $after;
echo mb_detect_encoding($str)."<br>";
}

フォームで文字列置換をやりたいんだけど、うまくいきません。
置換前の文字列とその文字コード、置換後の文字列とその文字コードを表示させてますが、
「あいうえおです」みたいな日本語を入力しても、該当箇所が置換されないどころか文字列自体が表示されません。
しかも文字コードはどちらもSJISになっちゃいます。
どうしたらうまく置換できるのでしょうか。

554:nobodyさん
10/06/19 19:39:59
>>553
問題を細かく切り分けてみそ

555:nobodyさん
10/06/19 19:57:20
>>553
mb_internal_encoding("UTF-8");

556:nobodyさん
10/06/19 19:58:59 9jWjEAKJ
パスの内部コードを取得する方法ありますか。

557:553
10/06/19 20:31:04 PoSyZtDI
<?php
header('Content-Type: text/html; charset=UTF-8');
mb_http_output("UTF-8");
mb_internal_encoding("UTF-8");
ob_start("mb_output_handler");
?>
<META httpequiv="Content-Type" content="text/html;charset=UTF-8">
<form method="POST" action="">
<textarea name="replace" cols=20 rows=4></textarea>
<input type="submit" value="replace!!">
</form>
<?
if(isset($_POST["replace"])){
$before = $_POST["replace"];
echo $before;
echo mb_detect_encoding($before);
}

とりあえずPOSTされたデータを表示させることから解決してみようと
>>555のmb_internal_encoding("UTF-8");を追加し、metaタグも入れてみましたが、
FirefoxではPOSTされたデータはちゃんと表示され、文字コードもUTF-8と出るのですが、
IEでは日本語を入力した場合、POSTされたデータは表示されない上、文字コードもSJISと出てしまいます。

ヘッダーもUTF-8にしてるはずなのでPOSTされたデータはUTF-8だと思ったのですが・・・
ヘッダーの設定方法がおかしいのでしょうか?


558:nobodyさん
10/06/19 21:36:37
var_dump($_POST);
してIEとFirefoxで比べてみたらいい

559:nobodyさん
10/06/19 22:46:46 9jWjEAKJ
$n = 123456; を32bitのバイナリとしてファイルへ書き出すには、
int2bin($n) のように変換するしかないですか? 既存関数のみで可能ですか。
fread, fwriteだとテキストで123456が出力されると思うのですが。


function int2bin($x){ return sprintf("%c%c%c%c", $x&255, ($x>>8)&255, ($x>>16)&255, ($x>>24)&255 ); }
function bin2int($s){ return ord ($s)+(ord ($s[1])<<8)+(ord ($s[2])<<16)+(ord ($s[3])<<24); }


560:nobodyさん
10/06/19 23:01:00
intval

561:nobodyさん
10/06/20 01:20:59 twag0hRe
forでaaa aab aac ...aaz aba abb abc ...zzy zzzというように3文字の文字列を表示するにはどうしたらいいでしょうか?


562:nobodyさん
10/06/20 01:43:30
for ($a='aaa'; $a!='aaaa'; $a++) echo $a.' ';

563:nobodyさん
10/06/20 01:55:32
>>562
すごい。そんな技できるんですね。
ありがとうございました。

564:nobodyさん
10/06/20 01:59:37 qnX6bksX
ベーシック認証のページにログインしてHTMLを取得するには
どうすればいいでしょうか?
例えば、URL: URLリンク(example.com)と言うベーシック認証の
ページがありID:foo / Passwd:barの場合
$ary = file0("URLリンク(example.com)");じゃ取得できません。
どうすればいいのでしょうか?

565:nobodyさん
10/06/20 02:06:30
>>557
ob_start("mb_output_handler");
消したら動いたけど。 ie8/fx3.6

566:nobodyさん
10/06/20 02:09:23
>>559
pack
unpack

567:nobodyさん
10/06/20 02:10:51
>>564
Basic認証がかかったページにアクセスする方法 - PHPプロ!Q&A掲示板
URLリンク(www.phppro.jp)


568:nobodyさん
10/06/20 02:23:15
>>546
apc.stat を off にしてphpソースを変更
実行して変更が反映されてなければ間違いなくキャッシュされてる

jpgのくだりはよく分からないけど
キャッシュされるのはphpのバイトコードだよ
パースの手間が無くなる分軽くなる

569:nobodyさん
10/06/20 02:48:26
>>567
ありがとうございます。

570:nobodyさん
10/06/20 09:28:26
>>557
URLリンク(hain.jp)

571:nobodyさん
10/06/20 11:15:41 OE54gla8
Rubyスレで質問したところ、PHPスレで聞けとのことでしたので、ここで質問します

1.PHPのsystem()で.rbを実行するする
2.そのrbの中では色々な処理をする
3.処理が終わったらPHPにその処理結果を戻す
4.PHPでその結果を条件分岐か何かで判断をする
というようなWebページを作ろうとしています

これって可能ですか?
上2行は確認出来たのですが、結果をPHPに戻すのは無理なような気がします
どうですか?

572:nobodyさん
10/06/20 11:37:34
できます。やり方は教えません。

573:nobodyさん
10/06/20 12:10:32
Rubyで出力した内容がsystem()の2番目の引数に返るんじゃね?

と、Ruby知らなくてPHP中級な俺が言ってみる。

574:nobodyさん
10/06/20 13:45:50
2番目に入るのは終了ステータス
標準出力をキャプチャしたかったら popen(), proc_open() などを使う

575:nobodyさん
10/06/20 14:25:20
>>574
PHPならもっと便利な関数があるはずだろ。

576:nobodyさん
10/06/20 14:56:32 Zg4Yd11e
みなさんが「このソースは読みやすい」と思うコーディングをしている
オープンソースのPHPシステムを教えて下さい

577:nobodyさん
10/06/20 15:13:03
formから放り込んだ日本語をImageTTFTextで縦書きにしたいのですが、句読点やーがおかしな事になります。
正しく表示する方法はないのでしょうか?

578:nobodyさん
10/06/20 17:03:38
>>562
これキモイw

579:nobodyさん
10/06/20 17:31:57
>>576
有名どころなら何でも
>>577
>>1

580:nobodyさん
10/06/20 17:43:38 7fNS8+df
$FileNameTMP = realpath($FileName);
$FileType = mime_content_type($FileNameTMP);
header("Content-Type:" .$FileType);
readfile($FileName);

こんな感じのソースを書いたのですが、IEだとブラウザでの表示ではなくて保存ダイアログが表示されるようになってしまいます。
Firefoxの場合は問題なく表示できます。
Firefoxも空のテキストファイルだと保存ダイアログが表示されるようになります。
画像ファイルやPDFファイルなどをブラウザで開ける様になる決方法は無いでしょうか?

581:nobodyさん
10/06/20 17:59:44
header('Content-Disposition: inline; filename="example.pdf"');
header('Content-Type: application/pdf');

582:nobodyさん
10/06/20 18:02:31 7fNS8+df
>>581
それやるとFirefoxでも問答無用で保存ダイアログが表示される。
やりたいのは>>580でも書いていますが保存ダイアログを出したいのではなくて
ブラウザ上で表示したい。

583:nobodyさん
10/06/20 18:04:12
>>582
保存するなら >Content-Disposition: attachment
表示するなら >Content-Disposition: inline


584:nobodyさん
10/06/20 18:04:41
>>579
失礼しました。
【OS名】CentOS5
【PHPのバージョン】5.3
【連携ソフトウェア】
【質問内容】
formから放り込んだ日本語をImageTTFTextで縦書きにしたいのですが、句読点やーがおかしな事になります。
正しく表示する方法はないのでしょうか?
過去ログでは縦書き専用フォントで・・・とかが見つかったのですが肝心の縦書き専用フォントがぐぐっても見つけられません。

585:nobodyさん
10/06/20 18:22:53 7fNS8+df
>>581
すみませんでした。
inlineの部分を見落としていました。
IEだとbmpファイルはこの方法でも保存ダイアログが出てしまいます。
また空テキストファイルだとFirefoxだと保存ダイアログがでます。
IEでは空テキストファイルでは保存ダイアログはでません。
これらを解決する方法は無いでしょうか?

586:nobodyさん
10/06/20 18:27:15 7fNS8+df
追加
空テキストファイルのMIMEを見ると
application/x-empty
となっています。
application/x-emptyを調べてみてもいまいちどういうときにできるMIMEなのかわかりません。
application/x-emptyをtext/plain変換してやらないと駄目って事ですかね?

587:nobodyさん
10/06/20 19:43:42
たとえばapplication/zipをinlineで送られてもブラウザはどうしようもないだろ
mime-typeを適切に設定しろ
それだけだ

588:nobodyさん
10/06/20 19:49:09 7fNS8+df
>>587
??????

589:nobodyさん
10/06/20 20:02:32
>>584
ID出すことを忘れているようだけど、ともあれ、本題についてだけど、それは難しい。
フォントをいじってみてはどうか。

590:nobodyさん
10/06/20 23:22:44 V/OxbjwX
filesize()は使わない方が良い。
他でオープンされていると0になるし、
値がキャッシュされるから実サイズと異なる値を返すことあり。頻繁な更新されている物だと。

591:nobodyさん
10/06/21 00:35:22
>>584
ImageTTFTextって使ったことないけど
表示する文字が句読点かどうか調べて
句読点ならは座標をずらせばいいんじゃない?

ハイフンだったら縦棒(|など)に変換するとか。

592:nobodyさん
10/06/21 00:59:52 oQjyj8CX
複数階層のmkdir_rなんですが。これだと日本語パスで失敗します。
\を含むため。どう直せばいいですか。

function mkdir_r( $path ) {
if(is_dir($path)) return;
$path = str_replace( '\\', '/', $path);
$parts = array_filter ( explode('/', $path), 'strlen' );
$s=""; foreach ($parts as $part) { $s.="$part/"; @mkdir($s); } }

593:592
10/06/21 01:12:43 oQjyj8CX
自己解決しました

594:592
10/06/21 01:34:09 oQjyj8CX
これね。

function mkdir_r( $t ) {
$s=array();
while( !is_dir($t) ) { $s[] = $t; $t=dirname($t); }
for( $n=count($s)-1; $n>=0; $n-- ) mkdir($s[$n]); }

595:nobodyさん
10/06/21 01:43:11
>>594
そんな関数作らんでもmkdirにrecursiveオプションがあるんだからそれ使えばいいのに

596:nobodyさん
10/06/21 12:33:30 oQjyj8CX
PHP4 PHP5に依存しないことが大事。

597:nobodyさん
10/06/21 12:51:52
PHP4でのサンプル、mkdirのマニュアルページに載ってるけど、
pathinfoとかdirnameの日本語の不具合って直ってないよね?
URLリンク(bugs.php.net)

598:nobodyさん
10/06/21 18:06:11 oQjyj8CX
デストラクタの時に値が保存されないんですが。どうすれば値が保存されますか。

<?php
$a = new A();
$a->add();
$a->add();

class A {
var $num;
function A() { $this->num=0; register_shutdown_function( array( $this, '_A' ) ); }
function add() { $this->num++; }
function _A() { echo "num={$this->num} \n"; }
}
?>

599:nobodyさん
10/06/21 18:16:36
>>591
「~」の処理とか
> 座標をずらせばいいんじゃない?
これとか、多分素直にさせてくれないよ。

動くとわりと面白い系だから一度は試して遊ぶといいかも。

600:nobodyさん
10/06/21 18:32:23
>>598
保存って具体的にどうしたいの?

601:nobodyさん
10/06/21 18:35:41 oQjyj8CX
num=2 が出力したいんですが。

602:nobodyさん
10/06/21 18:41:50
そのままコピペしてhoge.phpというファイルに
セーブして実行してみた。

% php hoge.php
num=2

出るじゃん。

603:nobodyさん
10/06/21 18:42:55 oQjyj8CX
PHP4.2程度できる方法ありますか。

604:nobodyさん
10/06/21 18:46:36
4系だと出来んな。
グローバルに渡すしか。

605:nobodyさん
10/06/21 18:47:44 oQjyj8CX
外部変数にしたら出来るんですが。
これだとクラス変数と別に変数用意する手間が掛かって良くないです。
クラスの値が破壊、初期化されてからregister_shutdown_functionが起動すると思います。
回避する方法ないですか。PHP4です。



$Anum=0;
$a = new A();
$a->add();
$a->add();

class A {
function A() { global $Anum; $Anum=0;
register_shutdown_function( array( $this, '_A' ) ); }
function add() { global $Anum; $Anum++; }
function _A() { global $Anum; echo "num={$Anum} \n"; }
}

606:nobodyさん
10/06/21 19:00:35 oQjyj8CX
グローバル変数とクラスAをまとめたクラス作ったら成功しました。これで生き残る。

<?php

$b = new B();
$b->add();
$b->add();


class B {
var $Anum=0;
var $a;
function B() { $this->a = new A(); }
function add() { $this->a->add(); } }


class A {
function A() { global $Anum; $Anum=0;
register_shutdown_function( array( $this, '_A' ) ); }
function add() { global $Anum; $Anum++; }
function _A() { global $Anum; echo "num={$Anum} \n"; } }

?>



607:nobodyさん
10/06/21 19:09:33
PHP4系はオブジェクト指向まわりとかいろいろ
調子悪いので茨の道だぞ。

608:nobodyさん
10/06/21 19:14:46
classBの $Anumと
classAの $Anum 別物じゃん。
結局BがAのインスタンスもってるだけで >>605と同じ・・・

609:nobodyさん
10/06/21 19:16:50
PHP4環境ないから知らんけど
$a =& new A();
とかでしょどうせ。

610:nobodyさん
10/06/21 19:27:13 oQjyj8CX
&付きでうまくいきました。有り無しの違いが分からない



<?php
$a = & new A(); $a->add();
$b = & new A(); $b->add(); $b->add();

class A {
var $num;
function A() { $this->num=0; register_shutdown_function( array( &$this, '_A' ) ); }
function add() { $this->num++; }
function _A() { echo "num={$this->num} \n"; } }

?>

611:nobodyさん
10/06/21 19:29:54
&入れないとnew直後に別インスタンスにコピーされてしまう変態仕様だから。
PHP4 new演算子
とかでググれば出てくる。

612:nobodyさん
10/06/21 19:30:42 oQjyj8CX
サンクス

613:nobodyさん
10/06/21 19:34:20
PHP4はオブジェクトも値渡しだからな、よくはまる罠だった

>>598
>>609 + register_shutdown_function(array(&$this, '_A' ))

614:nobodyさん
10/06/21 22:56:57
習い始めたときは既にPHP5の時代だった俺は運が良かったのか

615:nobodyさん
10/06/21 23:23:53 oQjyj8CX
CURLのFTPアップロードで、
複数ファイルを持続接続でアップする方法ありますか。
毎回ログインする方法しか分かりません。

616:nobodyさん
10/06/21 23:39:00
>>615
URLリンク(jp.php.net)
これが参考になるかな

617:nobodyさん
10/06/21 23:46:41 oQjyj8CX
複数スレッドで動かせば、帯域を無駄なく使えて良いんですが。
PHP4だと>>616が使えないです。
FTPのログイン動作に3から10秒ほどかかるのでこの時間の転送量は0です。
ログイン省く方法無いですか。

618:nobodyさん
10/06/21 23:58:15
なんでPHP5にする選択はしないの?鯖代なんて月数百円だろ。

619:nobodyさん
10/06/22 02:55:15
よく分かんないけどFTPってそのまましゃべれないの?

620:nobodyさん
10/06/22 03:50:07
二人としゃべらないといけないからちょっと面倒

621:nobodyさん
10/06/22 09:02:05
さっさとせめてPHP5に乗り換えたほうがいいと思うけどね。
(そもそもPHP捨てたほうがいいというのは置いといてw)

622:nobodyさん
10/06/22 09:11:04
PHPはC++のスクリプト版+追加機能のようなものでもっとも有望なスクリプト言語。
PHPからC++のコード生成出来たり、実行ファイルが作れればいいのだが。
追加機能は例えば、static_php.libを組み込むことで実現出来たり。

623:nobodyさん
10/06/22 09:13:48
C++に翻訳するやつはここにあるんだけど。Windowsでは動かないらしい。だれか改良して対応してクリ。



HipHopはCentOSとFedora向けに開発されており、他のオペレーティングシステム上でのビルドは現在のところ機能しません。


HipHop for PHP
URLリンク(blog.candycane.jp)

624:nobodyさん
10/06/22 10:21:03
改良して対応してくれって言うけど、その分の人件費はどうなるの?
なんでもWebだったらタダでやってくれると思ってないか?

625:nobodyさん
10/06/22 10:41:41
Friendクラスも使えないしPHPダメでしょ。
まぁ使うけど。

5.3で静的遅延束縛が実装されて大分使いやすくなった。

626:nobodyさん
10/06/22 12:37:56
C++のfriendキーワードの事か?
今頃取り入れたらそれこそPHPらしいって言われるな


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch