【PHP】下らねぇ質問はID出して書き込みやがれ 96at PHP
【PHP】下らねぇ質問はID出して書き込みやがれ 96 - 暇つぶし2ch542: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