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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/12/18(日) 10:10:12ID:???
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
過去スレは>>2
0136nobodyさん2005/12/20(火) 12:15:58ID:???
>>135
で?
0137nobodyさん2005/12/20(火) 12:22:51ID:???
>>135
すごい狂った人が来ましたね。
データファイルを置く場所に関して悪習慣ができているようなので直すことをお勧めする。
0138nobodyさん2005/12/20(火) 13:15:22ID:2GuOb5lJ
>>133
ありがとうございます。
listで二重ループで普通に個数を比較しての単純ソートをしてたんですが
これがどうも数が多くなると正常にいかなかったもので
0139nobodyさん2005/12/20(火) 15:07:53ID:qvzJW6a+
質問です!
<SPAN class="class">ここに文章
</SPAN>

上記のように途中で改行があるソースから文章を取り出したいのですが

$C = preg_match_all("%<SPAN class=\"class\">(.+?)\n</SPAN>%is", $A, $B);

と書いてもうまくできません。\r\nや\rにしたり、
実際に改行してみたんですがダメでした。どうしたらいいですか?
0140nobodyさん2005/12/20(火) 15:15:08ID:???
>>139
preg系のパターンは/で囲むんじゃないの?
01411392005/12/20(火) 15:26:33ID:qvzJW6a+
>>140
そうなんですか?改行のない場所ではうまく取れてますが。。
01421392005/12/20(火) 15:34:15ID:???
あああ、ごめんなさいごめんなさい。
全然違う所($Aのところ)でミスしてました。お騒がせしました。
0143nobodyさん2005/12/20(火) 15:55:17ID:???
>>140
英数\以外なら何でもいいよ
括弧系は対応する括弧で閉じる
0144nobodyさん2005/12/20(火) 16:38:59ID:???
htmlで出力するとき、改行コードを\nにしてるんだけど、ソースを見ると\r\nになっちゃうのは仕様ですか?
0145nobodyさん2005/12/20(火) 16:53:05ID:???
>>144
んなことは無いんじゃないかなぁ。
間に変なフィルターが入らないように、proxyを使わずにtelnetで確認してみたらどうかな?
0146nobodyさん2005/12/20(火) 16:57:59ID:???
>>145
すまん、PHPじゃなくて、Perlでの話だった。
単純に誤爆してた、スマソorz
0147nobodyさん2005/12/20(火) 17:16:42ID:???
>>144
Windows鯖でテキストモードだから
>>146
BINMODE FH
0148nobodyさん2005/12/20(火) 17:40:34ID:???
外部ファイルを取得して保存する要領で外部の画像を保存することはできますか?
0149nobodyさん2005/12/20(火) 17:41:44ID:???
PHPでそれまでに出力された内容(ブラウザから見たソース)を取得する関数ってないですか?
0150502005/12/20(火) 17:45:22ID:???
>>149
echo
0151nobodyさん2005/12/20(火) 17:47:58ID:???
名前は誤爆誤爆誤爆
0152nobodyさん2005/12/20(火) 18:30:08ID:???
XXXXserAAAAAAA;XXXXX

でAAAAAAAの部分を取得したいのですが、簡単な方法はありませんか?
Xは不特定、serと;は固定です。
0153nobodyさん2005/12/20(火) 18:34:09ID:???
>>152
なんかデジャブだし……
0154nobodyさん2005/12/20(火) 18:39:24ID:???
>>149
そうではなくて、例としては以下のような感じです。
――――――
<?php
$a="あいう";
echo $a;
?> えお
<?php
$X=出力取得関数();
?>
――――――
で$Xに"あいうえお"が入ってくれればいいんですが。
01551522005/12/20(火) 18:40:56ID:???
AAAAAAAの部分も不特定です。
i-modeの端末情報です。
0156nobodyさん2005/12/20(火) 18:47:01ID:???
>>154
http://jp2.php.net/manual/ja/ref.outcontrol.php
これを利用すると似たようなことできない?
0157nobodyさん2005/12/20(火) 18:48:25ID:???
>>155
933 名前:nobodyさん:2005/12/17(土) 01:04:26 ID:???
preg_match('/hoge(.*)hage/', $str, $pattern);
$result = $pattern[1];

01581542005/12/20(火) 18:54:35ID:???
>>156
ありがとうございます。ちらっと見た感じ、これでいけそうなんでこれを参考にして色々やってみます。
01591552005/12/20(火) 19:01:46ID:???
>>157
できましたー!どうもです。
0160nobodyさん2005/12/20(火) 19:37:05ID:???
画像のサイズを取得する関数を教えてください
0161nobodyさん2005/12/20(火) 19:50:28ID:???
>>160
ttp://www.php.net/manual/ja/ に行き、search for にキーワードを入力する。
今回は画像だから image あたりが良かろう。
で、検索すると、、、いかんな・・ダイレクトにヒットしてしまった・・
まぁいいか、、、イメージ関数つー関数群があることが分かる。
その中を見ていくと、画像のサイズに関係する関数が見つかるだろう。

さらに image size と2つのキーワード(or 検索)で探してみると、
いかにもそれっぽい関数が列挙される。
0162nobodyさん2005/12/20(火) 20:07:07ID:???
>>148
$fp = fopen("save_filename", "w");
fwrite($fp, file_get_contents("ext_filename"));
fclose($fp);
01631622005/12/20(火) 20:09:02ID:???
こっちの方が単純か。
file_put_contents("save_filename", file_get_contents("ext_filename"));
0164nobodyさん2005/12/20(火) 21:19:34ID:???
>>161
ただの誘導に10行もかけて勿体つけて書くなよキモいなお前
01651482005/12/20(火) 22:18:27ID:???
>>162-163
できました!!ありがとうございました!
0166nobodyさん2005/12/21(水) 09:23:55ID:???
はじめて行読み込みをしようと思ったのですが以下の物だと行が無くてもbreak;しません。
私は何か思いっきり勘違いしているのでしょうか?。

if (is_readable($file)){
$fp = fopen($file,'r');
for($i=0;$i<10;$i++){
if (!feof($fp)) break;
echo fgets($fp);;
}
fclose ($fp);
}
0167nobodyさん2005/12/21(水) 09:33:10ID:???
>>166
それだと行があったらbreak
0168nobodyさん2005/12/21(水) 09:35:36ID:???
>>166
> if (!feof($fp)) break;
ここ

つ ttp://jp2.php.net/manual/ja/function.fgets.php
マニュアルにそのものずばりの例がある。
まずはマニュアルを確認することをお勧めする。
0169nobodyさん2005/12/21(水) 09:52:00ID:???
>>167-168

feof()
ファイルポインタがEOFに達しているかまたはエラーの場合にTRUE 、 その他の場合にFALSEを返します。
だった(・・;。手っきり反対の動作をするのかと思い込んでいました。

ありがとうございます。
0170nobodyさん2005/12/21(水) 10:28:15ID:???
while(!feof($fp))
は無限ループに注意
0171nobodyさん2005/12/21(水) 12:39:22ID:RHXLhrgR
htmlspecialchars()でENT_QUOTESが、デフォルトでなく
オプション扱いになっている理由って、何が考えられますかね?
0172nobodyさん2005/12/21(水) 12:55:23ID:???
>>171
PHP/FI Version 2.0の同名の関数が<>&"しか対応してなったから後方互換性のためだと思われる
PHP/FIが ' に対応しなかった理由は知らない
0173nobodyさん2005/12/21(水) 13:02:28ID:RHXLhrgR
>>171
なるほど、歴史的な理由である可能性が高いですか。
デフォルトでついてた方が楽なんだけどな〜。
これ、ただでさえ関数名長いから、めんどくさいですね。
0174nobodyさん2005/12/21(水) 13:09:37ID:???
>>173
ENT_QUOTESをいれた形でユーザー関数にしておけばいいだけでは?
0175nobodyさん2005/12/21(水) 13:11:51ID:???
>>173
関数名や引数の補完機能の付いているエディタや開発環境を使うと便利ですよ。
この板にもエディタや開発環境のスレが3つくらいあったかな。
おいらはシンプルなエディタで補完機能を使わずにキーワードの強調表示だけしてますが。
(補完時の入力・表示に瞬間的に引っ掛かる感じがどーも苦手で。。)
0176nobodyさん2005/12/21(水) 14:52:12ID:???
date<>title<>message<>
となってて、長いmessageを携帯用に分割して表示するようにしたいのですが
何か良い方法はありますか?
0177nobodyさん2005/12/21(水) 14:55:11ID:???
>>176
好きなところで分割すればいいじゃん
0178nobodyさん2005/12/21(水) 14:56:19ID:???
>>172
JavaScriptとかで「'」を利用する場合の方が多いと考えられてるんじゃないのかな。
逆に「'」を常に変換したい場合ってそんなにあるもの?
JavaScriptで普通に「'」を使うように、通常は「'」なんて参照文字に変換する必要って無いと思うんだけど。
0179nobodyさん2005/12/21(水) 15:06:11ID:???
>>175
http://www.php-editors.com/review/
0180nobodyさん2005/12/21(水) 15:08:58ID:???
>>179
DWが上位なのが意外だ・・・
0181nobodyさん2005/12/21(水) 16:32:54ID:???
あれ?DWのPHPってそんなに使い勝手良かったっけ・・?
0182nobodyさん2005/12/21(水) 16:48:01ID:???
マニュアルにも載ってるPHP向けエディタリスト
ttp://www.thelinuxconsultancy.co.uk/phpeditors.php
0183nobodyさん2005/12/21(水) 17:09:36ID:???
>>180
それってただ並べてるだけじゃないの?
User Raitingは低いよ。
一番はPHP Designer 2005
0184nobodyさん2005/12/21(水) 17:17:17ID:???
それより更に下をいくZendStudio・・・
0185nobodyさん2005/12/21(水) 17:23:20ID:???
ttp://hp.vector.co.jp/authors/VA035840/sd_php.htm
0186nobodyさん2005/12/21(水) 17:43:03ID:???
エディタは補完機能+軽さかなぁ
いろいろ使ってみたけど、どれもしっくりこないんだよね・・・
何か良いのがないかしら

あ、本題です。require('./'.$dir.'.dat');とする場合に$dirに含まれると問題がある文字は
あるのでしょうか?。先頭に「./」を付けていてもディレクトリをさかのぼられる事はあり
ますか?。
0187nobodyさん2005/12/21(水) 18:06:40ID:???
いろんなエディタを使って結局xyzzyに落ち着いてる自分ガイル。
0188nobodyさん2005/12/21(水) 18:50:05ID:???
>>186
ある。 ../ は .././.././ のようになっててもきちんと動く。
0189nobodyさん2005/12/21(水) 18:51:17ID:???
英語よめんからphp_editor使ってる
0190nobodyさん2005/12/21(水) 19:09:55ID:???
Eclipse(TruStudio)だろ。
サーバでテストするまでもなくエラー箇所出してくれるし。
細かい手間が省ける。
0191nobodyさん2005/12/21(水) 19:19:35ID:???
こんばんは。お邪魔します。
テキストファイルに書き込む毎に1増やすようにしたのですが

1,2,3,4,5,6・・・

と記入されていきます。
ここまではいいのですが、例えば3と5を消す処理をしたとします。

1,2,4,6・・・とテキストファイルには表示されます。

ここで次にファイルに書き込む時に3を、その次に書き込む時は5としたいのです。
漠然とした例えで分り難いかもしれませんが、よろしければ教えて頂けないでしょうかm(_ _)m
0192nobodyさん2005/12/21(水) 19:23:09ID:???
>>191
頭から調べればいいじゃん
01931862005/12/21(水) 19:31:24ID:???
>>188
どうしたら良いのかなぁ
while(preg_match('|\./|',$dir)) $dir = str_replace('./','',$dir);
これでどうでしょうか?

>>191
欠番補完したいなら分割して1つずつ確かめて行くしかないと思うよ(^^;
01941862005/12/21(水) 19:36:34ID:???
$dir = '.././..././///////';
while(strpos($dir,'./') !== false) $dir = str_replace('./','',$dir);

結果が「////」となりましたが、これは問題があるでしょうか?
0195nobodyさん2005/12/21(水) 22:24:02ID:???
GDを使って折れ線グラフを作るのは難しいんですか?
調べてもよく分からないのですが。
0196nobodyさん2005/12/21(水) 22:31:11ID:???
特に難しいもんでもないよ。
かといって、配列を渡せば折れ線グラフが自動作成される
つーよーな便利関数があるわけでもない。
0197nobodyさん2005/12/21(水) 23:00:04ID:???
>>195
GDでゴリゴリ書いてもいいけど、普通はJpGraphなんかを使う罠。

ttp://www.aditus.nu/jpgraph/
ttp://www.asial.co.jp/products/jpgraph/
0198nobodyさん2005/12/21(水) 23:04:37ID:???
ライセンスの心配がある場合は、phplotってのもありかな。
0199nobodyさん2005/12/21(水) 23:19:31ID:???
ファイルをアップロードするPHPを記述した時に

$filename = $_FILES['rep']['name'];
if(file_exists($_FILES['rep']['tmp_name'])){ //ファイルの存在を確認 tempの状態で確認
if(ereg("(^[a-zA-Z0-9_-]+)\.(lzh)",$filename)){
list($filenamea,$filenameb) = explode(".",$filename);
$repnum = $_GET['repnum'];
move_uploaded_file($_FILES['rep']['tmp_name'],$repnum.".".$filenameb);
exit;
}
}

とし、「aiueo.lzh」を送信した所、「.lzh」と保存されてしまいます。
ちゃんと$_GET['repnum']が通っていないのかと思い、
echo $repnumすると、きちんとGETによって渡された数字が表示される様子。
何がおかしいのかさっぱりなのですが、どこか間違った点があれば教えて下さいm○m
0200nobodyさん2005/12/21(水) 23:57:58ID:???
>>199
$repnumが日本語で文字コードが絡んでるとエスパってみる
0201nobodyさん2005/12/22(木) 00:12:32ID:???
>>200さん
レスありがとうございます
$repnumには10や11など数字がはいっております…。
アプロダのあるphpは一つ上の階層なんですが、関係無いですよね。
0202nobodyさん2005/12/22(木) 01:37:25ID:???
>>191
$list = "1,2,3,5,8,9";

for($ar = explode(",", $list), $i = 0; $i < (count($ar) - 1); $i ++) if($ar[$i + 1] != $ar[$i] + 1) break;
$num = $ar[$i] + 1;

print "ret = $num";
0203nobodyさん2005/12/22(木) 01:43:55ID:???
>>199
素朴な疑問なんだが、アップロードしてるってことは<form>のmethodはPOSTなんだろ?
なんでrepnumはGETで渡した値を参照してるの?
repnumの値をどこでどのように確認したのか気になる…
0204nobodyさん2005/12/22(木) 02:11:34ID:f6FkYizC
mail関数が使えない現象が出ています。
phpinfoのstandard項目にsendmail_pathの記述がない。

ぐぐった結果、qmailのwrapperをシンボリックリンクにして
再度コンパイルしてインスコ。

それでも現象は変わらぬ。
php.iniも確認してsendmail_pathの記述は書かれているの
確認したんだけどなー
0205nobodyさん2005/12/22(木) 02:16:34ID:???
現象ってどういう現象が出てるんだ。
何かエラーメッセージが出てくるの?
0206nobodyさん2005/12/22(木) 02:18:08ID:f6FkYizC
出てきません。
mail関数が有効にならない。

qmailのsendmail-injectでサンプルメールを飛ばしたが
それは動いています。
0207nobodyさん2005/12/22(木) 02:39:47ID:NhSg4vO8
eregi_replaceを使って
>>[0-9]+
の数字の部分をリンクにしたいのですが
>>の部分を認識して貰えません。

$str = eregi_replace("(>>)(0-9]+)","<a href=\"#\\2\">\\1\\2</a>",$str);

>>と書くだけでは駄目なのでしょうか?他にも適当に試しましたがうまくいきませんでした。
0208修正2005/12/22(木) 02:42:23ID:NhSg4vO8
× "(>>)(0-9]+)",
○ "(>>)([0-9]+)",
0209nobodyさん2005/12/22(木) 02:46:50ID:???
ここまで独り言
0210nobodyさん2005/12/22(木) 02:58:30ID:???
>>207
「>>」はhtmlspecialchar()しないとブラウザじゃまともに表示されないかも
0211nobodyさん2005/12/22(木) 04:50:58ID:???
>>210

"(&gt;&gt;)([0-9]+)",

で出来ました。
ありがとうございました。
0212nobodyさん2005/12/22(木) 07:50:01ID:???
>>193
$dirって外から入力された値?
だったら".."が含まれた時点で不正な入力と表示して終了。
0213nobodyさん2005/12/22(木) 08:38:23ID:???
>>203さん
レスありがとうございます。
http://〜/a.phpには

http://〜/upload/b.php?repnum=15

というリンク先にリンクしております。
このような感じでGetでrepnumを渡しているのですが…。
空白が表示されるという事は
値が入っていない = ファイルをPostされた時点でGetの中身が消えてるのでしょうか…。

$repnum = Get_['repnum'];

の位置を変えてみるも駄目でした。
相変わらず「.lzh」になるようです
0214nobodyさん2005/12/22(木) 09:15:49ID:???
>>213
$newfilename = $_GET['repnum'].".".$filenameb;
echo $newfilename;
move_uploaded_file($_FILES['rep']['tmp_name'],$newfilename);

とやって$newfilenameはどう表示されるの?
まさかと思うけど、typoしてるってことないよね。
0215nobodyさん2005/12/22(木) 09:55:11ID:???
>>214さん
レスありがとうございます。
只今外出先の為確認できないので、お昼休憩の際に早速確認させて頂きます。
ちなみに、聞き覚えの無い言葉ですが、typeoとは何でしょう?
無知で申し訳ないですTT
0216nobodyさん2005/12/22(木) 10:04:52ID:???
>>213
ブラウザにもよるんだが、POSTでフォーム送信したときは
URLの後ろに?〜でパラメータつけても無視される場合があるぞ。
設計から見直した方がいい。
0217nobodyさん2005/12/22(木) 10:07:17ID:???
>>215
ty・po
━━ n. 〔話〕 誤植, タイプミス.
                         三省堂提供「EXCEED 英和辞典」より
0218nobodyさん2005/12/22(木) 10:11:19ID:???
>>213
> http://〜/a.phpには
> http://〜/upload/b.php?repnum=15
> というリンク先にリンクしております。
意味が分からん。
a.phpがアップロードのFORMが書いてあるページなのか?
それともb.php?repnum=15がアップロードFORMのページなのか?
ちょっとFORM部分のHTMLを書いてみろよ。特にacdtion=がどうなってるか。
なんかWebプログラミングを根本的に勘違いしてるヨカーン
0219nobodyさん2005/12/22(木) 10:12:22ID:???
おっと。typo。acdtionでなくactionな。
0220nobodyさん2005/12/22(木) 10:14:50ID:???
>>215自身がtypoしてるじゃないか。
0221nobodyさん2005/12/22(木) 10:55:36ID:???
>>218
http://〜/a.phpのFORMのactionにhttp://〜/upload/b.php?repnum=15
がかかれているということだと思ったり思わなかったり…
0222nobodyさん2005/12/22(木) 11:07:09ID:???
>>216-220さん
レスありがとうございます。

>>216さん
そうなのですか、知らなかったです…。
当ブラウザはIE6.0ですが、設計の見直しも必要かもしれないのですねTT

>>217さん
ありがとうございます、勉強になりました。

>>218さん
formが書いてあるのはbの方法です。form部分は

<form method="post" enctype="multipart/form-data" action="b.php">
<input type="file" name="rep" size="30">
<input type="image" name="submit" src="画像のURL">
</form>

となっております。
HTML部分はPHP記述の下です。

皆さん意見下さってありがとうございます。
もう少し面倒見て頂ければ嬉しいですm○m
0223nobodyさん2005/12/22(木) 11:12:23ID:???
>>218さん
formの記述はb.phpの方にしており、a.phpには

http://〜/upload/b.php?repnum=15

へのリンクだけとなっています。
やはりform部分に問題がありそうでしょうか…?
0224nobodyさん2005/12/22(木) 11:33:13ID:???
>>223
b.phpに以下を足して中身を確認したら…
print_r($_POST);
print_r($_GET);
0225nobodyさん2005/12/22(木) 11:58:23ID:???
すみません。PHPを勉強中のものですが、以下のエラーがでてどうしても
原因がわかりません。おしえてください。

エラー:Errors parsing D:\Program\APACHE~1\Apache2\htdocs\1-5.php
PHP Parse error: parse error, unexpected $end in D:\Program\APACHE~1\Apache2\htdocs\1-5.php on line 15
02262252005/12/22(木) 11:59:40ID:nKaKNsDz
本文:ちなみに一番下の行が15行目です。

<?php
if($_POST['user']){
print "Hello,";
print $_POST['user'];
print "!";
} else {
print <<< _HTML_
<form method="post" action="$_SERVER[PHP_SELF]">
Your Name:<input type="text" name="user">
<br>
<input type="submit" value="Say Hello">
</form>
_HTML_;
}
?>
0227nobodyさん2005/12/22(木) 12:10:58ID:???
>>223さん
レスありがとうございます。
もうすぐお昼なので、確認してみたいと思いますm○m

>>225さん
定義されていない変数があるという事だと思います。

$_SERVER["PHP_SELF"]

ではないでしょうか?
0228nobodyさん2005/12/22(木) 12:14:27ID:???
ヒアドキュメントまったく使わない俺だがよく見る質問なので覚えた。
{}で括れと
0229nobodyさん2005/12/22(木) 12:16:35ID:???
>>222
> <form method="post" enctype="multipart/form-data" action="b.php">
> <input type="file" name="rep" size="30">
> <input type="image" name="submit" src="画像のURL">
> </form>
この中に
<input type="hidden" name="repnum" value="<?=$repnum?>">
を追加しないとそもそも2度目の送信(アップロード時)にはrepnumは渡らん。
おまえ、1度送信しとけば値はずっと保存されると勘違いしてるだろう。

その上で、アップロード時のrepnumの受け取りは$_GETから$_POSTに変更シレ
02302252005/12/22(木) 12:17:07ID:???
>>227様
速レス感謝です。
今、偶然、違う本に解決方法がのっていました。

ヒアドキュメントの終わり、_HTML_;の行には、
タブ、スペース、コメント又その他の文字は書いていけないらしいです。
書いていいのはヒアドキュメントの終わりの印(この場合だと_HTML_)と
文の終了を示すセミコロン(;)だけだそうです。

速レス感謝します。
0231nobodyさん2005/12/22(木) 12:17:41ID:???
失礼しました
$_SERVER['PHP_SELF']

かな…?
0232nobodyさん2005/12/22(木) 12:19:04ID:???
>>230
外れ
>>231
それも外れ
0233nobodyさん2005/12/22(木) 12:19:17ID:???
>>225
問題なく動くが?
0234nobodyさん2005/12/22(木) 12:19:42ID:???
解決しましたか^^;
的外れでしたが良かったです。
02352252005/12/22(木) 12:21:45ID:???
>>228様
使用しなければいけない場面になったら、参考にします。
ありがとうございます。
02361.0008(破滅挑発) ◆rzOmotimAo 2005/12/22(木) 14:59:24ID:DhSg+gn2
新スレ、誰か立てて
自分で立てようとしたら
「このホストではしばらくスレ立てができません」
ってなる。

【板名】webprog板
【板のURL】http://pc8.2ch.net/php/
【タイトル】中央銀行システムを作らせながらPHP屋を捕獲するスレ2匹目
【名前】Omoti

【本文】
中央銀行システムをつくることで
経済、金融を理解しようというスレ。
■ このスレッドは過去ログ倉庫に格納されています