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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん05/01/09 06:01:24ID:tJkdKk+e

お前の下らない質問に回答があるかも知れないスレッドです。
0229nobodyさん05/01/13 20:51:18ID:???
>>224
Webサーバのルートとファイルシステムのルートの違いもわからんのか?
0230nobodyさん05/01/13 21:25:01ID:eW3QGjHb
eAccelerator使ってる人いますか?
使用感(速度・安定性)はどうでしょう
0231nobodyさん05/01/13 21:28:01ID:mcYFj/Gd
PHP5+SimpleXMLについての質問です。
[test.xml]
<?xml・・・?>
<aaa file="c:\hoge">
 ・
 ・
 ・
</aaa>

[スクリプト]
$xml = simplexml_load_file('test.xml');
$attr = $xml->attributes();
foreach($attr as $key=>$var)
{
echo "$key -> $var\n";
}

・・・と、こんな感じでXMLを読み込んでfileの属性値を取得しています。
その属性値を表示してみると\記号以降が文字化けしてしまうのですが、
どうやって解消すればよいのでしょうか?
0232nobodyさん05/01/13 22:05:41ID:???
>>231
マルチバイトの文字がエンティティ化されてるだけじゃないの?
もともとtext.xmlのどういう文字がどう化けるの?
023323105/01/13 22:46:01ID:mcYFj/Gd
>>232
>マルチバイトの文字がエンティティ化されてるだけじゃないの?
すみません、知識不足の為この部分がよくわからないのですが、
文字化けとエンティティ化というのはどのように関係してくるのでしょうか?


実際に発生している文字化けは上記の例だと「c:\hoge」が「c:ツ・hoge」となります。
どうやら「\」が 0xc2a5 という値に置き換わっているようなので
今のところ、上記コードのforeach内部で
str_replace(chr(0xc2).chr(0xa5), "\\",$var);
とすることで文字化けした部分を無理やり\記号に置き換えている状況です。
023419805/01/13 23:06:37ID:???
>>229
そうでしたか・・・両者は違ったんですか・・・
0235nobodyさん05/01/13 23:16:47ID:???
>>234
http://foo.com/etc/passwd

とかできたら怖いだろうが
0236nobodyさん05/01/13 23:29:54ID:???
>>235
それは、ドザの>198に言っても意味ないよ。
確かに出来たらちょっと怖いけど。
0237nobodyさん05/01/13 23:48:56ID:???
PHPにとある変数に何か値がセットされているかどうかチェックする関数ってある?
0238nobodyさん05/01/13 23:55:36ID:???
>>237
isset

チェック系関数は殆どがisから始まるから覚えておくといいかも
0239nobodyさん05/01/14 00:09:39ID:???
>>238
激しくサンクス
あとdefineでセットした変数はdefined()で調べられるみたいだね
0240nobodyさん05/01/14 01:17:18ID:???
自家製MVCでサイト作ってるけど
それでもmojaviつかったほうがいいでつか?
0241nobodyさん05/01/14 02:31:33ID:???
フォームでsubmitした後、ブラウザの戻るを押したときに
値を残したいんですけどどうすればいいのでしょうか
0242nobodyさん05/01/14 02:37:25ID:???
>>241
不可能。っつーかブラウザ側の問題だろそれ。。
0243nobodyさん05/01/14 02:38:55ID:???
>>241
クッキー
0244nobodyさん05/01/14 03:07:54ID:gDcK7oTt
>>241
そこでセッションですよ。
0245nobodyさん05/01/14 03:13:28ID:???
which prefer cookie or session?
0246nobodyさん05/01/14 03:25:56ID:???
サーバリソースを消費するのは得策ではない。
クライアント側で完結させてしまうのがいい。
そうなるとこの板のネタじゃなくなってしまうけど。
0247nobodyさん05/01/14 04:05:45ID:???
マジレスすると引きこもりにMojaviは必要ない
0248nobodyさん05/01/14 04:21:16ID:???
なんでひきこもりってわかったんだよ〜
0249nobodyさん05/01/14 05:13:18ID:???
stristrを使って、「い」で検索すると「中欧の」という文字にもヒットしてしまいます。
文字コードはEUCです。
UTF-8に変える以外でこれを回避する方法は無いでしょうか。
0250nobodyさん05/01/14 05:22:33ID:???
くだらなくないじゃん
0251nobodyさん05/01/14 05:32:53ID:???
なんか、PHP質問スレがとまってるんで
書き込みにくかったんです。・゚・(ノД`)・゚・。
0252nobodyさん05/01/14 08:57:31ID:???
PHPの環境変数にサーバの容量を参照できるものはありますか?
0253nobodyさん05/01/14 08:59:31ID:???
ない。disk_free_spaceかシェルコマンドで
0254nobodyさん05/01/14 09:05:06ID:???
>>252
あるかないか知りたいなら、phpinfo()で一覧表示できるだろ
0255nobodyさん05/01/14 10:00:26ID:???
>>254
見たけどなかったから聞いた
>>253
助かりました。
0256nobodyさん05/01/14 10:10:46ID:???
phpinfo(INFO_VARIABLES);
> Shows all predefined variables
      ~~~
ここに全部あるわけ
http://jp.php.net/manual/ja/language.variables.predefined.php
0257nobodyさん05/01/14 10:53:57ID:dc+qAGeZ
<html>
<form enctype=multipart/form-data action=upload.php method=post>
<input type=hidden name=max_file_size value=10000>
画像:<input name=userfile type=file>
<input type=submit value=送信>
</form>
</html>

<?php
$uploadfile = $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print "アップ成功";
} else {
print "アップ失敗";
}

画像アップローダーを作ろうとし
上のように記述して送信ボタンを押したところ、
Warning: Unable to create 'xxxx.gif': Permission denied in /home/xxxx/xxxx/upload.php on line 15
Warning: Unable to move '/tmp/php49xHiN' to 'tohowww.gif' in /home/xxxx/xxxx/upload.php on line 15
のようなエラーが発生しました。
このエラーを回避するにはどのように直したらよいですか?。
0258nobodyさん05/01/14 11:06:23ID:???
>>257
みたまんまだ!バカ!
>Permission denied
0259nobodyさん05/01/14 11:12:48ID:gDcK7oTt
>>258 まぁ待て。257はPermissionの意味が解らないと見た。
メッセージをExcite翻訳してやったから、257はチラシの裏にでもコード書いてろ。な?

警告: 'xxxx.gif'を作成することができません: 許可は稼働中な/home/xxxx/xxxx/upload.phpで15を否定しました。
警告: 線15の上の/home/xxxx/xxxx/upload.phpの'tohowww.gif'に'/tmp/php49xHiN'を動かすことができません。
0260nobodyさん05/01/14 11:25:30ID:???
>>257みたいなチンカスでもアップローダを作ろうという気にさせるPHPは凄いな。
まさに、1億総プログラマ化の兆しか・・・
0261nobodyさん05/01/14 11:46:48ID:???
cgiと違って、あぷした後にパーミッションの変更をしなくて(も)良い
PHPならではの、弊害だな。
0262初心者05/01/14 11:54:21ID:a1cFeSEO
Warning: Unexpected character in input: ' in /usr/home/xx/HTML_DOC/11-2.php on line 67

↑よくこんなのが出てきたり出てこなかったりするのですが、
プログラムを見ると ' とかは見当たらないのですが、
これってどうしてでしょうか?
0263nobodyさん05/01/14 12:31:04ID:???
Redhat + Apache
PHP4.2で文字コードEUCにてテキストフォームをつくりました
入力された結果をメールでとばし、かつDB(PostgreSQL)に蓄積、というものです。
�鰍ニか�汲ニかの機種依存文字を入力されてしまった時にメール、DBとも文字化けしてしまうので
用途から�括汲フ2文字だけは頻出しそうなので
(株)と(有)にそれぞれereg_replaceしたいのですが
http://www.shurey.com/Soft/JavaScript/font2.html
にある表の8780の行のAとBはどう表記していいのか教えていただけますか
0264nobodyさん05/01/14 14:14:23ID:???
>>263
A, Bはそれぞれ一ケタ目
�梶ィ\x87\x8A
�求ィ\x87\x8B

>>262
引数に文字を受け付けない関数に文字列を渡してるんだろ
つーかなぜ肝心の67行目を隠すかねえ
0265nobodyさん05/01/14 14:15:12ID:sj4KYmxy
>>262
単なる記述ミス。
'とか"の閉じ忘れだったり、;で行を終らせてなかったりするとよく出る。

対処:
コードをよく見る。
それか、PHPコード中の文字列や関数、変数、コメントを色換えしてくれるエディタにする。
0266nobodyさん05/01/14 14:17:51ID:???
>>264
残念。それは別のエラーだ
0267nobodyさん05/01/14 14:18:18ID:???
PHP4ではじめて動かしました。
すると、同じphpファイルなのに、ファイル名で挙動が違います。

「index.php」の場合、プラウザに表示されず、ファイルをダウンロード
しようとします。
「foo.php」の場合、正常に動作します。

なにが問題で、このような動作をするのでしょうか?


0268nobodyさん05/01/14 14:23:22ID:???
>>262
NixならEUC-JPかUtf-8だろうから、閉じ忘れが有力なあ
エディタがないならhighlight_file()とか
0269nobodyさん05/01/14 14:32:39ID:???
>>267 Apacheの設定かと思われ。
httpd.confか.htaccessファイルを見れ
よくわからなかったらサバ管理者に聞いてくれ。
027026305/01/14 14:40:17ID:???
>>264
ありがとうございました
$hoge = ereg_replace("\x87\x8A","(株)",$hoge);
$hoge = ereg_replace("\x87\x8B","(有)",$hoge);
のようにしてみましたがダメでした、もうちょい格闘してきます
0271nobodyさん05/01/14 14:48:34ID:???
>>270
そのコードで動くはずだけどね。
$hogeの中身がSJISじゃないんじゃない?
027226305/01/14 14:59:05ID:???
>>271
ファイルエンコーディングはEUCです、ってーことは
参照する文字コード表が間違ってる…んですね。
orz
ごめんなさい、探してきます
0273nobodyさん05/01/14 15:02:52ID:???
(・∀・)ニヤニヤ
0274nobodyさん05/01/14 15:04:06ID:???
print bin2hex('��');
027526305/01/14 15:11:46ID:???
>>274
http://www.rtpro.yamaha.co.jp/RT/docs/misc/kanji-euc.html
とかいくつかみたんですが(株)がない…。
print bin2hex('��');
したら"adae"とでました
http://jp2.php.net/manual/ja/function.bin2hex.php
イミがよく分からないながらも
$hoge = ereg_replace("\xad\xae","(株)",$hoge);
なんてやってみましたがorzでした、もうちょっと弄ってみます
0276nobodyさん05/01/14 15:20:15ID:???
対象をEUC=JPに変換してるなら
$hoge = ereg_replace("��", "カブ", $hoge);
でいいじゃないか
0277nobodyさん05/01/14 15:53:14ID:???
奥義を伝授しよう
mb_regex_encoding("EUC-JP");
mb_ereg_replace("\xAD\xAE", "(株)", $hoge);
027826305/01/14 16:16:06ID:???
>>276-277
自分はmacで制作しているんですが
自機ではOKなんですがwin機で変換できないです
win機でbin2hex('��');してもmacでも同じ"adae"なのに…
bin2hexはASCII文字列を返してくれるようなのですが
EUCのコードを返してくれる関数ってないんでしょうか?
0279nobodyさん05/01/14 16:21:40ID:???
マクの特殊文字ってWInとはコードが違わないか?
0280nobodyさん05/01/14 16:24:49ID:???
釣れますかな
028123105/01/14 16:50:07ID:???
すみません、また質問です。PHP5+SimpleXMLでてこずってます。

外部実体エンティティが上手くオブジェクト化されないようです。
simplexml_load_file()でxml文書を読み込み、print_rで内容を表示してみると外部実体は展開されているように見えますが
実際にオブジェクトをたどってみると途中でNULLとなってしまい、外部実体の内容を取得できません。
これはPHPのバグなのでしょうか?

[hoge.xml]
<?xml version="1.0" encoding="Shift-JIS" ?>
<hoge>
test
</hoge>

[test.xml]
<?xml version="1.0" encoding="Shift-JIS" ?>
<!DOCTYPE test [
<!ENTITY hoge SYSTEM "hoge.xml">
]>
<fuga>
&hoge;
</fuga>

[PHP]
<?php
$xml = simplexml_load_file('test.xml');
var_dump($xml); // ここでは展開されて見える
var_dump($xml->hoge); // これだと見えない
?>
028223105/01/14 16:52:53ID:???
スミマセン、test.xmlのDOCTYPEが間違いです。

誤:<!DOCTYPE test [
正:<!DOCTYPE fuga [
0283nobodyさん05/01/14 18:25:31ID:???
>>281
なんだ?ここはオマエの学校か?
0284nobodyさん05/01/14 18:53:07ID:???
>>283
さっさと答えんかい
0285nobodyさん05/01/14 18:58:03ID:???
すみません。>>284は、俺じゃないです。

>>283
それが俺の掲示板の使い方です。
お金を払わずにわからない所があれば誰かが教えてくれる場所だと思っています。
なので、わからない人は返事しないで頂けませんか?

ここにいる人たちだって、わかる質問があれば答えるべきです。
それがこのスレの住人としての責務じゃないですか?
質問に回答がこないようじゃ質問スレとしては成り立たないと思います。
0286nobodyさん05/01/14 19:27:47ID:???
>>285
死ね
0287nobodyさん05/01/14 19:28:59ID:???
>>285
ごめん、俺が間違ってたよ。
お前の言うとおりだ。悪かった。
0288nobodyさん05/01/14 19:37:03ID:???
文字列中の「&」について、
「&」→「&amp;」と変換したいです。

でも、&quot;や&#8745;や&#x2020;
文字実態参照・数値文字参照として用いられる「&」
は変換したくないです。

preg_replace("/&(?![A-Za-z]{0,4}\w{2,3};|#[x0-9a-f]{2,6};)/",
"?", strtr($string, $trans));

こういうのを見かけたんだけど、マニュアルよんでも
strtrのあたりとかがよくわかりません。

こういう処理は必要なくて、ただhtmlentitiesに食わせるだけでいいんでしょか?
0289nobodyさん05/01/14 20:07:23ID:???
マークシートには専用の鉛筆を使いましょう。
効率が断然上がり、解答により多くの時間をかけることができるようになります。
029026305/01/14 22:15:28ID:???
できたー
$hoge = ereg_replace("\xad\xea","(株)",$hoge);
$hoge = ereg_replace("\xad\xeb","(有)",$hoge);
知り合いがもってる文字コード表の本でみてもらったorz
そのあとで
print bin2hex('��');
print bin2hex('��');
した結果を入れている事に気がついた。
"\xad\xeb"は264さんの書き方をまんまコピーしただけなんで
\x○○の書き方を見直してきます
ありがとうございました
0291nobodyさん05/01/15 00:49:47ID:???
文字列のある文字列と別のある文字列の間の文字列を
取得するにはどうすればいいですか?

function GetText($word,$wstart,$wend){
preg_match("/($wstart)([^\n]+)($wend)/i",$word,$text);
return $text[2];
}

文字列$word内の$wstartと$wendの間を取得する
ような処理をさせようとしています。
なんか検索する文字によって↓のエラーがでる
Warning: Unknown modifier 'a'
とか
Warning: Unknown modifier 't'

対処方法またはエロイ人用のすばらしいものを教えてください。
0292nobodyさん05/01/15 02:17:50ID:???
なんとなく。

function GetText($word,$wstart,$wend){
 $pattern = "/$wstart([^\n]+)$wend/i";
 preg_match($pattern,$word,$text);
 return $text[1];
}


0293nobodyさん05/01/15 02:18:03ID:wU+VTC+T
配布サイトからリンク集phpをダウンロードさせて頂きました。
全てのファイルをアップロードし、パーミッションも設定が終わりましたが、

Warning: array_shift(): The argument should be an array in /*/*/***.php on line 25
Warning: Invalid argument supplied for foreach() in /*/*/***.php on line 26

というエラーが出ます。
この前に出た絶対パスのエラーは原因を自力で探せたのですが、↑が分かりません。
ぐぐっても参考になるものは出て来なかったのですが、バグなのでしょうか?
ちなみに***.phpの25、26行目はさわっていません。
教えてください!お願い致します。
0294nobodyさん05/01/15 02:21:54ID:???
>>291
引数をエスケープしてみたら?
0295nobodyさん05/01/15 02:22:42ID:???
>>293
ごめん、全く意味がわからない。
せめて、そのスクリプトのコードを見せて貰わないことにはどうにもならない。

#エスパーキボンヌなら帰って下さいね
0296nobodyさん05/01/15 02:25:29ID:wU+VTC+T
>295さん
説明不足ですみません。どこまで書けばいいのか分からず・・・
コードは25、26行目でよろしいでしょうか?

$this->total = trim(array_shift($nums));
foreach ($nums as $tmp) {

となっています。ファイル名はcommon.phpとなっています。
0297nobodyさん05/01/15 02:26:58ID:???
>>293
それだけじゃわかんないなぁ。
25行目のarray_shiftの引数が配列じゃないんだろうから、
その引数となってる変数をスクリプトから検索してみて、
定義されてるところを見てみたらいいかな。
0298nobodyさん05/01/15 02:27:53ID:???
で、ググる以前にwarningの部分を訳してみたのかい?
0299nobodyさん05/01/15 02:31:00ID:???
>>296
とりあえず、>297の言うとおり$numsが一番最初に出てくる場所を探してみ。
foreachのエラーはそれを解決したら自ずと解決するような気がする。

どっかから落としたものなら、配布元に聞くのが一番手っ取り早いんだけどな。
0300nobodyさん05/01/15 02:32:36ID:wU+VTC+T
お答えくださりありがとうございました。
で、せっかく答えてくださったのになんなんですが、
phpスクリプトのことはさっぱりなので・・・、作者さんに問い合わせてみることにします。
今後の為にこれから勉強していきます。
初心者が設置するなって感じですが、どうしても使いたかったものなので・・
すみません。
0301nobodyさん05/01/15 02:36:47ID:wU+VTC+T
わ、リロードし忘れました!
>298さん
エキサイトで訳してみると
シフトを整列させてください、
供給された根拠のない議論とでました。

>297
phpファイルがたくさんあるんですが、
全部を検索すれば良いのでしょうか?
設置の際のエラーではなく内部のものなら、作者さんに問い合わせた方が良いとのお答えなので、
質問しつつ検索してみます。
0302nobodyさん05/01/15 02:42:53ID:???
>>301
まぁ…くだ質だから答えるけど、
common.phpから探してみてないようなら、
他のファイルでcommon.phpをincludeしてたり
requireしてたりするスクリプトの中から検索する。

ただ、検索して見つかったところで何もわからないんだったら、スレ違いになるのかな。
0303nobodyさん05/01/15 02:52:08ID:???
> Warning: array_shift(): The argument should be an array in /*/*/***.php on line 25
警告 : array_shift()関数: /*/*/***.phpの25行目、引数は配列でなければなりません。
> Warning: Invalid argument supplied for foreach() in /*/*/***.php on line 26
警告 : /*/***.phpの26行目、foreach()に正しくない引数が渡されています。
0304nobodyさん05/01/15 03:00:36ID:wU+VTC+T
>302さん
common.phpには$numsも$tmpの文字はありませんでしたし、
ほんとに何も分からない状態です。
さわって変なことになるのは怖い気もするので大人しく作者さんからの回答を待ってみます。
その間、皆さんのレスを元にphpマニュアルと格闘します・・

お手数お掛けしてすみませんでした。
お知恵を貸してくださった方々に感謝致します。
0305nobodyさん05/01/15 06:26:23ID:8dAi9b4C
グローバル変数って関数内ではglobalしないと見えないんですよね…
なんかめんどっちぃなぁ。よく忘れてエラー出まくり…_| ̄|○
0306nobodyさん05/01/15 06:31:03ID:???
メモ帳にでも書いてろ
0307nobodyさん05/01/15 08:32:14ID:???
>>305
本当に変数じゃないといけないのか良く考えて
値が変わらないヤツは定数にするとか
0308nobodyさん05/01/15 19:10:23ID:6vuxoIpW
トラックパックって何?
0309nobodyさん05/01/15 19:21:51ID:???
>>308
ピーッピーッ バックします
ピーッピーッ バックします
ってやつ
0310nobodyさん05/01/15 19:44:59ID:6vuxoIpW
>>309
なるほどよく分かりました・・・ってチッガーウよ
        
トラック/ \”ックでは無くてトラック/ \゚ックです
0311nobodyさん05/01/15 19:59:06ID:???
ピーッピーッ pack()しますじゃね?
0312nobodyさん05/01/15 20:10:10ID:vOEqqKZU
質問させていただきます。
最近HPを作り始めたのですが、
FTPで画像をアップロードしてHPに貼り付けた画像の、
プロパティを見たらURLが普通のフォルダ名とかになってるんです、
どうやってHTTPになるんですか?
教えてください。お願いします
0313nobodyさん05/01/15 20:11:20ID:???
素でトラックバックだと思ってた…
反応を返す意味合いだと。
0314nobodyさん05/01/15 20:11:36ID:???
>>312
回答者に対する挑戦がきたぁ〜〜〜〜
0315nobodyさん05/01/15 20:11:42ID:???
>>312
釣りか?
0316nobodyさん05/01/15 20:20:56ID:???
>>312
まずは、そのHPとやらのURLを晒せ。
話はそれからだ。
0317nobodyさん05/01/15 20:26:02ID:???
てか板違いだろ
0318nobodyさん05/01/15 20:54:30ID:6vuxoIpW
ああっわてはアホやった〜〜〜
トラックバックやった〜〜スマン。
パソコンの解像度が悪いんや、わてがわるいんとちゃうで。
まっ下らない質問のスレだからゆるしてたもれ。
0319nobodyさん05/01/15 20:56:54ID:B4Q78ZKG
>>312
超初心者の典型だな
imgタグのURLの書き方を勉強しなおした方が良いぞ
0320nobodyさん05/01/15 20:58:00ID:???
あげてもた;
0321nobodyさん05/01/15 21:10:28ID:???
>>319-320

同レベルが 現れた
0322nobodyさん05/01/16 11:46:47ID:iPhUnTdV
おまえら、ちょとすれ違いゴメソ。
PHP中心に今後使用していきたいのですが、
資格の基本情報技術者でプログラム開発言語って
アセンブラとC言語どっちがよかとでしょうか?
アセンブラが一番点を取りやすいそうですが、
個人的にはC言語を身に付けたいと考えています。
PHPやる場合、どっち覚えた方がとくでしょうか?
ヨロシコ!!
0323nobodyさん05/01/16 11:57:12ID:???
>>322
PHPはアセンブラよりCに似てる。
アセンブラを本当の意味で理解できればPHPなど屁でもない。(たぶん)
0324nobodyさん05/01/16 13:15:37ID:???
>>322
PHPなら1週間で覚えられる。

PHPを勉強して「こんなもの・・・」というものを漠然とつかんだら、Javaに移行した方がいい。
実際に使うのも、資格をとるのも、飯の種にするにも、Javaの方が数段有利。

Javaを覚えれば、CやC++なんかも簡単に使えるし、万が一、今後C#やらが伸びてきたとしてもほぼ完全に対応できる。
逆に、PHPを覚えてもPHPしか使えない。
0325nobodyさん05/01/16 13:37:25ID:???
>>322
CがかけるとPHPをソースハックでけるぞ
0326nobodyさん05/01/16 13:37:54ID:???
>実際に使うのも、資格をとるのも、飯の種にするにも、Javaの方が数段有利。
は同意するが、

>Javaを覚えれば、CやC++なんかも簡単に使える
はちと無理がないか。Javaを覚えてるならCやC++で同じように使える
といえそうな部分は、PHPを覚えてるならCやC++も…と同じ程度で
そんな程度で「CやC++を使える」なんて言えないでしょ。
0327nobodyさん05/01/16 13:38:39ID:???
一匹目w
0328nobodyさん05/01/16 13:42:15ID:???
^^;
0329nobodyさん05/01/16 14:02:46ID:???
>>326
そうかなぁ〜
変数の扱いとか、その他の文法や作法はJavaもC++も同じだと思うけどな。
PHPとC++やJavaの文法や作法には大きな違いっていうか、根本的に違う。

文法・作法を覚えれば、あとは、その言語固有のロジックを覚えればいいだけであって、それは至極簡単なもの。
もっとも、アルゴリズムやデザインパターンを網羅した上での話しだが。
■ このスレッドは過去ログ倉庫に格納されています