【PHP】質問スレッドpart16【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/04/07 01:06ID:HTcWOpWf上級者用や雑談スレを立てたくなった場合は後から適宜立ててください。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ及び注意事項等は、 あふぉが居なけりゃ>>2-5
0798nobodyさん
04/05/12 18:24ID:???死ねよ。スレ荒らすな
0799nobodyさん
04/05/12 18:54ID:???0800nobodyさん
04/05/12 18:57ID:???いやメモリーリークするような現象が見受けられる。
運用のスタイル如何で他にも支障があると思う。
トライtoチェックandリカバリが必要という点で
Apache2+PHP(Apache2filter)"実運用"に向かない。
どうしてもApache2の機能が使いたいならPHP(CGI)と
組みあわせる。
0801nobodyさん
04/05/12 19:01ID:???ありがと
何か、一年ぐらい前から進歩してないかな?
なら和解って話しに期待を寄せつつ待ちかな
タイミングが悪い時に書きこんじゃって、すみませんでした
0803nobodyさん
04/05/12 19:58ID:???0804nobodyさん
04/05/12 20:14ID:???0805nobodyさん
04/05/12 20:24ID:???0806nobodyさん
04/05/12 20:27ID:???( ´,_ゝ`)プッ
0807nobodyさん
04/05/12 21:09ID:???いやいやいや・・
>>798(俺)に対してプッって言われたから>>802(俺)が反論したわけで
状況見れば分かるようなことをわざわざ等号で結ぶ必要があるのか?
等号厨なのか?
0808nobodyさん
04/05/12 21:33ID:???0809nobodyさん
04/05/12 22:28ID:???レンタルサーバーのPHPがApacheのモジュールとしてインストールされているかどうかを
判断するには、普通に.phpが動作したらokなんですか?
cgiとして動くのは usr/bin/php が必要と言うこと?
Apacheのモジュールとして動作させた方が高速で負荷が少ないと聞いたもので…
0812nobodyさん
04/05/13 03:26ID:???プッε=_| ̄|( ´,_ゝ`)
0813nobodyさん
04/05/13 08:19ID:Ldb9FmGr完全レイアウト目的で使おうと思い入門サイトなど見てみたのですが
そういう使い方を解説してるページがありません。
やりたいことは、たとえばこういうレイアウトのページ
■■■■■■■■
■■□□□□■■ ■・・・メニューや飾り枠など
■■□□□□■■ □・・・中身のHTML
■■□□□□■■
■■□□□□■■
で、メニューを叩くと □ の部分のみ書き換えるというやつです。
そのように展開したページのURLはindex.php?aaa=bbbのようになってます。
なぜPHPに目をつけたかというと
・フレームを使いたくない
・全HTMLに■部分をつけたくない(Updateが大変)
・DreamWeaver等エディタではやりたくない(リンケージ機能など)
という理由だけなのですが、こういう目的のPHP使いは
邪道なのでしょうか?これに結びつく使い方の説明が見つからないので・・
他にもっといい何かがあるのでしょうか?
一応初心者級ですがperl, cgi, javascriptは書けます。
どなたかアドヴァイを・・・!
0815nobodyさん
04/05/13 09:42ID:???ファイルシステム関数のトコとかもう一度リファレンス読んでみてはいかがでしょう。
ぉれ的にはそれでいけるとおもうんですけど。
0816nobodyさん
04/05/13 09:42ID:Ldb9FmGr本気本気超本気です。
ドエライ勘違いしてます?
おしえてください・・・
0819nobodyさん
04/05/13 11:59ID:d+uWkqgBimgフォルダにある1.jpg 2.jpg 3.jpgを圧縮したいのです。
以下のプログラムを実行すると
hoge.tar.gz ファイルが作成されるんですが、これを解凍すると
1.jpgと2.jpgしか中にありません。なぜでしょうか。
<?
$file = "1.jpg 2.jpg 3.jpg";
$cmd= "tar zcvf hoge.tar.gz $file";
system("cd img;$cmd.$ret");
?>
0820nobodyさん
04/05/13 12:13ID:???0821819
04/05/13 12:17ID:d+uWkqgBtar zcvf hoge.tar.gz 1.jpg 2.jpg 3.jpg
とコマンド打ってみましたらちゃんと実行されました。
0822nobodyさん
04/05/13 12:18ID:???0823819
04/05/13 12:22ID:d+uWkqgB$retを消したらうまくできました。
すいません。
0824nobodyさん
04/05/13 18:07ID:???教えてください
###############################################################
# ロック処理
sub lock {
if (-e $lockfile) {
local($mtime) = (stat($lockfile))[9];
if ($mtime < time - 60) { &unlock; }
}
local($retry)=5;
if ($lockkey == 1) {
while (!symlink(".", $lockfile)) {
if (--$retry <= 0) { &error('LOCK is BUSY'); }
sleep(1);
}
} elsif ($lockkey == 2) {
while (!mkdir($lockfile, 0755)) {
if (--$retry <= 0) { &error('LOCK is BUSY'); }
sleep(1);
}
}
$lockflag=1;
}
sub unlock {
if ($lockkey == 1) { unlink($lockfile); }
elsif ($lockkey == 2) { rmdir($lockfile); }
$lockflag=0;
}
###############################################################
↑このコードです
0825nobodyさん
04/05/13 18:11ID:???0829nobodyさん
04/05/13 19:10ID:???0830hiro@ ◆7iyjK8Ih4Y
04/05/13 19:30ID:???遅れてすみません。
基本的なこと忘れてました。(基本?
jcode付けてなかったです。
まぁ気軽にがんばっていきます。
0831nobodyさん
04/05/13 21:16ID:HMzJsd5o0832nobodyさん
04/05/13 21:34ID:???0833nobodyさん
04/05/13 21:41ID:???座布団全部持ってって!
0834kuro
04/05/13 21:52ID:Enx3JY3Vhttp://pcbiz-j.com/business/blt.html
■不用品の処分から高額換金、プロのノウハウなど、毎月30万円稼ぐテクニックをあなただけに教えます。
■今なら期間限定割引!即金パックの販売代理店権利つき!
http://pcbiz-j.com/business/blt.html
きちんとした通信販売ビジネスです。
▼販売用のホームページを無料で支給します。
▼決していかがわしいマネーゲームなどではありません。
▼作業は1日にわずか数十分。(メール処理、通帳記帳など)
▼こっそり儲けたい人には、別名義での開業オプションもあります(資料メール参照)
http://pcbiz-j.com/business/blt.html
0835nobodyさん
04/05/14 01:05ID:???そのボタンを押すだけで削除〜みたいな事ってできますか?
$delfile = fopen('kakikomi.txt','r')
if ($_POST['del']) {
for ($i=0;$i<count($delfile);$i++)
{
$arr = explode(",", $delfile[$i]);
if ($arr[0] == ここがわかりません) {
array_splice($def, $i, 1);
}
}
}
表示されるのはID(ユニーク)と名前とメッセージでkakikomi.txtから配列にして表示しています。
削除ボタンが押された時に$_POST['del']とIDを通達するようにしたいんですがその方法がわかりません。
プログラム自体始めた麦価なので質問の仕方すらわからないですが、ヒントください。
0837nobodyさん
04/05/14 01:14ID:???わかり易いようにと整理してたもので。
$delfile = open('kakikomi.txt');
if ($_POST['del']) {
for ($i=0;$i<count($delfile);$i++)
{
$arr = explode(",", $delfile[$i]);
if ($arr[0] == ここがわかりません) {
array_splice($def, $i, 1);
}
}
}
こうですね!
0838nobodyさん
04/05/14 01:24ID:???if ($_POST['del']) {
for ($i=0;$i<count($delfile);$i++)
{
$arr = explode(",", $delfile[$i]);
if ($arr[0] == ここがわかりません) {
array_splice($def, $i, 1);
}
}
}
何度もすいません。。。orz
0840824
04/05/14 01:38ID:xJCSoVDm0841nobodyさん
04/05/14 01:39ID:???そりゃ、削除ボタンの付け方次第なんで、そっちをどのようにしたのかに因るがな。
0842nobodyさん
04/05/14 01:41ID:???となっていて、1行1レスです。
0843nobodyさん
04/05/14 01:45ID:???$_POST['del']に削除するIDが入っているのなら、
if($arr[0]==$_POST['del'])でいいのじゃないかな。
0844nobodyさん
04/05/14 01:45ID:???0845nobodyさん
04/05/14 01:46ID:???削除ボタンは<form method=POST><input type="submit" name="$id">
$idはkakikomi.txtのユニークなIDです。
0847nobodyさん
04/05/14 01:54ID:???そういうのは自分で構造考えてやったほうが後々のためになる。
0848nobodyさん
04/05/14 01:56ID:???にするとIDをどこで見分ければいいかがわからないんです。。ス
0849nobodyさん
04/05/14 02:00ID:???漏れの場合はたいていJavaScriptを使うんだけど、
<input type="hidden" name="del" value="">
としておいて、
<input typr="button" value="削除" onClick="form.del.value='$id';from.submit();">
見たいな感じ。
0850nobodyさん
04/05/14 02:01ID:???0851nobodyさん
04/05/14 02:04ID:???各ボタンごとにformを使う
<form><input type="submit" name="id_01"></form> -> $_REQUEST['id_01']がセットされる
<form><input type="submit"><input type="hidden" name="del" value="01"> -> $_REQUEST['name']='01'
全体を1つのformに収める
<form><input type="submit" name="id_01"><input type="submit" name="id_02"></form> -> (略)
0852nobodyさん
04/05/14 02:18ID:???javascriptっていう手もあるんですか、なるほど。
851さんの方法でもできるんですね。ちょっと色々やってみて出来たら報告しにきます。たぶん。
0853nobodyさん
04/05/14 02:34ID:???0854nobodyさん
04/05/14 06:14ID:???JavaScriptが使えない場合はどうしてる?
>>852
どっか適当なところ(先頭行とか)に
print_r($_post);
等入れて、何が引き渡されるか確認するといい
0855849
04/05/14 09:24ID:???いままでJavaScriptが使えない環境を考慮しなければならない案件を受けたことないし、
個人的に趣味で作るサイトもJavaScript必須にしているので、あまり深く考えたことがないのだが、
単純に済ませるのなら、aタグでリンクを貼ってもいいんじゃね。
<a href="http://www.example.com/hoge?DEL=$id">DEL(またはボタンアイコン)</a>
どうしてもinputタグで尚且つsubmitボタンのvalue値を"削除"か"DEL"でなら、
name側をユニーク(name="DEL-$id")にしてphpで$_POST配列を調べるとか。
クロスブラウザなサイトもすばらしいと思うが、NN4.xは捨ててもいいと思うし、
「JavaScript機能はOnでお願いします」って断って、利便性とか見た目と
開発効率の両立するのもありだと思う。JavaScriptが苦手な人はナニですが...
CSSを使って別ファイルにすると、HTMLの中にJavaScriptが占める割合は
最近ますます増えてます :-)
0856nobodyさん
04/05/14 12:00ID:vu0WINSDtitle:ぽぽたん
title:ぴちぴちピッチ
・
・
というファイルを
$buff[cnt] = FgetS($fp,255);
って書いて、ファイルの終わりになるまでカウントして取り捲ってるんですが、
とり終わった後、
title[0] => ぽぽたん
title[1] => ぴちぴちピッチ
といった感じの連想配列にしたいんですが、どうしたらいいでしょうか?
それともとってくる段階で、連想配列にはめ込む方法があるんでしょうか?
0857nobodyさん
04/05/14 12:16ID:???$buff = file('ファイル名');
ってやると
$buff[0]=>'title:ぽぽたん'
$buff[1]=>'title:ぴちぴちbitch'
ってなるのは知ってる?
0858856
04/05/14 12:26ID:vu0WINSDしってます
PReg_Split や、Explode で分割したら
Array
(
[0] => title
[1] => ぽぽたん
)
Array
(
[0] => title
[1] => ぴちぴちぴっち
)
ってなっちゃうんで、どうすればいいのか悩んでます。
0859nobodyさん
04/05/14 12:31ID:???str_replaceとか
0861nobodyさん
04/05/14 13:18ID:vu0WINSDはい、それもそうなんですが、
連想キーを元に値を引き出すってのをやってみたくて・・
配列関数で、値のソートだとか便利な関数が用意されてるみたいなんで
後々便利だとおもい、何とか$key=>$value の形に持っていければとおもっています。
0863nobodyさん
04/05/14 13:28ID:???title:あああ
title:いいい
name:ううう
title:えええ
name:おおお
↓
$title[0]=>'あああ'
$title[1]=>'いいい'
$title[2]=>'えええ'
$name[0]=>'ううう'
$name[1]=>'おおお'
0864nobodyさん
04/05/14 13:30ID:???0866856
04/05/14 13:38ID:vu0WINSDはい、それがやりたいんです。
Array
(
$title[0]=>'あああ'
$title[1]=>'いいい'
$title[2]=>'えええ'
$name[0]=>'ううう'
$name[1]=>'おおお'
)
こうしておけば、
NetSortだとかArsortだとか便利な関数が用意されてるみたいなので
データが増えたとき、お気に入り順でソートとか出来るかな〜と思って、そうゆう形で、入れたいと思っています
0867nobodyさん
04/05/14 13:43ID:???これをループで回せ。
$arr=explode(':',$buff[$cnt],2);
${$arr[0]}[]=$arr[1];
しかし....
0868nobodyさん
04/05/14 13:52ID:???0869nobodyさん
04/05/14 13:54ID:???while(($s = fgets($fp, 1024)) != NULL) {
list($var_name, $value) = explode(':', $s, 2);
${$var_name}[] = trim($value);
}
まぁ、あれだ。もとデータに他で使ってる変数名と
同じものが紛れた時に正しく動作せん罠
$input_data[$var_name][]
に放り込んだ方がええよ。
0870nobodyさん
04/05/14 14:09ID:???可変変数を使うときは、ほとんどの場合それ以前に問題があると思ったりするのだが。
0871nobodyさん
04/05/14 14:15ID:vu0WINSDありがとうございます!
これで、お気に入りなアニメのデータベース的なことができそうです
0872nobodyさん
04/05/14 14:18ID:???どうやって調べるんだ?
0873869
04/05/14 14:28ID:???そういう問題もあるから、
>$input_data[$var_name][]
>に放り込んだ方がええよ。
ってしたんだが。
これだと、array_keys($input_data)で
判るし、stdObjectに放り込んだとしても、
get_object_vars()で拾えるし。
0874nobodyさん
04/05/14 15:50ID:Ncoppi/iそこでphpinfo()のconfigure commandの文字列にmb_系関数をenableにして
configure実行したのですが、とおらないんです。
configure: error: Please reinstall the BZip2 distribution
といわれてしまいます。
phpinfo()のconfigure commandはインストールする際に
指定したコマンドですよね。それでインストールされてるのに
なぜ今インストールができないのか、、、不思議でなりません。
どなたかヒントをください。
0875856
04/05/14 15:59ID:vu0WINSDエラーメッセージを見ると、BZip2 が無いので入れてけろと言ってるみたいですが・・
どのディストリュビューションか分からないから
sources.redhat.com/bzip2/
ここでソース拾ってきてインスコすれば、configure通るんじゃないでしょうか?
連想配列順調です♪
0876nobodyさん
04/05/14 16:13ID:???ピュアは?
0877nobodyさん
04/05/14 16:16ID:???<html><head><title>test</title></head>
<form enctype="multipart/form-data" method="post">
upload?: <input name="userfile" type="file"><input type="submit" value="submit">
</form>
<?php
if (!empty($_FILES)) {
move_uploaded_file($_FILES['userfile']['name'],'/home/hoge/public_html/upload');
}
var_dump($_FILES);
?>
</doby></html>
php.iniのResource Limits部分は
max_execution_time = 30
memory_limit = 40M
File Uploads部分は
file_uploads = On
upload_tmp_dir =/tmp
upload_max_filesize = 10M
postmax部分は
post_max_size = 10M
となってるのに、sumbitを押すとupload.phpの読み込みに失敗しましたと出ます。1M位のデータならPOSTで送れるんだけど、それ以上だとブラウザでエラーになります。
なんでですかー?
0878nobodyさん
04/05/14 16:19ID:???<html><head><title>test</title></head>
<form enctype="multipart/form-data" method="post">
upload?: <input name="userfile" type="file"><input type="submit" value="submit">
</form>
<?php
if (!empty($_FILES)) {
move_uploaded_file($_FILES['userfile']['name'],'/home/hoge/public_html/upload');
}
var_dump($_FILES);
?>
</doby></html>
php.iniのResource Limits部分は
max_execution_time = 30
memory_limit = 40M
File Uploads部分は
file_uploads = On
upload_tmp_dir =/tmp
upload_max_filesize = 10M
postmax部分は
post_max_size = 10M
となってるのに、sumbitを押すとupload.phpの読み込みに失敗しましたと出ます。1M位のデータならPOSTで送れるんだけど、それ以上だとブラウザでエラーになります。
なんでですかー?
0879nobodyさん
04/05/14 16:29ID:???Apacheのエラーログでは
[Fri May 14 16:19:33 2004] [error] [client 192.168.1.10] Requested content-length of 711143 is larger than the configured limit of 524288,
referer: http://192.168.1.1/upload/upload.php
と出てる.... おぃ、ファイル制限が524KBってどーゆーことだー!
0880nobodyさん
04/05/14 16:34ID:???0882nobodyさん
04/05/14 16:38ID:???まず、phpinfo()のconfigure情報はそのphpが構築(コンパイルやらリンクやら)された時の情報。
つまり、今動かしているマシンとは全然関係がない。
phpをソースからインストールしようとするとconfigure時に必要なライブラリ等をチェックする。
この時オプションで指定したディレクトリ(あるいはデフォルトのディレクトリ)に
必要なライブラリ等が無いとエラーがでる。
>>875の言うように、bzip2関係を入れれば解決すると思うよ。
これは別にソースからじゃなくてもバイナリでいいんじゃないかな。
0883856
04/05/14 16:59ID:vu0WINSD<?
require("moe.ini");
$moe = new moe;
$sukisuki=$moe.AnimeList("all");
print $sukisuki;
?>
--結果表示--
ぽぽたん,ぴっちぴちピッチ,ぴちぴちピッチピュア,美鳥の日々,光と水のダフネ,花の魔法使いマリーベル,ガルフォース
0885nobodyさん
04/05/15 00:34ID:x/lO/LgB写真の加工をしたいのですが、PHPで明るさやコントラストを変える方法ってありませんか?
0887nobodyさん
04/05/15 00:57ID:x/lO/LgBimage_gainググってみたのですがヒットしませんでした。
image_contrastは英語のサイトがヒットしましたが、これを使えって意味でしょうか?
0888nobodyさん
04/05/15 01:26ID:???画像処理用の外部プログラムを使うのもありやね。
有名どころだとImageMagickでも明るさやコントラストを変更できる。
0889885
04/05/15 01:49ID:???>>888
ImageMagickですね。
今調べてみた所、解説ページも多そうだしよさげです。
どうもありがとうございます。
0890nobodyさん
04/05/15 02:15ID:???よいのでしょうか?
substr_count(file($file),"文字列")
とかやったりしてますがかなり見当違いな気がします...
0891nobodyさん
04/05/15 02:26ID:???int substr_count ( string haystrack, string needle)
array file ( string filename [, int use_include_path [, resource context]])
0893nobodyさん
04/05/15 05:10ID:???Array ( [100] => 25 [107] => 42 [109] => 15 [105] => 10 [send] => OK )
こういうのが返ってくるんですけどここから
配列$IDに100,107,109,105
配列$avに25,42,15,10
が入るようにするにはどうすればいいですか?
0894nobodyさん
04/05/15 05:16ID:???foreach($original_array as $key=>$value){ $id[] = $key; $av[] = $value; }
sendの処理は判断基準が書いてないので略。if文でなんとかしる
0895nobodyさん
04/05/15 05:19ID:???sendの処理はformです。
0896nobodyさん
04/05/15 05:20ID:???0897nobodyさん
04/05/15 05:29ID:???■ このスレッドは過去ログ倉庫に格納されています