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

【PHP】質問スレッドpart26【php】

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん04/12/21 22:34:55ID:???
のフリをした糞スレ
0830nobodyさん05/02/18 01:06:46ID:???
>>829 修正です
&gtで格納されている場合
$com = eregi_replace("(^|>)(&gt;[^<]*)", "\\1<FONT COLOR=\"999999\">\\2</FONT>", $com);
0831nobodyさん05/02/19 19:52:30ID:???
その中の人数($num)/母体の人数($amount)で、
その中の人数の母体に対するパーセンテージを求めようと思い、
考えて下記のスクリプトを作ったのですが、改良案やもっといい方法が
あればアドバイス頂けないでしょうか。

$percent = substr($num/$amount,2,2);
$percent = preg_replace("/^0/","",$percent);

$num/$amountすると、例えば0.4056414とかいう割り切れない数字が出てくるので、
substrで小数点以降から2桁切り出して、(ここでいうと40)
一桁パーセントの場合は、08とかの結果になってしまうので先頭の0を取る
という処理にしました。

でも、substr(割り算,2,3)としたら、この場合結果が405で、40.5%のようにも
したいなと思っているのですが、そうすると、
substr($result(405が入ってる),1,2) . '.' .substr($result,3,3) . '%';
なんてしなければいけないのかと思うのですが、もっとスマートなやり方
とかありますでしょうか。
長文ですみません。
083283105/02/19 19:56:35ID:TVy8jZr4
上げるのを忘れてしまいました。すみません。
よろしくお願いします。
0833nobodyさん05/02/19 20:05:25ID:???
http://jp.php.net/round
http://jp.php.net/sprintf
0834nobodyさん05/02/19 20:05:52ID:???
つーかなんで 100 かけないの?小学校で習ったでしょ?
0835nobodyさん05/02/19 20:09:30ID:???
$foo = floor($n / $a * 100) / 100;
083683105/02/19 20:13:23ID:???
>>834,835さん。
そう言われてみるとそうでした・・・。
PHPは関数がたくさんあって、計算とかするより関数使わなきゃいけないんだと
強固に思い込んでしまってて、変なことしてました。
お恥ずかしいです。すみません、ありがとうございました。
0837nobodyさん05/02/19 21:03:02ID:5g9U41P6
質問があります。

URLに、?a=1&b=2&c=3ってパラメータを埋め込んだとして、
foreach($_GET as $value){
echo $value;

}

ってした場合、a、b、cの順序で出力されますか?

何がいいたいかというと
パラメータの順序通りに配列にはいってるのかなぁって
疑問に思ったのです。
0838nobodyさん05/02/19 22:47:47ID:???
ためせばいいじゃん・・・
パラメータの順序通りに入ってたよ
083983705/02/20 00:18:51ID:hvCabO8I
>>838
もうしわけありませんでした。
説明が悪かったです。

PHPのバージョンや環境に関わらず
常に順番どおりに入っているのかが
疑問点なのです。

よろしくお願いします。
0840nobodyさん05/02/20 00:36:12ID:???
>>839
仕様として明記されていない事は不定。
不定なことに対し一定であることを期待して
プログラムを組むのは、ドツボにはまる一要因ナリ。
0841nobodyさん05/02/20 10:19:13ID:???
一度ソートしてみたら?
0842nobodyさん05/02/20 10:36:02ID:???
class sortclass {
 function quickSort($arr,$left,$right){
    if ($left <= $right) {
     $p = $arr[($left+$right) / 2];
      $l = $left;
      $r = $right;
      while($l <= $r) {
        while($arr[$l] > $p){ $l++; }
       while($arr[$r] < $p){ $r--; }
        if ($l <= $r) {
         $tmp = $arr[$l];
          $arr[$l] = $arr[$r];
         $arr[$r] = $tmp;
          $l++;
         $r--;
       }
      }
   }
    $this->quickSort($arr, $left, $r);
   $this->quickSort($arr, $l, $right);
  }
}
見よう見まねで作ったソートなんですけど、実行すると
PHP has encountered a Stack overflow
ってエラーが出ます。
おかしな所があれば修正お願いします。
0843nobodyさん05/02/20 12:36:47ID:???
Stack OverflowだYo!
0844nobodyさん05/02/20 13:47:32ID:???
再帰的処理が永遠に終了しないから、スタックオーバーフローなんだよ。
0845nobodyさん05/02/21 08:25:16ID:???
>>842
sort関数使ったほうが早いよ
0846nobodyさん05/02/21 10:42:04ID:???
>>845
シーーーッ・・・
それを言っちゃ(ry
0847nobodyさん05/02/22 00:28:25ID:WO7XFPFB
呼び出され側の関数から、
呼び出し元の関数の名前を知る方法はないでしょうか?
0848nobodyさん05/02/22 00:35:54ID:???
あったような気はするけど、それが何だったのかは思い出せない
0849 ◆.jC7ANgFY. 05/02/22 00:36:41ID:???
>>847
ありますよ。無名な関数を使いますが。
私が即席で作った下の関数を研究してみてください。

この関数をどの関数から呼び出されたのかを知りたい
関数から呼び出してみてください。名前が返ります。

function whocall() {
$bt = debug_backtrace();
return $bt[2]['function'];
}
0850nobodyさん05/02/22 07:26:04ID:???
>>847
関数名を引数に追加して呼び出すようにすればいいじゃん
0851nobodyさん05/02/22 11:26:04ID:???
>>847 じゃないけど
めんどくさいやん。
エラー処理なんかする時、あると便利だなぁと思うね。
085284705/02/22 11:53:12ID:???
>>849
ありがとうございます!
$bt[1]ですよね?
こんな関数があるとは知りませんでした。
>>850
そうしていたのですが出来るなら省略したいなと思いました。
>>851
そうですよね。
085384705/02/22 11:54:59ID:???
あ、無名関数を使ったら$bt[2]になるということでしょうか。
失礼しました。
0854nobodyさん05/02/22 13:10:07ID:d7ashhNp
質問させてください。

電源が入ってたり入ってなかったりするサーバに対し、
いま電源が入っている(アクセスできる)かを確認し、
その結果によって [Online] / [Offline] のような文字または画像を表示したいと考えています。
(結果を表示するページのサーバは、常にアクセス可能とします)

file関数で情報を取ってこれるかというやり方をしようと考えましたが(以下にスクリプト)、
この場合は yahoo.co.jp など存在し、アクセス可能なドメインでは[オンライン]、
yahoo.co.jppなどの存在しないドメインは[オフライン]と即表示されます。
しかし、ドメイン登録してあるのにサーバ電源が落ちている場合にはすぐには表示されません。
(set_time_limit関数の使い方は間違っているのでしょうか・・・)

set_time_limit(3);

$a = (@file("http://www.hogehoge.jp/")) ? "オンライン" : "オフライン";

print $a;


何か良い考えが思いついた方は、ご教授頂けるとありがたいです。
環境はPHP4.3.3 on RedHatLinux 7です。
0855nobodyさん05/02/22 13:21:03ID:???
>>854
自分ならfsockopenを使う
085685405/02/22 13:51:59ID:d7ashhNp
>>855
レスどうもありがとうございます。

set_time_limit(3);

$a = (@fsockopen("www.hogehoge.jp", 80, $errno, $errstr, 3)) ? "オンライン" : "オフライン";

print $a;


としても、「オフライン」の場合には結果表示にデフォルトのタイムアウト時間までかかってしまいます。
即座に表示することはできないでしょうか。
上のスクリプトでは処理を3秒でタイムアウトさせて結果を表示させたいと考えているのですが。。
(上のスクリプトでは、オンライン/ドメインが存在しない場合は即座に表示されます)
0857nobodyさん05/02/22 14:43:55ID:???
>>856
set_time_limit(3);
は関係ないから削除しとけ
@消してエラー表示させとけ
0858nobodyさん05/02/22 17:58:06ID:RE6B17ts
すみません、PHPでは関数の返り値に、CでいうAuto変数を返せますか?
例えば、C だと以下のようなことは御法度です。

char* func(){
char *abc = "abcdefg";
return abc;
}

PHPではこんなこと出来ますか?

function func(){
$abc = "abcdefg";
return $abc;
}
085985805/02/22 18:03:01ID:???
>PHPでは関数の返り値に、CでいうAuto変数を返せますか?

すみません、ちょっと質問の仕方を間違えました
PHPでは関数の返り値に、CでいうAuto変数のポインタを返せますか?
086085805/02/22 18:13:34ID:???
失礼、しかも858で書いたCの例はリテラルのポインタだった、、、、

仕切り直します。

PHPでは関数の返り値に、CでいうAuto変数のポインタを返せますか?
例えば、C だと以下のようなことは御法度です。

char* func(){
char abc[] = "abcdefg";
return abc;
}

PHPではこんなこと出来ますか?

function func(){
$abc = "abcdefg";
return $abc;
}
0861nobodyさん05/02/22 18:27:01ID:???
>>860
そもそもPHPにはポインタという概念がないので...
変数そのものを指し示す必要があるなら、「リファレンス返す」かな。
086285805/02/22 18:35:13ID:???
ありがとうございます。
私の「参照」の概念がイマイチなのが問題のようです。
すみませんでした。
0863nobodyさん05/02/22 18:46:16ID:???
リファレンスについて
http://www.php.net/manual/ja/language.references.php
0864nobodyさん05/02/22 22:52:47ID:???
>>854
>>854
0865nobodyさん05/02/23 20:36:20ID:???
go-pearを使って、任意のディレクトリにpearをインストールしようとしてるのですが、うまくいきません。
どなたかヘルプお願いします。/home/foo/lib/ext/pear以下に、全てのライブラリをまとめようと思っています。

$ wget http://go-pear.org -O go-pear.php
...(略)...
$ php go-pear.php
...(略)...
1. Installation prefix : /home/foo/lib/ext/pear ← ここを任意のディレクトリに変更
...(略)...
Would you like to install these as well? [Y/n] : y

Loading zlib: ok
Downloading package: PEAR-stable......ok
Downloading package: Archive_Tar-stable....ok
Downloading package: Console_Getopt-stable....ok
Downloading package: XML_RPC-stable....ok
Bootstrapping: PEAR...................(remote) ok
Bootstrapping: Archive_Tar............
Warning: mkdir(/tmp/gope11Ui8e/Archive): File exists in /home/foo/bin/go-pear.php on line 622
(remote) ok
Bootstrapping: Console_Getopt.........
Warning: mkdir(/tmp/gope11Ui8e/Console): File exists in /home/foo/bin/go-pear.php on line 639
(remote) ok
Downloading package: DB...............ok
Downloading package: Net_Socket.......ok
Downloading package: Net_SMTP.........ok
Downloading package: Mail.............ok
Downloading package: XML_Parser.......ok
Downloading package: PHPUnit..........ok

Fatal error: Undefined class name 'pear' in /home/foo/bin/go-pear.php on line 675
となります。何かヒントがあれば幸いです。
0866nobodyさん05/02/23 21:59:50ID:???
phpのパッケージをダウンロードしてきてconfigure; make install-pear
してみるとか。...面倒か。
0867nobodyさん05/02/24 03:10:14ID:/1etLdeQ
phpのエラーで、サーバにレポートを吐き出し、エラーログが膨れ上がっています。
エラーを修正することが急務ですが、何よりも、このエラーログの肥大化をストップするように言われました。

あちこち探したのですが、見付かりません。

エラーレポートを吐き出さないようにする方法はありませんか?
0868nobodyさん05/02/24 03:34:26ID:???
>>867
phpの設定はphp.iniでします。
0869nobodyさん05/02/24 03:41:40ID:???
>>867
とりあえず、エラーを吐いてそうな部分に@でもつけとけw
0870nobodyさん05/02/24 05:36:31ID:???
>>868
ヒントありがとうございます。
とりあえず、htaccessでしのぎました

>>867
何の役にも立ちませんでした
0871nobodyさん05/02/24 07:09:09ID:???
htmlspecialcharsなんですけど、スカラーじゃなくて
配列丸ごと書き換えることはできないんでしょうか?
変数をひとつひとつ書き換えていて、発狂寸前です。
0872nobodyさん05/02/24 07:50:41ID:???
>>871
発狂してください
0873nobodyさん05/02/24 08:26:34ID:???
>>871
そんな人のために配列関数ってのがあるんですよ。
0874nobodyさん05/02/24 09:20:42ID:???
$array = array_map('htmlspecialchars', $array);
array_map()使わなくても「変数をひとつひとつ書き換え」る馬鹿は、そうはいないと思うけど。
0875nobodyさん05/02/24 10:47:19ID:???
>>874
多次元配列で破綻するけどね
0876nobodyさん05/02/24 11:54:17ID:???
>変数をひとつひとつ書き換えていて、発狂寸前です。
発狂しそうな方法ってこれ位しか思いつかないんだけど、まさかこんなの?
$data['sono1']=htmlspecialchars($data['sono1']);
$data['sono2']=htmlspecialchars($data['sono2']);
$data['sono3']=htmlspecialchars($data['sono3']);
$data['sono4']=htmlspecialchars($data['sono4']);
:
:
ずっと続く

他にあったら知りたい。つーか、普通にループを使う方法しか
思いつかなくて、これ以上効率の悪い方法が考え付かん。
0877nobodyさん05/02/24 12:00:20ID:???
while (list($key, $val) = each($_POST)) {
if (!is_array($val)) {
$_POST[$key] = htmlspecialchars($val);
}
}
変数をひとつひとつ書き換えるよりはループで回したほうが
0878nobodyさん05/02/24 12:01:13ID:???
function cnv($array){
return htmlspecialchars($array);
}
$_REQUEST = cnv($_REQUEST);
0879nobodyさん05/02/24 12:26:48ID:???
function tag_escape($arr)
{
    if (is_array($arr)) {
        return array_map('tag_escape', $arr);
    }
    return htmlspecialchars($arr);
}
0880nobodyさん05/02/24 14:54:07ID:???
>>875
>>879が書いてる関数(俺も全く同じものを書こうとしてた)ぐらいは思いつくだろ?
ていうかこのソース、以前PHP MLにも投稿された事があるはず。

>>878
何の釣りでしょうか?

>>876
多分そういうレベルだと思った…
>>877かもしくはforeach使う事ぐらいは思いつけないと…
0881nobodyさん05/02/24 15:37:12ID:3qj1XZqF
内部コードをEUCで記述し、
外にはSJISで表示しているのですが
EUCで書いたphpファイルから
SJISで書いたview用phpファイルをincludeすると
コードが混在するので問題になる気がします。
(実際、タイミングによって時々エラーが出ました)
こういう場合の定石的な解決方法を教えて下さい。
0882nobodyさん05/02/24 16:02:09ID:???
>>881
includeするphpの先頭でえんこうでぃんぐせってい
0883 zzz05/02/24 16:03:00ID:???
質問です。

下記のような動作(1〜3)を行うシェルをphp(ブラウザ)から動作させたいのですが…
どのように記述したらよいのか何かヒントをください。

1.wget で 圧縮されたファイルを固定したディレクトへダウンロード
2.ダウンロード後、そのまま解凍。
3.解凍後、ダウンロードしたデータは削除

シェルを実行するときだけ 必要なコマンドのみ root 権限を与える方法は
理解できそうなんですけど…

さっき 9ten社
0884nobodyさん05/02/24 16:06:44ID:???
>>881
PHPの内部コードを混在させない。

EUC-JPに統一して、httpでブラウザに
吐くものをSJISコンバート。
0885nobodyさん05/02/24 16:13:54ID:???
>>883
(a)ブラウザ(クライアント)、(b)PHPを動かす鯖、(c)ダウンロード元(鯖) があって、
(a)から(b)にアクセスすると(c)の圧縮データを取りに行って
(b)で解凍して〜
ってことかい?
0886nobodyさん05/02/24 16:28:52ID:???
mb_convert_variablesは多次元配列も再帰的に文字コード変換してくれて楽。(連想配列の添字は対象外だけど)
組み込み関数でarray_map_recursiveができたらいいなあ。
0887nobodyさん05/02/24 16:43:09ID:???
>>883
取得がエラーになった時などの処理を除けば
そのまま書けばOKですよ。

解凍できるフォーマットで、コマンドラインツールがあるとしてだけど。
解凍先の指定(展開方法)のオプションとかはツール毎に調べてね。
0888nobodyさん05/02/24 21:36:15ID:???
>>880
875 が言いたいのは
$array['a']['x'] = '123';
$array['a']['y'] = '456';
$array['a']['z'] = '789';
$array = array_map('htmlspecialchars', $array);
ということじゃない?checkbox とかで。
再帰で書くしかないよね。
0889nobodyさん05/02/24 22:37:21ID:???
まぁ、なんだ、自分で書いたスクリプトで多次元配列がくるかどうか分からんつーのはかなり珍しい部類だな
0890nobodyさん05/02/24 22:46:55ID:???
>>888
879 は再起処理ですが?
089188105/02/25 03:57:50ID:???
>>882
途中からエンコーディングを変えることが出来るんですね。
目から鱗でした。
ありがとうございます。
0892nobodyさん05/02/25 13:57:09ID:mvGHDRpG
すみません、ど忘れしてしまったので教えて下さい。
外部サーバーへ接続して、そのステータスが404か403か302などかどうかの値を取得したいのですが、
当方xreaの為、fsocksopenが使えません。代替となりえる関数はなんでしたっけ?
0893nobodyさん05/02/25 14:52:48ID:1JhQtPgY
phplotで日本語表示に成功している方いたら方法教えてください
0894nobodyさん05/02/25 16:55:01ID:ExbvFDBo
PHPによるWebアプリケーションスーパーサンプル
http://www.amazon.co.jp/exec/obidos/ASIN/4797321288/250-0184447-4333015

これを買おうと思って本屋でチラ見したのですが、サンプルの内容は
phpのバージョンが古くて、たしか4.2.2用のものでした。

この本、今つかえるのでしょうか?それともこれ買うくらいならバージョン5の本を
かったほうがいいのですか?助言お願いします。
0895nobodyさん05/02/25 17:10:32ID:???
>>894
「サンプル」をどのように考えてるかによる。
そのまんま入力して動かないと駄目な人はやめときなさい。
プログラムの作りをみて自作の「きっかけ」に使う場合には
古くても充分役立つ。
0896nobodyさん05/02/25 18:00:16ID:???
投稿者や投稿時刻など無駄なものは一切入れないMTのようなものはありませんか?
カテゴリも50近くあるのでそれくらい対応しているものがよいのですが。
089789405/02/25 18:00:36ID:???
>>895
ありがとうございます。「10日で覚える〜」から
1段階上の本を探してまして、勉強のために使おうと思ってたので、
買ってみます。
0898nobodyさん05/02/25 19:15:03ID:sDC3ZZ80
ある文字列の中身の濁点・半濁点を消して小さい文字を大きく
ば→は
ぱ→は
っ→つ
のように変換したいのですが
例 らっぱ→らつは

StrTrを使って文字を羅列すると"ぅ"が"い"に変換されてしまいます。
どのようにすればうまくいくのでしょうか。
089989205/02/25 19:23:54ID:mvGHDRpG
HTTP接続時のステータスコードを取得する方法、お願いします。。
090089205/02/25 19:27:37ID:mvGHDRpG
あ、fsocks使わないでもできました。cURLです。
<?php
$ch = curl_init ("http://www.php.net/");
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_exec ($ch);
$info = curl_getinfo($ch);
echo $info['http_code'];
curl_close ($ch);
?>
お騒がせしました。時間掛かりましたが解決です。
0901nobodyさん05/02/25 19:41:15ID:ZiS1ZtFa
変数lineがtextのときtxtを出力したいのですが
これだと動きません。どうやったらいいのでしょうか?

if($line == "text"){
print "txt\n";
}
0902nobodyさん05/02/25 20:35:18ID:???
それ動かないのか・・・
0903nobodyさん05/02/25 20:40:30ID:???
X=1 では無い場合に処理をさせたい場合はどうすれば良いんでしょうか?
とりあえず、下のように書いたら希望通りになるのですが、 {} 当たりがダサいので…。
ifの反対の命令は無いんですか?

<?php
X=1
if X==1 {}
else { echo "Xは1じゃないですよーっと。"; }
?>
0904nobodyさん05/02/25 20:47:06ID:mvGHDRpG
>>903
たぶん誰もレスしないだろうからしようw
<?php
$X = '1';
if ($x != '1') echo 'Xは1じゃないですよーっと。';
?>
以上。解決。
0905nobodyさん05/02/25 21:13:47ID:???
>>900
ソケット関数が使えない制限があるのに、
curlがインストールされてる鯖ってもの面白い(めずらしい)な。
0906nobodyさん05/02/25 22:08:48ID:???
>>893
成功つーか何も特別なことをしなくても動いてるよ。
@WhiteboxLinux ttfフォント使用
0907nobodyさん05/02/25 22:31:34ID:QqsT661L
すいません。質問です!
新たにMYSQLを入れたので
今入っているPHPにMYSQLをアクセスできるように
configureしようと思うのですが
どうやったらいいのでしょう・・・
0908nobodyさん05/02/25 22:40:37ID:???
社内で社員個々にデータベースを使わせているのですが、
DBの作成と新規ユーザの追加を、
Webサイト上(HTML+PHP)で行いたいと思っています。

MySQLのデータベースクリエイトと、新規ユーザの追加を
PHPで操作することは出来ないのでしょうか?

出来るのでしたら方法を教えて頂きたいのですが。
よろしくお願いいたします。
090990305/02/25 23:01:55ID:Snm78iCr
>>904
くだらない質問にレスして頂きありがとうございました。
「==」じゃなくて「!=」にしてば解決ということですね。
0910nobodyさん05/02/25 23:15:53ID:???
>>907
mod_mysql バイナリを入手するか、phpize。
0911nobodyさん05/02/25 23:27:32ID:???
>>908
phpmyadmin
0912nobodyさん05/02/25 23:57:42ID:QqsT661L
>>910
phpize
./configure (オプションは作成するモジュールによって異なる)
make
ですね。。。
明日標準拡張モジュールを入手しやってみます!
超うれしいです!感謝です!
0913nobodyさん05/02/26 20:50:00ID:LIYJX+3j
PHP5なんですが、
コンストラクタの中で、
$categoryname = $_REQUEST['categoryname'];
とすると
Undefined index: categoryname
となってしまいます。
クラスの中で、$_REQUESTの値を代入するにはどうすればいいのでしょうか?
0914nobodyさん05/02/26 22:29:38ID:???
>>913
いや、NOTICEが出てるのって$categorynameじゃなくて$_REQUEST['categoryname']だろ

ここを参照
http://pc5.2ch.net/test/read.cgi/php/1107780435/644-
0915nobodyさん05/02/26 23:45:28ID:dKMEUCyI
XML、XSLTとPHPの組み合わせは食い合わせは悪いでしょうか?
0916namazu05/02/27 00:34:06ID:l905ORwG
php4_namazuの拡張モジュールはphp5では動かないのでしょうか・・・
0917nobodyさん05/02/27 00:40:16ID:061SWsic
PHPで音楽ファイルや画像ファイルなどの
バイナリデータの生成、編集は出来ますか?
0918nobodyさん05/02/27 00:41:52ID:???
>>915
サーバにxslt周りがインストールされてれば、別に悪くは無いと思うけど。
XMLが別にあって、ってんなら楽勝。

XMLもPHPで作るってんなら、素のPHPだけでは大変かも。
PEARのXMLから自分にあったのを見つけるか、自分でXML構築classを書くかしないと
スクリプトの見通しが悪くなるなぁ…

あぁ、DOMXMLもあるかぁ。
091991705/02/27 01:43:53ID:???
自己解決しました
0920nobodyさん05/02/27 02:58:09ID:???
>>916
PHP4 で作成した Namazu モジュールは PHP5 では動かない。

CVS から Namazu モジュールのソースを取ってきて PHP5 の phpize を使用して
コンパイルすれば使えるはず。
0921nobodyさん05/02/27 03:44:49ID:???
mojaviで販売サイト立ち上げている人いますか?
092291605/02/27 04:06:08ID:f/BfgIj2
>>920
ありがとうございました。

「ftp://night.fminn.nagano〜」
は使えなくなってるし、cvsのリポジトリ見ても
古いままだったし・・・。あーよかった。

名前が「php4_namazu」なので、てっきりどうにも
ならないかと・・・
0923nobodyさん05/02/27 14:06:32ID:Quvh5uNr
iアプリのAPIからPOSTで送られて来るバイナリデーターの受け取り処理
がわかりません。どなたかご存知の方おりましたら、アドバイス頂ければ
と思います。どうか宜しくお願い致します。
0924nobodyさん05/02/27 17:24:06ID:???
>>923
PHPの問題じゃないじゃん。
092592005/02/27 17:54:12ID:???
>>922
http://cvs.php.net/pecl/namazu/
を見ると 6 週間前に PHP5 への対応パッチが入っているので、
一応、メンテナンスはされているらしい。
0926nobodyさん05/02/27 19:35:58ID:KdI7O9Tq
912です!
追加でmysqlをphpizeでいれようとしているのですが、
configureで
/usr/local/lib/mysql/lib/libmysqlclient.a(my_compress.o)(.text+0xbc): In functio
n `my_compress_alloc':
: undefined reference to `compress'
/usr/local/lib/mysql/lib/libmysqlclient.a(my_compress.o)(.text+0x13a): In functi
on `my_uncompress':
: undefined reference to `uncompress'
のエラーが出てうまくいきません。

調べていくと
これは、クライアントライブラリをコンパイルしたときに、クライアント/サーバプロトコルの zlib サポートが組み込まれていたことを意味します。
-lmysqlclient を指定してリンクするときに、最後に -lz を追加することで解決できます。
とありますが、
何も修正したらいいのでしょうか?

configureの -lmysqlclientの部分に全て -lz をつけても
いつもconfigureは上書きされちゃうようだし・・・

LINUX初心者なんでよろしくお願いします。
092791605/02/27 21:19:34ID:f/BfgIj2
>>925
ありがとうございました。
どなたか(作者?)がヘッダファイル
に手入れてくれてたのかぁ〜。
安心、安心。
ていうかこの拡張モジュールなかったら
結構つらいですもんね・・・
CGIとして呼ぶ、とかしか方法ないんですよね・・・
0928nobodyさん05/02/28 12:23:52ID:???
>>926
./configure に --with-zlib はつけた?
0929nobodyさん05/02/28 14:08:59ID:3v+7XYLQ
>>928
つけていませんが
最終的に
export EXTRA_LIBS="-lmysqlclient -lm -lz"
をつけたらうまくいきました。
そっか
./configure に --with-zlib
でもよかったんだ・・・

ありがとですぅ
レス数が900を超えています。1000を超えると表示できなくなるよ。