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

【PHP】くだらねぇ質問はここに書き込みやがれpart8

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/08/08(月) 01:18:55ID:54u1h4+D
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
0757nobodyさん2005/08/28(日) 09:25:52ID:???
htmlから題名のみ抽出し表示するものを作っています。
どうしてもエラーが出てしまいます。

itemauc.cgi?mode=view&no=7777">題名</a></td>
だとすると題名のみ抽出したいのです。
ご教授お願いします。

<?php
$InputFile = "http://*********";
$Pattern = "/(itemauc.cgi?mode=view&no=.*">)(.*)(<\/a><\/td>)/";
$fp = fopen($InputFile, "r");
if ($fp == FALSE) {
echo "error";
exit();
}

while (!feof($fp)) {
$s = fgets($fp);
$n = preg_match_all($Pattern, $s, $ar, PREG_SET_ORDER);
for ($i = 0; $i < $n; $i++) print "・" . $ar[$i][2] . "<br />\n";
}
fclose($fp);
?>
0758nobodyさん2005/08/28(日) 09:33:29ID:???
>>757
>どうしてもエラーが出てしまいます。

どんなエラーです?
echo "error"; ?
0759nobodyさん2005/08/28(日) 09:34:29ID:???
>>758
正規表現おかしくない?
07607572005/08/28(日) 09:50:13ID:???
Parse error: parse error, unexpected ')'というエラーがでます。
正規表現おかしいですか?
0761nobodyさん2005/08/28(日) 10:18:09ID:???
$Pattern = "/(itemauc.cgi?mode=view&no=.*">)(.*)(<\/a><\/td>)/";
を
$Pattern = "/(itemauc.cgi?mode=view&no=.*\">)(.*)(<\/a><\/td>)/";
にしたらどう?
(「&no=.*">」の二重引用符をエスケープする「&no=.*\">」)
0762nobodyさん2005/08/28(日) 10:23:36ID:???
エスケープするなら、[?]だろ
07637612005/08/28(日) 10:28:32ID:???
>>762
え?そうなの? 正規表現の方じゃなくPHPのエスケープだよ?
07647572005/08/28(日) 10:42:26ID:???
>>761
エラーはでなくなりましたが何も表示されないです。
07657612005/08/28(日) 11:00:35ID:???
>>762
おっしゃる意味わかりました。

>>757
$Pattern = "/(itemauc.cgi?mode=view&no=.*">)(.*)(<\/a><\/td>)/";
を
$Pattern = "/(itemauc.cgi\?mode=view&no=.*\">)(.*)(<\/a><\/td>)/";
にすると上手くいった。
「&no=.*">」の二重引用符と「.cgi?mode」の「?」をエスケープする。
「?」が正規表現で評価されたみたい。
07667572005/08/28(日) 11:14:59ID:???
>>765
できました〜

?には気づきませんでした。
いい勉強になりましたありがとうございます。
0767nobodyさん2005/08/28(日) 12:59:49ID:???
.cgiの.もエスケープしておくれよ…
0768nobodyさん2005/08/28(日) 13:59:00ID:dDBq8KPQ
CLIのPHPであるサイトのページを開いてそのページのHTMLを
変数かファイルに落としたいのですが、どんな関数をつかえばよいのでしょうか?
教えてくださいませ。
0769nobodyさん2005/08/28(日) 14:09:13ID:???
>>757のスクリプト便利そうだからいろいろいじってみた。
これだと抽出した文字全部表示されるようだけど指定できないかな?
1つ目とか・・・いろいろやってみたんだけど難しー

便乗で申し訳ないが誰か教えてださい。
0770nobodyさん2005/08/28(日) 14:14:05ID:???
>>768
これじゃだめ?

$url = "http://*********";
$out = "out.html";
system("wget $url -O $out");
0771nobodyさん2005/08/28(日) 14:18:52ID:???
>>768
または>>757の様にfopen使う。
あとは通常ファイルの処理と一緒。
0772nobodyさん2005/08/28(日) 15:22:57ID:dDBq8KPQ
>>770さん
>>771さん
早速のアドバイス、どうも有難うございます。
今は時間がないので、後ほど試してみます。
有難うございました。
07737692005/08/28(日) 17:02:12ID:???
<?php
$InputFile = "http://*********";
$Pattern = "/(itemauc.cgi?mode=view&no=.*">)(.*)(<\/a><\/td>)/";
$fp = fopen($InputFile, "r");
if ($fp == FALSE) {
echo "error";
exit();
}

while (!feof($fp)) {
$s = fgets($fp);
$n = preg_match_all($Pattern, $s, $ar, PREG_SET_ORDER);
for ($i = 0; $i < $n; $i++) $aaa[$i] = $ar[$i][2];
}
print $aaa[1] . "<br>\n";
print $aaa[2] . "<br>\n";
print $aaa[3] . "<br>\n";
fclose($fp);
?>

757さんの改造してるんだけどうまくいかない。
指定したものだけ表示したいんですけど。
どこか間違ってるところありますか?
0774nobodyさん2005/08/28(日) 18:00:10ID:Io8dHAYt
動的なログファイルの最後の行だけを取得する方法で悩んでいます。
ヒントだけでもいいんで教えてください。

ISP規制中により携帯からなので
言葉足らずな点があるかもしれませんがよろしくお願いします。
0775nobodyさん2005/08/28(日) 18:05:47ID:???
>>774
コマンド使えるなら
tail -1 ファイル名
0776nobodyさん2005/08/28(日) 18:35:59ID:???
>>774
自分で作ってるログなら、最後の行だけ別ファイルにキャッシュする

そうでなければ最初から1行づつ読んで最後の行だけ取り出す。

ログファイルが追加のみでどんどん大きくなるという前提なら
最後の行を取得する時にファイルポインタの位置を記録しておけば後の負担が減る。

ログ1行の長さがある程度わかる場合は、
fseekのSEEK_ENDを使って適当な位置から読む手もある。
乱暴なやり方だが。
07777732005/08/28(日) 22:26:33ID:???
どうしてもできない。
ご教授お願いします。
0778nobodyさん2005/08/28(日) 22:42:01ID:???
>>777
>>757-767までじっくり読んだ上で、
もう一度自分が試しているスクリプトを見直す
0779nobodyさん2005/08/28(日) 22:50:54ID:???
PHP 5.0.4 Winをローカルで使用しています。

以下簡略したコードを示します。sub()内では$writeが1ではありませんでした。
index.phpで、main()のなかではなくfunctionの外でrequire('write_main.php');だと
sub()内でも1が表示されました。
そういうものなのでしょうか。この現象に気づくのに時間かかってしまった。

---index.php----
<HTML><BODY><PRE><?
function main(){
require('write_main.php');
}
main();
?></PRE></BODY></HTML>

---write_main.php---
<?
$write = true;
if($write){
require('write_sub.php');
} ?>

---write_sub.php---
<?
echo "[$write]\r\n"; // [1]が表示される。
function sub(){
global $write;
echo "[$write]\r\n"; // []が表示される。
}
sub(); ?>
0780nobodyさん2005/08/28(日) 22:53:24ID:???
>>773,777
> for ($i = 0; $i < $n; $i++) $aaa[$i] = $ar[$i][2];

この行も間違ってる。
この行の実行のされ方をよく考えろ。
0781nobodyさん2005/08/28(日) 23:01:53ID:???
>>779
function main(){
  require('write_main.php');
}
は

function main(){
  $write = true;
  if($write){
    require('write_sub.php');
  }
}

こうなるわけで、
$writeはmain関数のスコープ内で扱われることになって、
globalではなくなるね。
動作としてはそんなもんじゃないかな。
0782nobodyさん2005/08/28(日) 23:24:04ID:???
>>781
ありがとうございます。
なるほど、判りました。

ということは、そうかPHPってfunctionの中にfunctionを入れられるのか。
function main()
{
function sub()
{
}
}
しらんかった。
0783nobodyさん2005/08/28(日) 23:32:27ID:???
>>779
ただのサンプルかもしれんが、関数内で require するのは混乱の元だから
やめた方がいいと思う。
0784nobodyさん2005/08/29(月) 00:50:15ID:???
>>782
(・ε・)?
0785nobodyさん2005/08/29(月) 04:01:32ID:???
バージョン違いの吸収にextract($_POST);入れるのって
if (phpversion() >= "4.1.0")書いたほうがいい?なくてもかまわない?
0786nobodyさん2005/08/29(月) 06:50:29ID:???
>>783
関数内でincludeすればグローバルスコープの名前空間が汚れにくくなる利点もあるわけだが。
ヒント:ケースバイケース

>>785
extract使わずに修正するのは無理な状況なの?
07877852005/08/29(月) 08:15:47ID:???
>>786
レスさんくす。
最近PHPはじめたんだけど、なんこかの配布サイトのソース見ると、
if (phpversion() >= "4.1.0") {
extract($_POST);
}
って書いてあるのが結構あるのよね。
おまじないなのか、別に必要がないのか検索してもいまいちさっぱりで。
バージョンによってはこれをかかないとPOSTされたデータが入らないとかあるんだけど、互換?バージョンによってはエラーになったりするのかな?
07887772005/08/29(月) 08:24:37ID:???
すいませんぐぐったりしたんですができませんでした。
ループさせないほうがいいのでしょうか?
0789nobodyさん2005/08/29(月) 08:27:33ID:???
>>787
ttp://www.php.net/manual/ja/language.variables.predefined.php
$_POSTが使えるようになったのは4.1.0以降。(register_globalsのデフォルトがoffになったのは4.2.0以降。)
4.1.0以前は、$HTTP_POST_VARSを使うか、$POST変数名を使っていた。
0790nobodyさん2005/08/29(月) 08:43:05ID:???
>>787
PHP4.0以下でregister globalsがoffだと動かない
if (PHP_VERSION < "5.0.0") {
extract($HTTP_POST_VARS);
}
0791nobodyさん2005/08/29(月) 09:03:22ID:???
>>788
いい加減しつこい。
というか、そんな聞き方で答えてもらえる(答えられる)わけないだろ。

そもそも、ここに貼ったソースを見る限りだと、このスレの>>757からのレスすら読んでないみたいだし
0792nobodyさん2005/08/29(月) 11:18:25ID:???
SJISの文字列の中から最初に全角数字が出てくる位置を
取得したいと思い・・・mb_ereg_matchを使ってできると
思いきや、マニュアルには位置を返す記述がないので
できないのかなと思ってます。

全角数字が出てくる位置は
どのようにしたら取得できるのでしょうか?
0793nobodyさん2005/08/29(月) 11:27:12ID:???
ごめん。mb_eregでできそう age
0794nobodyさん2005/08/29(月) 12:18:28ID:???
ごめん。やっぱわからん。
0795nobodyさん2005/08/29(月) 12:33:45ID:s5T6oqi1
>>794
file()
でファイルを全部配列に読み込む。
んで、mb_ereg を使って全角文字があるかどうかをループで探していけば配列番号わかるでしょ。
配列位置=行目だから。
0796nobodyさん2005/08/29(月) 12:59:01ID:???
>>795
行じゃなくて何文字目かを知りたいんじゃないの
mb_ereg+mb_strposで出来ないかな
0797nobodyさん2005/08/29(月) 13:00:29ID:???
>>795
792が知りたいのは○行目ではなく1行中の文字位置では?
「abc8def」なら4文字目とか。
07987972005/08/29(月) 13:01:12ID:???
結婚してしまった…
0799nobodyさん2005/08/29(月) 13:07:56ID:YewHBwdY
PHP 4.3でWEBページの表示を行っています。
通常ページは問題ないのですが、フレームページではフレーム内が
表示されません。
$val = file_get_contents("http://www.aa.com/index.html");
echo $val;
やら、
$fp = fopen("http://www.aa.com/index.html", "r");
while (!feof($fp)) {
echo fgets($fp, 1024);
}
fclose($fp);
やらを試しました。
宜しくご教授願います。
08007952005/08/29(月) 13:10:44ID:???
あー、何文字目かってことか。
だったら、さっきの配列で見つけた行にたいして
mb_strposやればいいんでねーの?
0801nobodyさん2005/08/29(月) 13:21:29ID:???
とほほ

mb_strposを10個並べるか
1文字ずつローラ作戦を決行するしか
ないのですね。
0802nobodyさん2005/08/29(月) 13:31:32ID:???
preg_split(全角にマッチするパターン, 検索文字列, -1, PREG_SPLIT_OFFSET_CAPTURE);
0803nobodyさん2005/08/29(月) 13:39:14ID:???
>>799
表示されない原因は、<frame src>のURIが正しくないからなので、
そこを正しいURIに直してあげればいいですよ。
具体的なソースは面倒なのでパス。
0804nobodyさん2005/08/29(月) 13:46:56ID:???
>802
preg_splitは全角が利かなかったので
mb_splitにして戻ってきた配列からの0要素の文字数をカウント
することにしました。
<thinks src='みんな'>ありがとう</thinks>
0805nobodyさん2005/08/29(月) 13:53:46ID:???
>>804
PHPのバージョン何使ってる?
0806nobodyさん2005/08/29(月) 13:55:02ID:bRBqfQsi
PHPをアップローダを作っているのですが、ダウンロードの時に化けてしまいます。
FTPでバイナリ転送でダウンロードすると化けていないので、
アップロードはうまく言ってると思うのですが・・・
どこが間違っているのでしょうか?
PHPのバージョンは4.3.10、apacheを使っています。
よろしくお願いします。

header ("Content-type: application/octet-stream");
header ("Content-Transfer-Encoding: binary");
header ("Content-Disposition: attachment; filename=" . $fname);
header ("Content-length: " . filesize( $fname));
readfile ($fname);
0807nobodyさん2005/08/29(月) 14:01:26ID:pua4PW6B
掲示板を作ったんですが、書き込みの際にIPを取得するようにしたんですが、何故かlocalhostとしか取得できません。
ローカル、レンサバとも同じ状態です。
HPのTOPに置いてあるアクセス解析は正常に取得してるようなのですが。。
自分なりに調べて見たのですが、さっぱり解らずに困っています。
何が原因なのでしょうか。。
0808nobodyさん2005/08/29(月) 14:01:41ID:???
>>804
mb_eregとかで最初に出現した全角数字を取って
mb_strposで、取得した全角数字の場所取るってのは?
0809nobodyさん2005/08/29(月) 14:05:29ID:???
すんません。>>792氏の関係で正規表現について教えて欲しいのですが、
半角数字のパターンは[0-9]だと思いますが、全角数字のパターンはどうすればいいのでしょうか?
[0-9]としたら範囲が空とエラー吐かれました。
08108092005/08/29(月) 14:22:42ID:???
>>804

実験的なステータスらしいが、mb_ereg_search_pos ってのがある。PHP4.2以上。
ttp://www.php.net/manual/ja/function.mb-ereg-search-pos.php
でもイマイチ使いづらいかも。
0811nobodyさん2005/08/29(月) 14:27:06ID:???
>>809
[0|1|2|3|4|5|6|7|8|9]
0812nobodyさん2005/08/29(月) 14:43:41ID:???
>>803
有難うございました。
無事、表示されました。

あと、Basic認証内ファイルの場合ですが、
indexは"Authorization: Basic"でクリアできますが
フレーム部分では認証がポップアップされます。
よろしければこの対策についてご教授願えますでしょうか?
08138102005/08/29(月) 14:48:45ID:???
>>811
うまくいかんです。関数の問題なのか、正規表現の問題なのか?

$ptn = "[0|1|2|3|4|5|6|7|8|9]"; //全角数字
$str = "abc8d2e89f"; // 結果 [0] => 7 , [1] => 1
//$str = "今日は8月28日"; // 結果 [0] => 1 , [1] => 1
mb_ereg_search_init($str);
$ary = mb_ereg_search_pos($ptn); // [0]は一致した先頭の位置、[1]は一致した長さ(バイト数)
print_r($ary);

$ptn = "8"; にすると [1] => 2 になるし。
0814nobodyさん2005/08/29(月) 14:55:26ID:???
>>813
スクリプトの文字コードと内部エンコード合わせてますか
0815nobodyさん2005/08/29(月) 14:55:31ID:???
>>813
文字クラスはダメだ。16進で指定してみれ。
08168062005/08/29(月) 15:02:25ID:???
>>806のreadfile ($fname); を、
fopenしてからfgetc一回したら3バイトのファイルができました。
2回fgetcしたら4バイトになりました。(相変わらず化けてます)
PHPの原理がよくわかってないので、なんか変な感じです。
これは設定が悪いのでしょうか?どなたかヒントください。
08178132005/08/29(月) 15:45:59ID:???
>>814
813ではスクリプト=EUC-JP、内部エンコード=SJISでした。
なので、mb_internal_encoding("EUC-JP"); としましたが結果は同じです。

>815
ここ(ttp://ash.jp/code/codetbl2.htm)見るとEUCでは「0」=A3B0、「9」=A3B9なので
$ptn = "[0xA3B0-0xA3B9]";
としましたがマッチしませんでした。
指定方法が根本的に間違ってるのかな?
0818nobodyさん2005/08/29(月) 15:58:06ID:???
16進エスケープは\xFFとかじゃ?
ってか、POSIXのEREって16進エスケープ対応してんの?
0819nobodyさん2005/08/29(月) 16:43:09ID:???
しばらく目をはなした隙にオソレスになりました。

>>805
PHP4.3.10です。
もしかしてPHP5なら全角でもOK?

>>796>>800>>808
mb_eregを使ってマッチした文字列から
非正規表現でマッチさせればよかったのですね。
勉強させていただきました。
0820nobodyさん2005/08/29(月) 16:43:35ID:???
>>788
ループさせるのは間違いじゃないが、$aaaの添字に$iを使ってしまうと、
行(外側のwhileループ)ごとに0から始まるから、
$aaa[0]が何度も上書きされることになりやすい。
$aaaの添字には別の変数を使え。

それから、最後の出力テストはprint_rを使うと便利。

もう1つの間違いについては>>778
08217852005/08/29(月) 17:50:13ID:???
>>789.790
サンクス
とりあえず、自分の環境ではないと動かないしあると動くので、おまじないと思って付けておきます。
0822nobodyさん2005/08/29(月) 18:25:09ID:???
         ( ( ( ) > ̄    ヽ、)),'^^'' 、
          , -―ー '"   ;   '     7   !)
         / , '"^、 `ー-、 _, -ー   !   /'|
      |'   _ミ7ゝ     ,.    !   / |
         ||  Y'    ::y'     :   |  |
       |.|   |     :     :   |  !
          |'   ! .'o,   |  '.o, !   |,/
       |   ヽ、  ,人     ノ   |
       !     | `゛´   ` ー 'ヽ   ノ
          i    |           ヽ、_, '
          ヽ、__ ノ          /
0823nobodyさん2005/08/29(月) 19:19:57ID:???
MySQLにデータを突っ込むときに勝手に\マークがエスケープされるんですが
どこをいじったらなおりますか?
08248232005/08/29(月) 19:27:17ID:???
表示するときにstripslashesで¥をトって表示して
MYSQLに入れるときにaddslashesで¥を付けていれたらいいのれすか?
0825nobodyさん2005/08/29(月) 21:21:05ID:???
円マーク2個重ねて
0826nobodyさん2005/08/29(月) 21:23:52ID:???
レンタルサーバーでPHPからImageMagickを動かしていたのですが
これをローカルで動かせるようにするにはどうしたらよいのでしょうか。

Apache2.0.54.0、OSはWinXPSP2、PHP5、
ImageMagick-6.2.0-Q16-windows-dll.exeを使いImageMagickをインストールした
ところまで来ました。
0827nobodyさん2005/08/29(月) 21:29:00ID:???
move_uploaded_file()について質問があります。
環境は以下の通りです。
Win XP
PHP 5.0.4
Apache 2.0.54

また、(ない知識を絞ったうえで)関連すると思われるphp.iniの設定は、
safe_mode = Off
register_globals = Off
doc_root =
file_uploads = On
upload_tmp_dir = "C:/tmp"
upload_max_filesize = 2M
です。

このような環境下で
move_uploaded_file($_FILES['file']['tmp_name'], $_FILES['file']['name']);
を実行すると、
Apache2のインストールディレクトリに$_FILES['file']['name']な名前の
ファイルが作成(移動)されてしまいます。
つまり、phpスクリプトが置かれているカレントディレクトリにファイルが移動されないんです。
この問題については、
http://jp.php.net/manual/ja/function.move-uploaded-file.php
に「Darrell」という方がそれらしい情報を投稿してくださってますが、
その解決策のようなものが見当たりません。

なので、よろしければ、
同じような問題に遭われた方がいらっしゃれば、
解決策や回避策など教えていただければと思います。
長文失礼しました。
08287742005/08/29(月) 21:54:14ID:???
遅レスすいません。
レスありがとうございます。

>>775
コマンド使えませんでした・・・。

>>776
それを参考にして色々やってみたいと思います。
ありがとうございました。
0829nobodyさん2005/08/29(月) 22:07:57ID:???
最近PHPを勉強し始めたのですが、
PostgreSQLをインストールして、PHPからアクセスするために
PHPのpgsqlモジュールが必要になりました。
ほかのモジュールをそのままでpgsqlモジュールだけ追加して使う方法は
あるのでしょうか。それともPHPの再インストールが必要なのでしょうか。
よろしくお願いします。

MacOSX10.3.9
Apache1.3.33
PHP4.3.9
PostgreSQL8.0.2
08308292005/08/29(月) 22:12:42ID:???
Mac板のプログラミングスレから誘導されてきました。
0831nobodyさん2005/08/29(月) 22:13:06ID:???
論理積について質問があります。
if (!isset($x) && !isset($y)) {
echo $giko;
}
else {
echo $mona;
}
上記のように条件分岐させているのですが、
$mona を表示させるか否かのみを判定したい場合はどの様にするのが格好いいでしょうか。
今のところは
if (!(!isset($x) && !isset($y))) {
echo $mona;
}
こんな風に対処したのですが、なんかカッチョ悪い・・・
0832nobodyさん2005/08/29(月) 22:16:37ID:???
>>823-824
>>672で既出
0833nobodyさん2005/08/29(月) 22:17:45ID:???
>>831
単純に
if(isset($x) && isset($y)) {
echo $mona;
}
でいいんじゃないの?
0834nobodyさん2005/08/29(月) 22:20:25ID:???
>>831
要は $x か $y のどちらかがセットされていたら $mona を表示でいいんだろ?
これではダメなん?

if (isset($x) || isset($y))
 echo $mona
0835nobodyさん2005/08/29(月) 22:24:45ID:???
>>831
それでいいんじゃないの?
if (!isset($x) && !isset($y)) { ; } else { echo $mona; }
って書き方もありっちゃあり。

ただ、!a && !b ってのは a || b と等価なんで(ド・モルガンの法則って奴)
>>831の上の奴は
if (isset($x) || isset($y)) { echo $giko; } else { echo $mona; }
下の奴は
if(!(isset($x) || isset($y))) { echo $mona; }
と置き換えられる。
0836nobodyさん2005/08/29(月) 22:30:14ID:???
あとは
echo (isset($x) || isset($y)) ? $giko : $mona;
くらいかな。
08378312005/08/29(月) 22:41:33ID:???
>>833-836
即レス有り難うございます!
ド・モルガンの法則・・・ウッ頭痛が・・・

三項演算子も使えたんですね。いつか使ってやろうと狙っているのですが思い浮かんだ試しがない・・・

早速書き直します。サンクス!
0838nobodyさん2005/08/29(月) 22:46:48ID:???
>>829
こっちも微妙にスレ違いだと思うけど…。
もとのPHPを残したいのはSoftwareUpdate対策?

手元にmacが無いので、ちゃんとは分からないけど、
普通にコンパイルオプション付けて入れ直したらよいのでは。
私はそうしてました。
んで、そのコンパイルオプションは、
デフォルトで入っている PHPの phpinfo() をコピペして必要なのを追加、がオススメです。

どうしても気になるなら、/usr/local/ に入れるなりして回避してください。
0839nobodyさん2005/08/29(月) 23:05:06ID:???
>>829
可能かもしれないし、駄目かもしれない。
使ってるPHPはどうやって作ったん?
取り敢えずpgsql.soとMac、php辺りでぐぐれ。
0840nobodyさん2005/08/29(月) 23:14:43ID:???
>>839

>>829のPHPは、macに標準で入ってるやつでしょう。
mac用のpgsql.so だけ配ってるなんて聞いたこと無いし。
なるべく他の環境を変えないようにするには、
ソース持ってきてコンパイルしか無かったと思う。
08418272005/08/29(月) 23:20:36ID:???
自己解決しちゃいました。
move_uploaded_file($_FILES['file']['tmp_name'], $_FILES['file']['name']);
↓
move_uploaded_file($_FILES['file']['tmp_name'], getcwd()."/".$_FILES['file']['name']);
この変更で、move_uploaded_file()がちゃんと動く鯖でも、
僕のような問題が起こる鯖でも、どちらでもちゃんと動きそうですね。
初歩的な質問な気がして、はずかしい・・。

ご迷惑をおかけしました。
ですが、もしphp.iniの設定などで今回の問題が直せるのでしたら、
ご存知の方是非教えてください。以上です。
0842nobodyさん2005/08/29(月) 23:51:18ID:???
何だか物凄い勢いで流れたので・・・再投稿スマソ。

ローマ字で
 aiueonn
と入力すると
 あいうえおん
と返してくれるライブラリーってないですか?

Javascriptでは見たことあるのですがPHPでないですかね?

宜しくお願いします。
0843nobodyさん2005/08/29(月) 23:55:01ID:???
自分で作ればええやん、と思いながら見てたけど、誰もレスしてなかったのか。。
0844nobodyさん2005/08/29(月) 23:55:51ID:???
>>842
自分は見たことない
JavaScriptのソースがあるなら、それ参考に作っちゃった方が早い気がする。
0845nobodyさん2005/08/30(火) 00:20:18ID:???
FORMで確認画面に遷移セッションに値格納
    ↓
submit
    ↓
セッションデータのデータをメールへ送信
unset( $_SESSION[data] ); //セッションデータを削除
    ↓
header('location: aaa.htm'); // 別ページへジャンプ

上記のようなスクリプトがあるんですけど。
ジャンプで飛ばした後、ブラウザの戻るを実行するとunsetした
セッションが復活してしまいます。

完全に消す方法はあるのでしょうか。
unset( $GLOBALS[_SESSION][data])でも消えませんでした。


0846nobodyさん2005/08/30(火) 00:23:00ID:???
>>829
phpのソースパッケージをダウンロードしてきて、
$ tar zxvf php-x.x.x.tar.gz
$ cd php-x.x.x/ext/pgsql
$ phpize
$ ./configure --with-pgsql=/path/to/postgres
$ make
$ sudo make install

いつもモジュールが欲しくなった時はこんな感じでやっつけてる。
あとはdl()かphp.iniでロードするだけ。

ひょっとしたらapacheでDYLD_LIBRARY_PATHを設定する必要があるかも
それはpostgresのインストール方法次第だと思うけど、postgres使った事無いからわからん。

/path/to/postgres がどこかは自分で考えろよ。
08478292005/08/30(火) 00:55:02ID:???
>>838,839,840,846
レスありがとうございます。

>>840さんのおっしゃる通りMacに標準ではいっているPHPです。
それでソースから全部インストールするのを躊躇っていました。

phpinfo()からConfigure Commandをコピペして
"--with-pgsql='postgresのパス'"を加えて再インストールしてみます。

DYLD_LIBRARY_PATHのことはこれから調べてみます。
ありがとうございました。
0848nobodyさん2005/08/30(火) 01:02:01ID:???
>>842
質問してばっかだなお前ーぶぶぶーwww
ただ置換すればいいだろぼけなすーwwwww
そんくらい自分で書けやかすーwwwwww
0849nobodyさん2005/08/30(火) 01:07:11ID:FCdiEo7p
./A.html →(ファイル内呼び出し)→ ./script.php →(データ読み書き)→ ./data.log

こんな感じでPHPだけ"script.php"というファイルにまとめていろんなファイル
から呼び出しています。さらに"script.php"からデータの読み書き用に"data.log"という
ルートにあるファイルにアクセス。

さて、ここで

./folder/B.html →(ファイル内呼び出し)→ ./script.php →(データ読み書き)→ ./data.log

という呼び出しをしたとき、script.phpが"./data.log"にアクセスできないと
エラーを返します。つまり"./folder/data.log"にアクセスしようとしてエラーに
なっているんですね。呼び出すhtmlファイルの場所に依存してscript.phpから
毎回エラーを返されるのは正直鬱陶しいんですがみなさんどうされてます?

せめてscript.phpからdata.logを相対パスで呼んでくれればこんな問題は
生じないんですがね。
0850nobodyさん2005/08/30(火) 01:13:27ID:???
>>848
単純な置換で事足りるわけない。
お前がやってみろクズ
0851nobodyさん2005/08/30(火) 01:29:52ID:???
>>850
図星突かれてそんなに悔しかったのか?wwwwww
誰がいつどこで「単純な置換で事足りる」っつったんだ?wwwwwww
本人だとしたらさすがすぎるwww低脳丸出しだなwwwwww
0852nobodyさん2005/08/30(火) 01:30:41ID:???
>>850
別に単純な置換繰り返すだけで出来る気がするんだけど?
元のJavaScriptとやらの提示がいないので、ご希望の精度が得られるかどうかは不明だけど。

というか、正規表現置換(ereg/preg_replace)とかstr_replaceとかだけが置換じゃないよ。
自分でパターンを置き換える処理も立派な置換だ。

んで、作れって言うんだったらスレ違い。↓へどうぞ。
■こんなCGI作ってください■
http://pc8.2ch.net/test/read.cgi/php/1102980903/
0853nobodyさん2005/08/30(火) 01:32:38ID:???
ttp://la.ma.la/misc/js/roma.html を移植するのなら結構簡単だと思うなー。
0854nobodyさん2005/08/30(火) 01:58:25ID:???
>>851
だから、お前がスクリプト書いてみろって言ってるんだよ、カス
0855nobodyさん2005/08/30(火) 02:21:32ID:???
学校の課題が出来ずに焦っている>>854がいるスレはここですか?
0856nobodyさん2005/08/30(火) 02:41:40ID:???
>>854
糞面白いなお前wwwwwwこんなのも書けないなんて障害あんじゃねーの?wwwwww
■ このスレッドは過去ログ倉庫に格納されています