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

【PHP】下らねぇ質問はID出して書き込みやがれ 97

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/07/23(金) 06:24:51ID:3G71fl8i
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。


【PHP】下らねぇ質問はID出して書き込みやがれ 96
http://pc11.2ch.net/test/read.cgi/php/1275032024/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0618nobodyさん2010/09/10(金) 20:24:26ID:???
表の裏の裏は表という事です
まぁ結果はboolでの判断になるわけだが

そんな変数チェックしてる馬鹿なソースは参考にはするなよ
0619nobodyさん2010/09/10(金) 20:47:12ID:???
>>617
2とか入ったら真にならない(多分
0620nobodyさん2010/09/10(金) 21:27:31ID:???
多分w自信無いなら試してから書けよ

$value = 2;
if (!$value) {echo "通ったよ";}

上記の場合2が代入された変数に
!をつけても通らんだろ?
この場合「通ったよ」が表示されるのは
0,"",要素数0の配列,未定義変数の場合等だ

因みに-1でも「通ったよ」は表示されない


で、質問の場合はさらにその反転
上記の否定演算での結果が逆になるだけだから表に戻る
0621nobodyさん2010/09/10(金) 23:51:20ID:fuaKxKw9
超初心者なのでくだらない質問して恐縮なんですが
文字列”aaaa30%aaaaaa”このように文字 数字% 文字というパターンの文字列の中から
数字だけを取得する方法ってどうやればいいんでしょうか?
0622nobodyさん2010/09/11(土) 02:14:40ID:???
preg_match
\d+%
0623nobodyさん2010/09/11(土) 11:18:02ID:???
preg_matchは使っちゃダメ
0624nobodyさん2010/09/11(土) 11:59:57ID:???
PHPって使っちゃダメなもの多いよね
0625nobodyさん2010/09/11(土) 12:05:17ID:???
preg_matchってなんでつかうのだめなの?
0626nobodyさん2010/09/11(土) 15:30:02ID:???
使っていいでしょ
誰がそんな迷信ながしてるの?
0627nobodyさん2010/09/11(土) 17:07:51ID:???
自演乙
0628nobodyさん2010/09/11(土) 18:17:38ID:???
使っていいトコと使ったらダメな所があるでしょ
それを分かった上で使うのなら問題はない
0629nobodyさん2010/09/11(土) 20:55:18ID:GYi1r8TU
WindowsでもLinux(Ubuntu)でも使える便利なPHPエディタって、
NetBeansとAptana以外に何か良いものはないでしょうか。
0630nobodyさん2010/09/11(土) 21:00:27ID:???
良いエディタと言われても人それぞれなので、
どんな機能を欲しているのか、あるいは開発の背景などを言わないとアドバイスできない。

個人的には、vimが大好きだが無難なのはeclipse
有名どころじゃないPHP専用エディタもいくつかあるけどその類はあまりオススメしない。
0631nobodyさん2010/09/11(土) 21:16:32ID:???
秀丸最強
0632nobodyさん2010/09/11(土) 21:37:01ID:???
PDT2ってどうなん?
これってEclipseのプラグインだよね?
0633nobodyさん2010/09/11(土) 22:34:19ID:GYi1r8TU
>>630
すみません。欲しい機能はNetBeansやAptanaと同等の機能です。

まずAptanaのスタンドアロン版を使ってみましたが、
Eclipseのプラグイン版よりは軽いものの
NetBeansのほうがもっと軽いことがわかりました。

でも、Windows XPだと操作するたびに苦しそうにファンが激しく回転します。
(同程度のスペックのマシンでUbuntu上で動かしても問題ないのですが…)

PCへの負荷が少なくてNetBeansに近い便利さのものがあれば教えてください!
0634nobodyさん2010/09/12(日) 16:30:02ID:???
俺はメモ帳で余裕
0635nobodyさん2010/09/12(日) 16:33:21ID:???
すごいね
ぱちぱちぱち
0636nobodyさん2010/09/12(日) 17:41:37ID:???
男は黙ってxyzzy
0637nobodyさん2010/09/12(日) 18:10:23ID:???
PHPエディタ
0638nobodyさん2010/09/12(日) 18:42:26ID:???
vim or eclipse or emeditor
0639nobodyさん2010/09/12(日) 18:51:24ID:hAWvhX9i
【OS名】 CentOS
【PHPのバージョン】 5.3
【連携ソフトウェア】
【質問内容】

A.php の中に記述されたリンク

<a href="B.php">リンク</a>

から B.php を呼び出します。

呼び出された B.php 側で、自分のことを呼び出したA.phpのフルパスをセッションを使わずして取得する
ことは可能でしょうか?
0640nobodyさん2010/09/12(日) 19:04:06ID:???
>>639
やるとすればリファラ使えばできる
0641nobodyさん2010/09/12(日) 19:18:54ID:hAWvhX9i
>>640
> やるとすればリファラ使えばできる

リファラはたしかノートンとか使っていると正常に取得できなかったりしますよね?
0642nobodyさん2010/09/12(日) 19:44:10ID:???
そういう条件をつけていくなら
B.php?ref=Aとかこんな感じでするぐらいしか無いよ
0643nobodyさん2010/09/12(日) 21:22:27ID:hAWvhX9i
ありがとうございました。
素直にセッション使いまつ
0644nobodyさん2010/09/12(日) 21:34:04ID:???
セッションでもクッキーの受け入れ拒否してたら
URLへの埋め込みになるから
セッションID消してアクセスすれば取れないよ
0645nobodyさん2010/09/12(日) 21:44:13ID:???
横槍だけど
start_session()でセッション使って値保持するのと
setcookie()でクッキー使って値保持するのって
どう使い分けるべきなのかな?

セキュリティを考えて常にstart_session使うべき?
0646nobodyさん2010/09/12(日) 22:47:40ID:hAWvhX9i
>>644
え、そうなんですかorz・・・

>>639の A.php というのは日記を記述するページ、 B.php というのは写真とそのEXIF情報を表示するための
ページだったりします。日記の A.php と写真の 0001.jpg は同一フォルダにあります。

<a href="B.php?shashin=0001.jpg">リンク</a>

みたいな感じでどの写真を表示させるかは B.php に渡すことが出来るんですが
肝心の写真のフルパス情報をどうやって渡して良いか悩んでいるわけです。
他の日記はまた別のフォルダに保存していたりするので。

セッションを使えば A.php のフルパス情報を B.phpに渡すこともできますが
セッションの受け入れを拒否している人がいるとこの方法でもダメですよね・・・
0647nobodyさん2010/09/12(日) 22:58:34ID:???
shashinにフルパスつければよくね?
0648nobodyさん2010/09/13(月) 10:23:43ID:qMibvBR2
php5.3でphp_xdebugによるデバッグが上手くいきません

zend_extension_tsとextension
xdebugの各種設定をしているのですがphpinfo()でxdebugがみあたらないのです

5.2だと上手くいくのですが何か見落としてる箇所はありますか?
0649nobodyさん2010/09/13(月) 14:13:02ID:/s7P18Wx
PHPで、カッコの中にデータを表示させようとしても表示されません。
$html = file_get_html('echo $product');
上記のような場合でもカッコの中にデータを表示させる方法はありますでしょうか?
0650nobodyさん2010/09/13(月) 14:22:35ID:???
$productの中に何が入ってるのか知らんが、
$html = file_get_html($product);
こうじゃダメなのか?
0651nobodyさん2010/09/13(月) 14:31:26ID:/s7P18Wx
以下の記述をすると
$html = file_get_html($product);
このようなエラーメッセージが出ます。
Parse error: syntax error, unexpected T_ECHO, expecting ')'


コレだけの記述だと正常にデータを表示します。
echo $product;

zencartを使用
0652nobodyさん2010/09/13(月) 14:38:43ID:???
こうだろ
$html = str_get_html($product);

file_get_htmlは引数をURLに取るんじゃないのか?
PHP Simple HTML DOM Parserの話だよね?
0653nobodyさん2010/09/13(月) 14:59:31ID:/s7P18Wx
ありがとさーん。
0654nobodyさん2010/09/13(月) 19:25:48ID:Lm2I1b13
>>647
> shashinにフルパスつければよくね?

それも一つの解決方法なんですが写真の数が多いため全てのフルパスを付けるのは
面倒なこと、将来サーバーを乗り換えたときにフルパスだとディレクトリ名が変更になった場合
全て修正する必要性がでてくるためできればフルパスは含めない方法を探していたわけです。

余談ですがクッキーの受け入れを拒否している端末でも
PUTやGETでA.phpのフルパスをB.phpに渡すことって出来ないですかね・・・
0655nobodyさん2010/09/13(月) 19:49:04ID:???
>>648
Xdebug Documentation - Install
http://xdebug.org/docs/install
より引用

-----
From PHP 5.3 onwards, you always need to use zend_extension and not zend_extension_ts.
-----
0656nobodyさん2010/09/13(月) 21:43:55ID:???
>>654
http://jp2.php.net/manual/ja/function.output-add-rewrite-var.php
これ使えばいい
0657nobodyさん2010/09/13(月) 22:12:39ID:Lm2I1b13
>>656
> http://jp2.php.net/manual/ja/function.output-add-rewrite-var.php
> これ使えばいい

ありがとうございます。
まだ簡単に調べた段階ですが、

output_add_rewrite_var('var', 'value');

関数は画像リンクに限らずページ内に存在するありとあらゆるリンクの最後に ?<var>=<value> を
付与してしまうとのことです。※リンクだけでなくフォームにも勝手に追加しちゃう?!

自分のサイトに訪問してくれた方が画像リンク以外のリンクをクリックしてもURLの最後に意味不明な
?<var>=<value> が付くことになるわけですが混乱したり不快に思ったりしないでしょうか(^-^;)?

あと余談ですが訪問者のブラウザ設定でcookieの売れ入れの有無にかかわらずこの関数は
有効に機能すると考えて差し支えないでしょうか?
0658nobodyさん2010/09/14(火) 11:56:30ID:v/2zN57l
フルパスを渡すってサイトトップからのパスではなく
サーバのTOPからのパス?

なぜそれを渡さなければならないかがわからない。
サーバのTOPからのサイトトップのパスを共通定義にでもしておいて
それ使ってプログラム書けば、
サーバ移転した時もその一行書き換えればいいんじゃないの?
0659nobodyさん2010/09/14(火) 14:23:01ID:???
クラスについての質問ありませんか?
0660nobodyさん2010/09/14(火) 14:43:54ID:wQYT6X6V
どういう時にクラスを使うべきですか?
自作関数をincludeするのとどこが違うのでしょうか?
0661nobodyさん2010/09/14(火) 14:44:44ID:???
くらすってなんですか?
0662nobodyさん2010/09/14(火) 15:11:22ID:???
>>660
・コードの保守が楽になります
・複数人での分担作業が楽になります
・データとロジックを分けることができます

class Keisan
{
public function tashizan($a, $b){
return $a + $b;
}

$keisan = new Keisan();
echo $keisan->tashizan($a, $b);
0663nobodyさん2010/09/14(火) 15:12:15ID:???
こういう風に書くこともできます

class Keisan
{
public static function tashizan($a, $b){
return $a + $b;
}

echo Keisan::tashizan($a, $b);
0664nobodyさん2010/09/14(火) 15:12:56ID:???
class Keisan
{
public function tashizan($a, $b){
return $a + $b;
}

$keisan = new Keisan();
echo $keisan->tashizan(5, 10);
0665nobodyさん2010/09/14(火) 16:12:27ID:???
単純な例出しても、
「え?なんでそんな面倒なことしなきゃいけないの?」ってなるだけだからなぁ
0666nobodyさん2010/09/14(火) 16:16:48ID:???
クラスの書き方と使い方を覚えても
オブジェクト指向がなんたるかを理解してないと
不思議なコードになるから理解できてないうちは使わんほうがいいよ
0667nobodyさん2010/09/14(火) 17:05:17ID:???
■data.php
$a=1;
$b=4;

■keisan.php
class Keisan
{
public static function tashizan($a, $b){
return $a + $b;
}

■program.php
include "data.php";
include "keisan.php";
echo Keisan::tashizan($a, $b);
0668nobodyさん2010/09/14(火) 17:20:33ID:???
何の意味もない例でした
0669nobodyさん2010/09/14(火) 19:01:21ID:???
class BBSWrite {
}

class BBSRead {
}

class 2ch {
 function write(){};
 function read(){};
}

とかクラス設計がいまいち分からないね
0670EM114-48-11-217.pool.e-mobile.ne.jp2010/09/14(火) 19:04:32ID:vtvQ2dJO
数ヶ月ぶりに規制解除されたことだしここのksユーザー共の偏差値を上げる為に俺も人肌脱いでやるか
0671nobodyさん2010/09/14(火) 19:06:30ID:???
また荒らす気かよ…
0672nobodyさん2010/09/14(火) 19:07:36ID:???
すぐ規制されていなくなるからスルーでおk
0673nobodyさん2010/09/14(火) 19:42:05ID:???
たぶん君らのレスも無駄だし不要かもしれないよね
0674nobodyさん2010/09/14(火) 19:46:42ID:J3MSx4E4
test
0675nobodyさん2010/09/14(火) 20:29:38ID:???
>>669
俺も俺も。その構造は大体理解できるんだけど
それからどうやって使うのかがいまいちわからないね
インクルードで呼び出すと思うんだけどさ。
複数あると混乱するよね
0676nobodyさん2010/09/14(火) 20:38:31ID:???
>>669
とりあえずオレならそんな設計にしないことは確かだ
0677nobodyさん2010/09/14(火) 20:42:29ID:???
とりあえずファイル一つにつき1クラスだな
判りやすいから
フレームワークの構造考えたらどう使えばいいかわかるんでないかい
0678nobodyさん2010/09/14(火) 20:50:01ID:lx9NhRJD
次スレ誘導

【PHP】下らねぇ質問はここに書き込みやがれ 98
http://pc5.2ch.net/test/read.cgi/php/1099322141/
0679nobodyさん2010/09/14(火) 20:59:57ID:???
わかりました。勉強にもなりますのでぐぐってみます。
0680nobodyさん2010/09/14(火) 21:09:55ID:???
それだが、実際に組んでベンチ取るとかしてみた方がいいみたいだぞ?
環境にも左右されるし一概に全部の環境に当てはまるとは言い切れないし
0681nobodyさん2010/09/14(火) 21:32:29ID:???
ですよね。
きっと誰かが実装したと思うので、
それを活用したいな、と。
06826462010/09/14(火) 21:42:10ID:xcl5dZPT
>>658
多数の画像リンクを全てサイトトップからのパスで記述するのは労力的にも厳しいです。
その労力を軽減するのがプログラムの役割だと思うのですが現在のPHPだと厳しそうですね・・・
0683nobodyさん2010/09/14(火) 22:03:49ID:???
$_FILEでアップロードされたファイルを取得して
クライアント側からアクセスできるパスに保存してそのパスを返せばいいんじゃね?
0684nobodyさん2010/09/14(火) 22:16:02ID:???
B.phpを同じ階層に置けばいいのでは?
0685nobodyさん2010/09/14(火) 22:17:56ID:???
>>642
なるほど。
06866462010/09/14(火) 22:19:59ID:xcl5dZPT
>>683
日記に付随する画像ファイルは日記と一緒にアップロードしたきりです。

>>684
日記(B.php)は日記毎に違うフォルダに格納してたりします・・・
06876462010/09/14(火) 22:34:20ID:xcl5dZPT
余談ですが>>656さんが紹介してくださった

output_add_rewrite_var('var', 'value');

という関数。これはURLに'var'と'value'の組を付与するという形で別ページのPHPスクリプトに
変数を渡すことを実現しています。あとは受け手のPHPスクリプトの中でGET['var']を指定すれば
'value'の値を入手することが出来る仕組みです。

output_add_rewrite_var() 関数はページ内のありとあらゆるリンクに'var'と'value'の組み合わせを付与
してしまいます。そこでGETの代わりにPUTで変数の値を受けることが出来る関数というのは無いでしょうか?
それがあればリンクを(見かけ上)汚さずに変数の組を別ページに渡すことができるようになるはずです。
0688nobodyさん2010/09/14(火) 22:49:23ID:???
>>686
記事ごとにB.phpを作って新しいフォルダに入れてるんですか?
そういう作りはそもそも避けるべきかと。
0689nobodyさん2010/09/14(火) 22:52:22ID:???
>>686
そういうときこそクラスで管理する癖をつけたほうがよい
06906462010/09/14(火) 23:00:51ID:xcl5dZPT
>>689
クラス・・・ですか
クラスで管理すると別ページに変数セットを渡したりすることができるようになるんでしょうか?
0691nobodyさん2010/09/14(火) 23:05:06ID:???
yes
0692nobodyさん2010/09/14(火) 23:15:51ID:???
>>690

class Sample
{
public $number = 1;

public function view()
{
return "ナンバーは". $this->number. "ですね!";
}

}

$obj = new Sample();
echo $obj->$number;
echo "\n";
$obj->$number = 1000;
echo $obj->view();
0693nobodyさん2010/09/14(火) 23:19:46ID:???
訂正

class Sample
{
public $number = 1;

public function view()
{
return "ナンバーは". $this->number. "ですね!";
}

}

$obj = new Sample();
echo $obj->number;
echo "\n";
$obj->number = 1000;
echo $obj->view();
0694EM111-188-77-232.pool.e-mobile.ne.jp2010/09/14(火) 23:21:21ID:o4piNMzk
692=693=名前欄参照
0695nobodyさん2010/09/14(火) 23:25:01ID:???
>>691
>>690の言ってる意味合いから言えば無理だろw
0696nobodyさん2010/09/14(火) 23:39:01ID:???
PHP5神過ぎるな
0697nobodyさん2010/09/14(火) 23:41:51ID:???
>>646
リファラとかCOOKIE使えない奴はエラーページじゃだめなの?
それがずっと疑問だったんだ
0698nobodyさん2010/09/14(火) 23:50:44ID:???
それじゃ訪問者いなくなるぞ
0699nobodyさん2010/09/15(水) 00:03:31ID:???
ブックマークできないな
0700nobodyさん2010/09/15(水) 00:04:25ID:???
これって何か問題があって出来なくなってるの?
多重継承使えば同じ事できるけど、コードが冗長になるのが気に入らない。。。
0701nobodyさん2010/09/15(水) 00:08:54ID:???
>>700
何の話?
0702nobodyさん2010/09/15(水) 00:10:03ID:???
>>700
PHPはオブジェクト指向言語じゃないけど、
多重継承なんか使わなくても問題ない。
0703nobodyさん2010/09/15(水) 00:13:47ID:???
条件
COOKIE、リファラ使えなくても表示したい
渡されるパラメータ改変されてアクセスされても表示したい

こういう謎な状態
0704nobodyさん2010/09/15(水) 00:19:15ID:???
今夜はクラスきちがいが沸いてるのか・・
07057032010/09/15(水) 00:20:59ID:???
自己解決しました。
0706nobodyさん2010/09/15(水) 00:22:57ID:???
なぜ質問でもないのに勝手に閉じられるw
状況説明してやってるだけだろks
07077032010/09/15(水) 00:37:24ID:???
ごめんなさいozr
0708nobodyさん2010/09/15(水) 08:29:41ID:1uGBmNKk
IEやchromeでセッションが保存されない問題ではまっております。
firefoxだと問題なく動きます。

ドメイン名にアンダーバーはないので、ドメイン名が原因ではなさそうです。

開発環境はcakePHPなのですが、なにか原因となりそうな部分、
もしくはやってみたらよさそうなことなどないでしょうか?

どうぞよろしくお願いします。
0709nobodyさん2010/09/15(水) 09:53:51ID:???
cookieの中身をwatchする
0710nobodyさん2010/09/15(水) 10:03:55ID:???
今時cakephp(笑い)
0711nobodyさん2010/09/15(水) 10:29:37ID:???
それを言い出すといまどきPHP(笑)なわけだが
0712nobodyさん2010/09/15(水) 10:30:00ID:???
そういうのはやめようや
0713nobodyさん2010/09/15(水) 10:35:26ID:???
とりあえずwiresharkかなんかで通信のぞいて、cookie関係のヘッダの
やりとりを観察してみたらどうだ?
0714nobodyさん2010/09/15(水) 10:39:25ID:???
そこ突っ込むといまだからPHPだろう
いまどきPerl,使うのはオッサンぐらい
Rubyは好き物が使ってるだけ
Pythonは元々CGIを行うために生まれたものじゃないし
0715nobodyさん2010/09/15(水) 11:28:53ID:???
>>714
他言語を貶すような事は書かないでくれ

perlがオッサンというのはちょっとずれてる
YAPCもPHPカンファレンスも年齢層は変わらない。

perlの方が日本発の携帯向けのフレームワークも多いし
今でも主流の一つ。

greeはPHP(藤本さんにはお世話になりました)
mixi・DeNAはperl

案件数ではLLの中ではPHPが一番多い
0716nobodyさん2010/09/15(水) 11:32:31ID:???
零細企業ならともかくいつまでもPHP使ったシステムのままってのはどうなんだ・・・
greeも儲かってんだからさっさとシステムを改修したほうがいい
そのうち積むぞ
0717nobodyさん2010/09/15(水) 11:34:51ID:???
よかったら積む理由を教えてくれないか
時代遅れだけは簡便な
■ このスレッドは過去ログ倉庫に格納されています