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

【PHP】ID出さなくても質問OKなスレ【初心者歓迎】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/09/15(月) 18:41:32ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
0116nobodyさん2008/09/26(金) 17:01:03ID:???
少しは自分の頭も使ってくれ
0117nobodyさん2008/09/26(金) 17:06:55ID:???
>>115
かなりの初心者のようだな
>>114のソースだと、ボタンを押さなくても必ずファイルへ書き込んどる(textboxが空だからファイルも空)
せめてisset($_POST['textbox'])でもいいからボタンを押したことを判別して書き込みを行ってくれ
それと書き込みと読み込みを別けてくれ

<?php
$filepath = "777.txt";
if(isset($_POST['textbox'])){
$text = htmlspecialchars( $_POST["textbox"] );
if ( get_magic_quotes_gpc() ) {
$text = stripslashes( $text );
}
$string = "$text\n";
$fp = fopen($filepath, "w");
@fwrite( $fp, $string, strlen($string) );
fclose($fp);
}
readfile($filepath);
?>
0118nobodyさん2008/09/26(金) 18:44:58ID:???
そもそもやりたいことが意味不明
01191092008/09/26(金) 21:58:36ID:ri8qzJjD
>>117
ありがとう、できました
PHPを始めて一週間ぐらいの初心者です(;^_^
01201092008/09/26(金) 22:04:11ID:ri8qzJjD
>>117
ありがとう、できました
PHPを始めて一週間ぐらいの初心者です(;^_^
0121nobodyさん2008/09/26(金) 22:42:52ID:???
大事なことでなくても2回言ってしまうのはpc11のご機嫌が
あまりよろしくないかららしい
0122nobodyさん2008/09/27(土) 00:20:34ID:???
>>119
初心者なのは別にいいんだけど、そんなところで他人に頼ってちゃ1年たっても素人のままだよ?
0123nobodyさん2008/09/30(火) 06:38:16ID:???
if($aa){
    $bb==1;
else{
    $bb==2;
}
$bbの前は見やすいようにタブスペースで空けているのですが、
これが増えてくると実行速度に影響があるものなのでしょうか?
0124nobodyさん2008/09/30(火) 06:40:23ID:???
0.00000001秒くらい
0125age2008/10/02(木) 07:44:19ID:???
1タブで0.00000001秒なのでしょうか?
0126nobodyさん2008/10/02(木) 07:49:59ID:???
試してみれば?
0127nobodyさん2008/10/02(木) 15:18:12ID:???
タブ1個を気にするなら、Pythonでもやるべき
0128nobodyさん2008/10/02(木) 15:28:30ID:???
Pythonは3.0でガラッと変わるらしいので
二の足を踏んでいます。
0.00000001は嘘っぽいのでマジレス希望
0129nobodyさん2008/10/02(木) 16:17:22ID:???
じゃあマジレス

気 に す る な !
0130nobodyさん2008/10/02(木) 17:33:53ID:???
(「゚A゚)「 シャー
」  L
0131nobodyさん2008/10/02(木) 18:23:39ID:???
信じもしない、試しもしない、ってどんだけ糞質問者だよw 何秒なら信じるんだwww
0132nobodyさん2008/10/02(木) 21:06:37ID:???
PHPのバージョンやコンパイラやOSやキャッシュやCPU等で変わるのに、どれだけかかるかなど分かる訳がない
だから自分が試したのを信じておきゃいーんだよ
0133nobodyさん2008/10/02(木) 21:23:38ID:???
>>128
マジレスするとPGはやめたほうがいい
自分でできるのにやらないのは論外としても、自分で質問したくせに善意で答えてくれている回答者を
ないがしろにするようでは、この先君は誰からも助けられないし信用もされない。
0134nobodyさん2008/10/03(金) 03:13:22ID:???
マジレスすると、アセンブリ言語で組めばいいよ
そうすれば実行速度は最速になるよ
0135nobodyさん2008/10/03(金) 04:50:02ID:???
なぜタブの話からアセンブラの話になるんだ
0136nobodyさん2008/10/03(金) 07:38:57ID:???
>>132の言うとおりで、0.00000001秒という回答を善意ととっていいものかどうか疑問
0137nobodyさん2008/10/03(金) 09:28:54ID:???
0.00000001秒を真に受ける方がどうかしてる
タブ1つで目に見えるほどの違いは出ない、って言いたいんだろ
0138nobodyさん2008/10/03(金) 11:28:29ID:SBEKvvRO
質問です。
if(mb_ereg("^[カ-コ]",$k['kana'])) $title_arr[$e]['line']='か行';
この状態だと、濁点の入った文字が検索できません。
ガギグなども一致させるにはどうしたらいいですか?
0139nobodyさん2008/10/03(金) 12:15:20ID:???
if(mb_ereg("^[カ-コガ-ゴ]",$k['kana'])) $title_arr[$e]['line']='か行';
0140nobodyさん2008/10/03(金) 12:22:15ID:???
がぎぐげごをか行とは言わないんじゃね
0141nobodyさん2008/10/03(金) 12:28:12ID:???
>>139
ありがとうございます。試してみます。
>>140
そうですね。でもが行であまり探さないかなと思いまとめてみました。
0142nobodyさん2008/10/04(土) 12:11:31ID:55cVbMG1
PHPでWebカメラの映像を公開したいのですが
どうやったらいいですか?
0143nobodyさん2008/10/04(土) 17:01:03ID:???
PHPだけでは無理
0144nobodyさん2008/10/04(土) 17:55:04ID:???
別にできるじゃん?普通にファイルに落としてくれるなら
0145nobodyさん2008/10/04(土) 18:10:58ID:???
それだと今度はphpが要らんなw
01461422008/10/04(土) 19:22:48ID:MX1zq2pL
レスありがとうございます。
PHP以外に何があればできますか?
0147nobodyさん2008/10/04(土) 20:08:41ID:???
sageろぼけ
0148nobodyさん2008/10/05(日) 01:06:47ID:???
php以外に・・・ってその時点でスレチ
0149nobodyさん2008/10/05(日) 02:01:36ID:1oGdpaAI
クラスの関数を外部から使う時に
その関数を変数のように扱う というような方法はありますか?

$hoge->NoAdd(5); // ここで合計値を5増やす
みたいなものを
$hoge->NoAdd + 5; // ここで合計値を5増やす

privateをpublicに変える以外の手段で
このようなことをする方法はありますか?
0150nobodyさん2008/10/05(日) 06:54:12ID:???
はぃ?なぜ括弧付けたらだめなんだ?
0151nobodyさん2008/10/05(日) 08:01:08ID:???
アクセサでぐぐれ
Javaあたりのサイトを参考にしろ
間違ってもphpspotのは参考にするなよ
0152nobodyさん2008/10/05(日) 08:05:13ID:???
ああ、set/getのメソッド書くのが面倒なだけかw
0153nobodyさん2008/10/07(火) 04:19:26ID:???
質問です。
セキュリティー設定や、ユーザー登録設定を変更しようとすると、
Fatal error: Not able to open ./../cache/data_global.php in /usr/local/www/htdocs/unabbs/public_html/una/includes/acm/acm_file.php on line 106
が出てしまい設定が変更出来ません。
何が原因なのでしょうか・・・?

よろしくお願いします。
0154nobodyさん2008/10/07(火) 04:33:27ID:???
何のセキュリティー設定だ?
置き場所とパーミッション確認
0155nobodyさん2008/10/07(火) 04:43:33ID:???
>>154
すみません、それはAdminCPの何処で確認出来るのでしょうか・・・。
0156nobodyさん2008/10/07(火) 11:05:12ID:???
FTP使ってないの?
0157nobodyさん2008/10/10(金) 21:07:41ID:+u7JVASC
mb_convert_encodingがundefined functionになってしまうレンサバを使ってるのですが、
mb_convert_encoding以外になんとか文字コードを変換する方法ってないでしょうか?
0158nobodyさん2008/10/10(金) 21:15:38ID:???
jcode.phpってのがある。
最新版が2004年だからどのぐらい使えるかはわからないが
http://www.spencernetwork.org/jcode/
0159nobodyさん2008/10/15(水) 21:46:27ID:bTHYoPaC
質問です。
例:
ああああ。
いいいいいいいいい。
ううう。
上記の複数行の文字列を一行にしたいのですが、
いい方法はないです?
フォームのtextareaでコピペしてPOSTした場合にデータベースには
改行した状態で挿入されてしまいます。
0160nobodyさん2008/10/15(水) 22:14:27ID:???
改行した状態で挿入されて何か不都合が?
0161nobodyさん2008/10/15(水) 23:04:07ID:???
phpの話じゃなくてtextarea自体に改行を反映させるかどうかのオプションがあったようななかったような
0162nobodyさん2008/10/16(木) 01:55:17ID:???
ブラウザの対応にもよるからサーバサイドで処理した方がいいな
単に\rと\nを除去するだけだし
0163nobodyさん2008/10/16(木) 10:49:23ID:???
>>160
他のアプリケーションでデータを表示する際に、下手に改行が入ります。
>>161
warpのプロパティを指定しましたが効果はありませんせした。
>>162
ご指摘の通りデータを参照する際にtrimする方法で試してみます。
0164nobodyさん2008/10/16(木) 11:16:22ID:???
>>163
trimじゃ一行にはならないからstr_replaceでやったら?
0165nobodyさん2008/10/16(木) 12:10:31ID:???
>>164
str_replaceはもちろん使った事はありますが、
今回の場合どのように使うのかご教授お願いします。
0166nobodyさん2008/10/16(木) 12:14:23ID:???
>>165
使ったことあるなら分かるはずだが
$text // textareaの内容
$text = str_replace("\r", '', $text);
$text = str_replace("\n", '', $text);

\rと\nを空白に置き換えれば複数行が一行になる
文字が詰まるのがイヤなら、スペースとかに置き換えればいい
0167nobodyさん2008/10/16(木) 12:33:46ID:???
>>166
なるほどありがとうござます。
試してみます。データベースに入っているものには、
改行コードが付いているんですね。
0168nobodyさん2008/10/16(木) 18:29:44ID:???
いや消しちゃったら表示する際に元に戻せないじゃん
いらないんならいいけどそしたらフォーム関係ない
0169nobodyさん2008/10/16(木) 20:57:21ID:???
DBに入れるときに別のものに置き換え、表示するときに戻せばいいじゃないですか。
0170nobodyさん2008/10/16(木) 21:00:01ID:???
なぜ置き換える必要があるのですか。
0171nobodyさん2008/10/16(木) 22:09:25ID:???
改行コード←→<BR>
0172nobodyさん2008/10/18(土) 22:48:07ID:???
PEARって企業で普通に使われているんですか?
0173nobodyさん2008/10/18(土) 23:16:00ID:???
企業による
0174nobodyさん2008/10/19(日) 00:34:14ID:???
状況による
少なくとも企業でも使える完成度
0175nobodyさん2008/10/20(月) 14:37:43ID:???
完成度にもよるが企業内にある
完全独自FWとかライブラリより使えると思うぞ
0176nobodyさん2008/11/01(土) 03:48:07ID:???
質問したいのですが、どなたか居られますでしょうか?
0177nobodyさん2008/11/01(土) 11:23:39ID:???
潜んでるぜ
0178nobodyさん2008/11/01(土) 14:31:49ID:???
あ、すいません。ここで質問しました。
http://pc11.2ch.net/test/read.cgi/php/1219842559/
502が私です。あまり私一人が独占するのもどうかと思ったのですが…。
どうしましょうか、こちらに移動したほうが宜しいでしょうか?
0179nobodyさん2008/11/01(土) 15:18:30ID:???
それなりにレス出てるからそっちで続けて
0180nobodyさん2008/11/02(日) 18:42:00ID:0XM0D6GF
すんごい初心者の質問ですいませんが
eclipseにプラグインできるsmartyのtplファイルを記述する
エディタはありますか
あるとすればオススメはどれでしょうか?
smartyEditorというののjarファイルをeclipseのpluguinsフォルダに入れて
コマンドプロンプトからeclipse.exe -cleanを実行したのですがコードの色が変わりません
0181nobodyさん2008/11/04(火) 12:40:57ID:???
>>180
Eclipseのバージョンとか書かないとわからん
phpeclipseは確かできたと思うが
どこまで出来たかは忘れた
0182nobodyさん2008/11/10(月) 20:00:01ID:???

           ,-‐-、      ,.-‐-、
              \_, ,_/
 カサカサ...    /〓癶( ;:゚;〓;゚;)癶
       ー=癶(癶( 癶;;:;;ノ癶     カサカサ...
0183nobodyさん2008/11/11(火) 17:39:13ID:???
PHP4環境では問題無く使えてた画像掲示板が
PHP5環境にすると画像表示しなくなり、投稿もできなくなりました。
レッツPHPの画像掲示板なんですけど。
0184nobodyさん2008/11/11(火) 17:43:05ID:???
それはお困りですね
0185nobodyさん2008/11/11(火) 17:59:06ID:???
おそらく原因はPHP4環境だったものがPHP5環境になったからではないでしょうか?
解決してよかったですね
0186nobodyさん2008/11/11(火) 23:42:25ID:???
ひでぇw

まぁどちらにせよレッツPHPさんに対応してよと言うか
自分で改造するか

ウノウラボにphp4から5へスクリプトを移行させるツールがあったと思うが
レッツPHPの場合スクリプトが3ベースで4に対応させたって場合もあるから微妙
0187nobodyさん2008/11/17(月) 00:03:25ID:???
今PHPはじめました。
まずはデバッグプリントできるようにしようと思い、

<?php

echo(error_log("test"));

?>

こんなソースを書いてみました。

php.iniは、
log_errors = On
error_log = "C:\Program Files\PHP\error.log"

こうなってるのですが、どこにも吐かれてないみたいです。
echoの返り値は1なので、正常にログ吐けてるはずなのですが・・・。

あと何が足りないのでしょうか?
鯖はIISでCGIじゃなくてISAPIです。
0188nobodyさん2008/11/17(月) 00:18:54ID:???
>>187
よくわからないけどエラーを発生させないと記録されないんじゃ?
01891872008/11/17(月) 01:00:17ID:???
>>188
それが、どうもerror_log()はエラーの有無関係なく
ログ出力する関数らしいんです。

syslogだとイベントビューワに吐かれるらしいのですが、
できればテキストに落としたいんですよね。
こんなところで躓くとはorz
0190nobodyさん2008/11/17(月) 01:04:08ID:???
>>187
第2引数で3を指定して第3引数でファイル名を指定すると
そのファイル名に記録されるみたいだけど
http://jp.php.net/manual/ja/function.error-log.php
0191nobodyさん2008/11/17(月) 06:54:13ID:???
はまった

$arr = array(1,2,3,4);
foreach ($arr as &$value) {
if ($value == '3') { unset($value); }
}

としても値3を持つ配列の要素が削除されることはないんだなorz
noticeもwarningも出ないから、深いループの中をさまよいながら朝を迎えた
俺のニータイムを返せ〜
0192nobodyさん2008/11/17(月) 08:09:45ID:???
初心者的な質問ですいません
メソッド内で定義した変数を別メソッドに呼び出すにはどうしたらいいのでしょうか?
0193nobodyさん2008/11/17(月) 09:06:21ID:???
>>192
オブジェクト指向ははじめてですか?
0194nobodyさん2008/11/17(月) 09:08:43ID:???
>>187
表示したいならvar_dump
ログにはきたいならerror_log(var_export(内容,true),3,出力先);

>>192
function hoge() {
  global $hoge;
  $hoge += 1;
  return $hoge;
}
$hoge = 1;
var_dump($hoge,hoge(),$hoge);

こんな感じでglobal使えば出来るがお勧めしない
class等の概念を覚える良い機会だと勝手に思うので調べてみては
0195nobodyさん2008/11/17(月) 09:19:51ID:???
globalって・・・
0196nobodyさん2008/11/17(月) 09:37:11ID:???
>>195
メソッド内で定義した変数を別の方法で取得する方法ってあんの?
0197nobodyさん2008/11/17(月) 09:46:27ID:???
いろんなメソッドで参照するようなやつはメンバ変数にするのが普通です
0198nobodyさん2008/11/17(月) 09:53:44ID:???
>>197
それはクラスにした場合だろ?
まぁクラスにした場合でも
メソッド内で定義した変数をどうやって取得するんだよ
0199nobodyさん2008/11/17(月) 10:01:09ID:???
>>192は『メソッド』といってるわけだが・・・
関数とメソッドは厳密に言うと別物ですよ

class Hoge {
private $a = null;
public function setA($a) {
$this->a = $a;
}
public function getA() {
return $this->a;
}
}

$obj = new Hoge();
echo $obj->getA();
$obj->set("hoge");
echo $obj->getA();
0200nobodyさん2008/11/17(月) 10:13:42ID:???
>>199
それはメンバ変数に対するgetterを定義してるだけだろ?
class A {
 function test() {
  $hoge = 'a';
 }
}
このクラスA::test()内の$hogeを取得してみろよ
簡単に言うと質問に対する答えが違うんだよ

本来のメソッドの定義というのはクラスに対するメンバ関数等のことを言うが
初歩的な質問でと言ってる時点でメンバ関数とは考え難いわけだが?
0201nobodyさん2008/11/17(月) 11:04:11ID:???
>>200
別に答えが違ってないでしょう・・・
質問者は
>メソッド内で定義した変数を別メソッドに呼び出すにはどうしたらいいのでしょうか?
と聞いてるわけで
意訳するとメソッドAの変数hogeをメソッドBで呼び出したいということですよ
つまり同一クラスの場合メソッドAの変数hogeをメンバ変数に持ってきて
Bも同じメンバ変数を参照すればいいだけですし
別クラスのメソッドの場合でもgetterを用意しとけばそこから取得できるという話です
0202nobodyさん2008/11/17(月) 11:21:07ID:???
>>201
その意訳はあなたの持ってる常識の上での訳だよな?
質問者が何を意図してるかはあの質問では
正確な質問内容は俺にも解らないしあなたにも解らないと思うんだが?
0203nobodyさん2008/11/17(月) 11:40:43ID:???
解らないのなら答えが違うなんてよく大口叩けるなぁw
0204nobodyさん2008/11/17(月) 11:43:37ID:???
>>203
今出てる情報は
メソッド内で定義した変数を別メソッドに呼び出す
という事だけだぞ
この事と言ってる事は違うんだから答えは違うと思うが?
0205nobodyさん2008/11/17(月) 11:51:43ID:???
悪いけどもうめんどくさいんでレスしません
答えも違うということでいいので忘れて下さい
0206nobodyさん2008/11/17(月) 12:25:32ID:???
globalかメンバ変数使えで合ってるじゃない
それかReflector
0207nobodyさん2008/11/17(月) 16:45:27ID:???
preg_match_all("/<dt>(.*)/", $a, $b);
『"/<dt>(.*)/"』この部分の説明をどなたかお願いします。
0208nobodyさん2008/11/17(月) 16:57:41ID:???
<dt>から改行まで全てマッチさせる
aaa<dt>abc
の場合はabc
<dt>aaa
sss
の場合はaaa
<dt>
の場合は空
02092072008/11/17(月) 17:02:32ID:???
>>208
有り難うございます。ということは、『/』これが改行に相当するのですか?
0210nobodyさん2008/11/17(月) 17:13:18ID:???
あんた、ID出す方の63?
02112072008/11/17(月) 17:36:48ID:???
>>208
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm
>. 改行を除く任意の 1 文字
つか、こうなってますね。 どうもでした。
0212nobodyさん2008/11/17(月) 19:57:03ID:???
とうとう隠して質問するようになったか
02131872008/11/18(火) 01:28:17ID:???
error_logが書けないといっていた者です。
無事出力できるようになったので、ご報告します。

環境はXP Professional + IIS(ISAPI)です。
結局は、ディレクトリに書き込み権限がないだけでした。

デフォルトだと、ユーザ毎に権限付与するセキュリティタブが
ディレクトリのプロパティに表示されないので、
ツール→フォルダオプション→表示で、
「簡易ファイルの共有を使用する」というチェックをはずします。

その後、ログを出力したいディレクトリで、インターネットユーザの
書き込み権限を加えてやります。(IUSR_で始まるユーザ)

あとは、PHP.iniに、
log_errors = On
error_log= "C:\\path\\to\\logfile"
こんな感じでログを出したいディレクトリを指定します。

すると、
error_log("test log");
と書くだけで、指定のログファイルに日時つきでログが書き込めます。

長くなりましたが、色々教えてくださった皆さん、どうもありがとうございました。
またお世話になるかもしれませんが、どうぞよろしくお願いします。
0214nobodyさん2008/11/20(木) 12:32:32ID:???
たくさんつまってる配列があって
$abc[AAA][0]〜$abc[AAA][1000]
$abc[BBB][0]〜$abc[BBB][1000]
$abc[CCC][0]〜$abc[CCC][1000]

$abc[BBB][18]を複数箇所で使いたい場合
$XXX=$abc[BBB][18];
のように一度定義した方がいいのでしょうか?
それとも$abc[BBB][18]をそのまま何度も
使う方がいいのでしょうか?
0215nobodyさん2008/11/20(木) 13:14:15ID:???
保守性可読性以外は同じ
■ このスレッドは過去ログ倉庫に格納されています