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

このエントリーをはてなブックマークに追加
261nobodyさん
PHP初心者です。PHPからCプログラムを実行して実行結果をHTML上に表示する方法が分からなく困っています。
Cプログラムの中身は、
#include <stdio.h>

int main(){
printf("Hello.");
}
です。
phpの中身は、
<HTML>
<HEAD><TITLE>Cプログラム呼び出し</TITLE></HEAD>
<BODY>

<?php
$cmd = "test.exe";
$a = exec($cmd);
echo $a;
?>

</BODY>
</HTML>
としており、調べてみるとexec()関数で外部プログラムを実行すると書いてあったのでこのように作成しました。
他にもexec(),system(),shell_exec(),passthru()を試してみたんですがだめでした・・・
262nobodyさん:2010/01/21(木) 12:58:11 ID:???
test.exeは標準出力に吐くわけじゃん
exec()は標準入力を受け取れるのかどうなのかマニュアルで確認してみそ
263nobodyさん:2010/01/21(木) 13:02:18 ID:???
>>261
execでやりたいなら
echo exec($cmd);
とするか、第二引数を指定する。

PHP: exec - Manual
http://jp.php.net/manual/ja/function.exec.php
264nobodyさん:2010/01/21(木) 13:06:49 ID:???
265nobodyさん:2010/01/21(木) 13:11:29 ID:???
よく探してきたなw
266nobodyさん:2010/01/21(木) 13:21:42 ID:???
echo exec($cmd);
にしても「ファイルが開けません」と出てだめでした。
test.exeもphpファイルと同じ場所に保存しているんですが
267nobodyさん:2010/01/21(木) 13:34:13 ID:???
フルパス指定するか、./test.exe でどうよ
./ はピリオドスラッシュね
268nobodyさん:2010/01/21(木) 13:37:06 ID:???
>>267
マルチのバカに回答してやるなんて優しいな。
269nobodyさん:2010/01/21(木) 13:42:58 ID:PEXDjvL/
>>267
どちらも試したところ、文も何も表示されませんでした・・・
270nobodyさん:2010/01/21(木) 13:45:56 ID:???
>>269
マルチするクズは消えろ。
271nobodyさん:2010/01/21(木) 13:56:32 ID:???
マルチポストについて調べました。
「基本的には同一のシステム(コミュニティ)内での別個のカテゴリへの重複投稿を指すが
人によっては、別のシステム(「OKWave」、「Yahoo知恵袋」、「カカクコム」、「2ちゃんねる」など別個のサイト)への重複投稿もマルチポストと見る場合がある。」
基本的には同一のシステム(コミュニティ)内での別個のカテゴリへの重複投稿を指すので、
人によっては、マルチポストとは見ない場合もあるんじゃないですか?
272nobodyさん:2010/01/21(木) 13:58:31 ID:???
>>271
はいはい。271=ID:PEXDjvL/必死だな。
ID非表示にして自己弁護。
273nobodyさん:2010/01/21(木) 13:58:46 ID:???
質問する側の論理だな。
自分が回答する立場になったらマルチの不快さはわかるよ。
274nobodyさん:2010/01/21(木) 13:59:29 ID:???
>>271
なんでマルチポストが嫌われるのかも調べようぜ。
275nobodyさん:2010/01/21(木) 14:02:17 ID:???
276nobodyさん:2010/01/21(木) 14:15:50 ID:IMaJrSoT
>色々と試したらうまくいきました。回答していただいた方有り難うございました。
逃げたな。


マルチポストまともに反論できないなら最初からやらなければいいのにどうしてこういうバカは
それでもマルチポストをするのだろうか?
バカの考えは凡人にはわからないね。
277nobodyさん:2010/01/21(木) 14:19:39 ID:???
都合の良いサポート感覚だな。

どういう問題があって、どのように修正したらうまくいったのかを書いとけば
今後、同じような問題で困った人の助けになるのにな。
278nobodyさん:2010/01/21(木) 14:22:13 ID:???
>>277
教えて君ってそういう物だよ。
・ネットマナーなにそれ?それっておいしいの?
・情報共有って必要?俺が満足すればそれでいい。
279nobodyさん:2010/01/21(木) 14:22:49 ID:???
未コンパイルのテキストの拡張子を変えただけのもの
が設置してある神展開希望w。
280nobodyさん:2010/01/21(木) 14:24:54 ID:???
>>279
それよりサーバにアップしたらサーバ側で動かないと言う定番を希望。
281nobodyさん:2010/01/21(木) 14:32:23 ID:???
ID付くようにならんかなぁ。
282nobodyさん:2010/01/21(木) 14:48:42 ID:???
IDってなんで非表示なんや
283nobodyさん:2010/01/21(木) 14:56:53 ID:???
非表示がいやならID出せやハゲ
284nobodyさん:2010/01/21(木) 14:58:48 ID:???
ID:PEXDjvL/逃げてないではやく謝罪しろよ。
285nobodyさん:2010/01/21(木) 15:02:58 ID:???
>>283
ばーか^^
いやだよ^^
お前がだせよ^^
286nobodyさん:2010/01/21(木) 15:03:43 ID:???
ワロス
287age:2010/01/21(木) 15:47:35 ID:rC/oBUeG
<?
echo 'Hello World!';
?>
実行できない。ちなみに
<?php
echo 'Hello World!';
?>
は実行できる。なんで?
288nobodyさん:2010/01/21(木) 15:48:03 ID:???
つマニュアル
289nobodyさん:2010/01/21(木) 15:57:06 ID:???
>>287
short_open_tag
290age:2010/01/21(木) 16:16:58 ID:rC/oBUeG
かいけつしました
291age:2010/01/21(木) 16:18:50 ID:rC/oBUeG
289 ありがとうです
292nobodyさん:2010/01/21(木) 22:18:45 ID:???
ttp://www.xrex.net/~webs/k-shop/script/heredoc_php.php

echo<<<_HTML_
_HTML_;
の存在を今初めて知った。
293nobodyさん:2010/01/21(木) 22:32:44 ID:???
スクリプト言語にはほとんどあるが・・
294nobodyさん:2010/01/21(木) 22:36:58 ID:???
マニュアルに思いっきり載ってるのに・・・
295nobodyさん:2010/01/21(木) 22:37:03 ID:???
>>292
おまえ普通にバカだろう。
「_HTML_ 」の部分は特別な意味はない。自由に決めることができる。意味があるのは「<<<」の部分。
http://jp.php.net/manual/ja/language.types.string.php#language.types.string.syntax.heredoc
ヒアドキュメントの事くらい知っておけよ。
でヒアドキュメントってPHPに限った機能ではない。Perlなどの言語にもある機能。
常識中の常識的な機能。
296nobodyさん:2010/01/21(木) 22:38:00 ID:???
http://oshiete1.goo.ne.jp/qa5611599.html
昼間のキチガイマルチがまた質問しているよ。
297nobodyさん:2010/01/21(木) 22:42:51 ID:???
>>292-296
メモ用紙にでも書いとけ、な?
298nobodyさん:2010/01/21(木) 22:45:36 ID:???
>>296
誰か知らんがどうでもいいよ
消えろ
299nobodyさん:2010/01/21(木) 22:46:54 ID:???
>>298=ID:PEXDjvL/
必死だな。
300nobodyさん:2010/01/21(木) 22:48:26 ID:???
もうそういうのやめてスルーしようぜ
マルチもスルーな。
301nobodyさん:2010/01/21(木) 22:49:38 ID:???
とマルチをしたID:PEXDjvL/が事態の沈静化に躍起です。
302nobodyさん:2010/01/21(木) 22:51:54 ID:???
え?PEXDjvL/じゃねえよあほ
303nobodyさん:2010/01/21(木) 22:53:03 ID:???
え?PEXDjvL/だよよあほ
304nobodyさん:2010/01/21(木) 22:55:33 ID:???
ID:PEXDjvL/あっちの方退会しているな。
時間的にここ見て退会したようだね。
タイミング的にもこの中の誰かがID:PEXDjvL/だった可能性はあるね。
305nobodyさん:2010/01/21(木) 22:56:32 ID:???
だよよってなんだよ
脳外科行ってこい
306nobodyさん:2010/01/21(木) 22:59:20 ID:???
>>305
この必死さ、おまえID:PEXDjvL/だろ。
307nobodyさん:2010/01/21(木) 23:00:24 ID:???
私のために喧嘩しないで><
308nobodyさん:2010/01/21(木) 23:03:31 ID:???
けんかをやめて二人を止めて
私のために争わないで
もうこれ以上
309nobodyさん:2010/01/21(木) 23:35:03 ID:???
ワロス
310アルト:2010/01/22(金) 10:45:46 ID:lVM55VZv
質問お願いします。
掲示板作成してます。PHPで掲示板を作成しているのですが、どうしてもわからないところがあるので教えてください。
投稿コメントに
---------------------------
[例1]
>a
>>a
>>>a
>>>>a
#a
[例2]
aaa>a
aaa>>a>a
---------------------------
とあったとします。これを掲示板の機能でよくある、色を変える処理をしたいです。
【条件】
@、行の初めに記号(例1)があるとき色を変える。
A、行の途中に記号(例2)があるときは色を変えない。
B、@の条件から改行まで色を変える。
私が考えた正規表現だとバグがありました・・・
$res_comment = preg_replace('/^>(.+)/','<font color="#">\0</font>',$res_comment);
$res_comment = preg_replace('/^>>(.+)/','<font color="#">\0</font>',$res_comment);
$res_comment = preg_replace('/^>>>(.+)/','<font color="#">\0</font>',$res_comment);
$res_comment = preg_replace('/^>>>>(.+)/','<font color="#">\0</font>',$res_comment);
$res_comment = preg_replace('/^#(.+)/','<font color="'.$sharp.'">\0</font>',$res_comment);
※色コードは今だけ#にしてます。
$res_commentには上記の例だと
$res_comment = "[例1]<br>>a<br>>>a<br>>>>a<br>>>>>a<br>#a<br>[例2]<br>aaa>a<br>aaa>>a>a";
こんな感じの変数になってます。どなたか宜しくお願いします。
311nobodyさん:2010/01/22(金) 10:58:24 ID:???
行の始めと行の途中に記号があるときははてどうしたものか・・
312nobodyさん:2010/01/22(金) 11:10:30 ID:???
>の連続は正規表現にしないんだw
313nobodyさん:2010/01/22(金) 11:11:32 ID:???
314nobodyさん:2010/01/22(金) 12:56:41 ID:???
誰かがYahooにあったのを貼り付けに来たんだろ

315nobodyさん:2010/01/22(金) 13:02:59 ID:???
じゃあスルーだな
316nobodyさん:2010/01/22(金) 13:25:57 ID:???
$a = "test1\ntest2";
$b = 'test1\ntest2';

/*ここに文字列化した$bのエスケープシーケンスを解釈する処理*/

($a === $b) ? echo good : echo bad;

一度変数に改行コードではなく純粋に文字列として入ってしまった'\n'などを
解釈させるにはどうしたらいいですか?
317nobodyさん:2010/01/22(金) 13:29:44 ID:???
318316:2010/01/22(金) 13:37:50 ID:???
preg_replaceで改行コードに変換することにしました。失礼しました
319nobodyさん:2010/01/22(金) 14:02:09 ID:???
まじでか
320nobodyさん:2010/01/22(金) 14:05:40 ID:???
ワロタ
321PEX:2010/01/22(金) 14:28:10 ID:???
おもろいスレだな
322サブマリンPHP:2010/01/22(金) 14:49:49 ID:lrtepsPM
【OS名】レンタルサーバ
【PHPのバージョン】php5
【連携ソフトウェア】特になし
【質問内容】
requireのファイルを読み込んだ場所がカレントディレクトリーになってしまうために
おこる問題についてです。

同じ階層にあるhoge.phpを読み込む。
OK <?php require('hoge.php'); ?>
OK <?php require('/hoge.php'); ?>

他の階層にある(/hoge.phpを /hoge/hogeRead.phpから読み込む)hoge.phpを読み込む。

NG <?php require('/hoge.php'); ?>

相対パスでやればいいことは分かってるのですが、
hoge.phpは変更しない
hogeRead.phpをいろんな階層に配置する
場合、階層ごとにrequireを修正していたのでは大変です。

どの階層からでも同じ構文で読み込ませる方法はないでしょうか?

323nobodyさん:2010/01/22(金) 14:54:23 ID:???
define('LIBS', '/path/to/libs/');

しといて

require(LIBS.'hoge.php');

とか?
324サブマリンPHP:2010/01/22(金) 14:58:28 ID:lrtepsPM
>>323
それだとdefineを設置するファイルの場所によってパスの内容が変化してしまうんです。
言い方間違えてました。
requireのファイルを読み込んだ場所がカレントディレクトリー
ではなくてphpの場合ファイルを読み込んだ場所がカレントディレクトリーになってしまうです
325nobodyさん:2010/01/22(金) 15:04:34 ID:???
>>324
323は絶対パス
326nobodyさん:2010/01/22(金) 15:04:37 ID:???
たぶん常套手段と思える手の一つは、

require realpath(dirname(__FILE__)).'/../includeFile.php';
327nobodyさん:2010/01/22(金) 15:09:47 ID:???
>>316
function expand_escape($string) {
return preg_replace_callback(
'/\\\([nrtvf]|[0-7]{1,3}|[0-9A-Fa-f]{1,2})?/',
create_function(
'$matches',
'return ($matches[0] == "\\\\") ? "" : eval( sprintf(\'return "%s";\', $matches[0]) );'
),
$string
);
}
328サブマリンPHP:2010/01/22(金) 15:27:13 ID:lrtepsPM
>>326
すみません、それでもうまくいかないです・・・・
329サブマリンPHP:2010/01/22(金) 15:32:27 ID:lrtepsPM
>>326
realpathやdirnameで取得したファイル自体の位置が変わるためにそれでは
意味がないです。
330nobodyさん:2010/01/22(金) 15:34:03 ID:???
絶対パスを自分のところ基準の相対パスに変えればいいんだな。
この板で前にそんな質問があって回答した気がする。
331nobodyさん:2010/01/22(金) 15:37:29 ID:???
>>323>>326でできないならできるように仕様を変更するか相対バスで指定するかしかなくね?
332nobodyさん:2010/01/22(金) 15:43:52 ID:???
require $_SERVER['DOCUMENT_ROOT'] . '/../libs/hoge.php';
333サブマリンPHP:2010/01/22(金) 15:56:06 ID:lrtepsPM
>>332
あ〜びっくり、ちょっと変えるとそれでうまくいきます!

require $_SERVER['DOCUMENT_ROOT'] . '../hoge.php';

として読み込むファイルはドキュメントルートに配置しました。
これだとOKなんですが
../ が必要な理由が分からない・・・・
334サブマリンPHP:2010/01/22(金) 16:03:22 ID:lrtepsPM
>>332
でもとりあえず上手くいきました。有難うございました。
また、ほかの皆様にもたくさんご意見いただきまして有難うございました。
335サブマリンPHP:2010/01/22(金) 16:11:01 ID:lrtepsPM
っとローカルで上手くいってたんですがサーバにうぷするとだめでした;;
もうこの迷宮いや;;
336nobodyさん:2010/01/22(金) 16:44:58 ID:???
変更が許可されない環境もあったりするかもだけど、
includeパスを設定するとか。

set_include_path(get_include_path().PATH_SEPARATOR.'.'.PATH_SEPARATOR.'..'.PATH_SEPARATOR.'../..');
require('hoge.php');

file_existsとかしながら順に上の階層をみてまわるとか。
337nobodyさん:2010/01/22(金) 16:48:42 ID:???
>>335
echo $_SERVER['DOCUMENT_ROOT']して
最後にスラッシュが入ってるか入ってないかとか
338サブマリンPHP:2010/01/22(金) 16:50:06 ID:lrtepsPM
>>337
ちなみにスラッシュは入ってませんでした・・
339nobodyさん:2010/01/22(金) 16:56:31 ID:???
ところで、絶対パスの指定じゃ駄目なの?
読み込むヤツはあちこちだけど、読み込まれるヤツは固定なんでしょ?
340サブマリンPHP:2010/01/22(金) 17:37:03 ID:lrtepsPM
>>339
そこなんですよ!!なんで
/hogehoge/hogehoge.php
みたいな絶対パスが使えないんですかね?
341nobodyさん:2010/01/22(金) 17:41:28 ID:???
サブマリン的には絶対パスが使えないって見解なの?
342nobodyさん:2010/01/22(金) 17:49:49 ID:???
>>340
絶対パスって、 /var/www/public_html/xxxx/yyyy.php とか  c:\apach\www\html\xxx とかの方。
343サブマリンPHP:2010/01/22(金) 17:51:59 ID:lrtepsPM
え〜と私なんか根本的に間違ってるのかもしれないですね・・・
/hogehoge/hogehoge.php
じゃあだめなんですかね?
344サブマリンPHP:2010/01/22(金) 17:53:04 ID:lrtepsPM
あ〜やっぱり;;
サーバールートですよね;;;;;;;;;;;;;
345サブマリンPHP:2010/01/22(金) 18:01:53 ID:lrtepsPM
お恥ずかしい限りです・・・
ほんとにくだらねえ質問になってしまいました・・・

ここまでお付き合いくださいまして有難うございました。
無事解決いたしました。
346nobodyさん:2010/01/22(金) 18:04:58 ID:???
そう言い残してサブマリンは二度と来ることはなかった。。
347nobodyさん:2010/01/23(土) 09:30:58 ID:XRhFBb8M
サムネイルを実装したいときって、サムネイル用の画像を保存するのと、毎回縮小するのと、どっちが一般的なんでしょうか?
348nobodyさん:2010/01/23(土) 12:05:43 ID:???
保存
349nobodyさん:2010/01/23(土) 14:17:45 ID:xU/0Wtfa
HTMLフォームから入力された結果をphpの部分で使おうとしているのですが、特定の文字を使うとうまくいきません

HTML "ソニー"
php "ソ\ニー"

のようになってしまいます
これはどうすれば回避できるのでしょうか?
使っている文字コードはShift_JISです
str_replaceで\を取り除こうと試してみましたが、文字化けするだけでした・・・
350nobodyさん:2010/01/23(土) 14:20:46 ID:???
【OS名】CentOS 5
【PHPのバージョン】php5
【連携ソフトウェア】ImageMagick
【質問内容】
PHPにてEPS、AI、PSDやらをWeb表示用にJPEGに変換したいと考えています。
一応、ImageMagickを介してEPSからJPEGが書き出せたのですが色がおかしくなりました。
元画像は不特定多数からの物なので、CMYKとRGBの統一などはできません。
色がおかしくならないようにする方法とか、
他に有用な道具は無いでしょうか。
351nobodyさん:2010/01/23(土) 14:22:18 ID:cU7c3b42
>>350
ごめんなさい、sageてしまいました。
352nobodyさん:2010/01/23(土) 14:34:07 ID:???
>>349
stripslashes
353nobodyさん:2010/01/23(土) 14:38:02 ID:BWTPXOpQ
php.iniの設定変更
354nobodyさん:2010/01/23(土) 14:39:51 ID:BWTPXOpQ
355349:2010/01/23(土) 16:37:16 ID:xU/0Wtfa
>352-354
無事解決できました。
ありがとうございます。
356nobodyさん:2010/01/23(土) 16:59:17 ID:LeVWmeZT
PHPのDOMで一部分のhtmlを読み込むと勝手に日本語が数値参照(しかも間違っている)になってしまいます。
そこで、あらかじめ適切な数値参照に変換した後にDOMに読み込ませ、
出力した後に数値参照をデコードしようと思いました。

しかし、この方法では最初の段階から数値参照だったものまでデコードされてしまいます。
何かいい方法ありますか?
数値参照は、ascii文字以外を変換しようとmb_decode_numericentityでconvmapを指定しても
"が'になってしまっていました。
357nobodyさん:2010/01/23(土) 17:01:57 ID:???
>>356
例えばどんなん?
358nobodyさん:2010/01/23(土) 17:09:10 ID:???
.. PHP DOM 数値参照で検索したら、
そもそもの数値参照になっちゃうやつの対策が見つかると思うけど、そっちじゃ駄目なの?
359nobodyさん:2010/01/23(土) 17:13:40 ID:???
>>358
libxmlを変えろってことですか?それともmetaタグを追加してからDOMに読み込めということですか?
360nobodyさん:2010/01/23(土) 17:15:24 ID:???
http://ameblo.jp/utkworks/entry-10387824973.html
解決するかどうかは俺にはわからんけどさ。

libxmlのバージョンは?
361nobodyさん:2010/01/23(土) 17:25:42 ID:???
libXML Compiled Version 2.7.6
libXML Loaded Version 20706
でした。

$value='<b>"あa</b>';
$dom = new DOMDocument();
$dom->loadHTML($value);
$dom->encoding = "UTF-8";
echo $dom->saveHTML();

結果:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><b>"ã??a</b></body></html>

やっぱり"あ"が数値参照(間違ってる)になってしまいました。
362nobodyさん:2010/01/23(土) 17:41:15 ID:???
..あ (utf-8でE38182 ) が単純に Laten1の 3E 81 82 の文字に認識させられてるような気がするな。
81 81 は制御文字なので変換失敗してるけど。
363nobodyさん:2010/01/23(土) 17:44:06 ID:???
$value='<meta http-equiv="content-type" content="text/html; charset=UTF-8" /><b>"あa</b>';
だとOKぽい
364nobodyさん:2010/01/23(土) 17:44:51 ID:???
ID出せよ
365nobodyさん:2010/01/23(土) 18:10:59 ID:???
やっぱり
metaタグ追加
dom化
出力
metaタグ削除しかないんですかね。
366nobodyさん:2010/01/23(土) 18:22:39 ID:???
>>361
new DOMDocument();

new DOMDocument('1.0', 'UTF-8');
367nobodyさん:2010/01/23(土) 19:14:17 ID:LeVWmeZT
>>366
そこで設定しても後からencoding指定したら意味ない(まあencoding指定してもダメなんだけど)よ。
結果は同じ。
368nobodyさん:2010/01/23(土) 21:06:55 ID:???
metaでしか文字コードを設定できないんだな。
369nobodyさん:2010/01/24(日) 11:41:41 ID:DWdjG26G
staticな関数をまとめたクラスを作りインスタンス化せずに利用するか、
同じ機能を持ったクラスをインスタンス化して利用するか、
どちらのほうが高速(メモリ的・処理的)に動作するのでしょうか?
370nobodyさん:2010/01/24(日) 11:45:35 ID:???
ヒント

両方を作成して計測する
371nobodyさん:2010/01/25(月) 12:28:48 ID:gaHrYkXD
環境:Windows,PHP5.3.1($_ENVは利用できない設定にしてます。GPCSのみ)
コマンドラインからIPを取得する方法はございませんか?
以下の方法でブラウザから動かすとIPを取得できるのですが
MS-DOSでコマンドラインから動かすと取得できません

$_SERVER['REMOTE_ADDR'];
getenv['REMOTE_ADDR'];

無理矢理でもいいのでどなたかcliでも取得できる方法をご教示お願いいたします
372nobodyさん:2010/01/25(月) 12:51:10 ID:???
環境変数REMOTE_ADDRにはアクセスしてきた機器のIPアドレスがセットされるけど

コマンドラインで実行してもなにもアクセスしてこないだろうし無理
373nobodyさん:2010/01/25(月) 12:55:07 ID:???
.. まさか $_SERVER["SERVER_ADDR"]; じゃないよね? 意味違うけど。
374nobodyさん:2010/01/25(月) 13:33:24 ID:???
サーバ立ってないじゃんw
375nobodyさん:2010/01/25(月) 13:54:05 ID:???
その環境変数はhttpd(apacheとか)がセットするのだよ
376nobodyさん:2010/01/25(月) 13:58:20 ID:???
あとローカルのPCのIPアドレスを知りたいということなら
それなりのコマンド実行して返ってきたものを取り出す、ことになるとおもうけど
PCのIPアドレスは1つとは限らない(0〜いくつでも。通常でもループバックと2つあるよね)
377nobodyさん:2010/01/25(月) 14:17:11 ID:???
自分の環境だと、$_SERVERから COMPUTERNAME取れるので
nslookupでも引くか。
378nobodyさん:2010/01/25(月) 14:22:20 ID:???
windowsならipconfigでいいんでない?
379nobodyさん:2010/01/25(月) 15:11:26 ID:???
ipconfigってやるとアドレスがいくつも出てきて困ったり。
質問者が必要としてるのは何だろうね。
380nobodyさん:2010/01/25(月) 15:24:22 ID:???
日本語
381nobodyさん:2010/01/25(月) 15:24:33 ID:???
はい?
382nobodyさん:2010/01/25(月) 18:52:02 ID:BRV0ROHO
WindowsでPHP5.3.1、Mysql5.1 or Mysql5.5を使ってます
以下のコードを実行するとエラーが出てMySQLが応答しないです
どなたかphpでmysqlに正常にアクセスする方法をご教示お願いします
$con = mysql_connect("localhost, "root", "1234") or die("error");
mysql_close($link);
【エラー】
Warning: mysql_connect() [function.mysql-connect]: [2002] 接続済みの呼び出し先が一定の時間を
過ぎても正しく応答しなかった in 略
Warning: mysql_connect() [function.mysql-connect]: 接続済みの呼び出し先が一定の時間を過
ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、
確立された接続は失敗しました。in 略
接続できませんでした: 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。
または接続済みのホストが応答しなかったため、確立された接続は失敗しました。
383nobodyさん:2010/01/25(月) 18:53:26 ID:???
まずMySQLを起動します。
384nobodyさん:2010/01/25(月) 18:55:37 ID:???
>Mysql5.1 or Mysql5.5
同居させているなら、接続時にポートで割り振って切り替えれ

localhost:9999
385nobodyさん:2010/01/25(月) 23:07:47 ID:???
+、−を含む文字列をURLに付けて渡して表示させたいのですが無反応です。
直接PHPファイルのprintf部分に書くと表示するので渡ってないと思うんですが
URLで+は文字としては認識されないんでしょうか?
386nobodyさん:2010/01/25(月) 23:09:03 ID:???

誤)無反応
正)+−以外が表示されます。
387nobodyさん:2010/01/25(月) 23:11:29 ID:???
半角スペースは+にエスケープされる。これ常識ね
388nobodyさん:2010/01/25(月) 23:17:38 ID:???
スペースで渡してました
ありがとうございました
389nobodyさん:2010/01/26(火) 11:16:06 ID:???
test
390nobodyさん:2010/01/26(火) 13:55:08 ID:C4zRj44a
get_class()で返ってくるクラス名なんだが
全部小文字にして返すオプションとかあるのか?
PHPのバージョンによって小文字だけだったり
定義どおり大文字小文字混じってたりと違うようだが
統一する手段はあるのか?
391nobodyさん:2010/01/26(火) 14:03:42 ID:???
キミは知らないのかね
大文字を小文字に変換する関数があることを
392nobodyさん:2010/01/26(火) 16:42:48 ID:ZX9klyVT
Ajaxを使って,最初にネコの絵を表示しておき,ボタンを押したら犬の絵を表示する
プログラムを作成しなさい。なお,ネコ,犬をダウンロードして使いなさい。
←おもしろい画像で作ったやつが優勝


この課題がいろいろわからないので教えてください。
393nobodyさん:2010/01/26(火) 16:54:25 ID:???
.. これは難しい。 何をやり取りすればいいんだよ。
394nobodyさん:2010/01/26(火) 16:57:34 ID:???
まず面白い画像をつくります。
395nobodyさん:2010/01/26(火) 17:07:18 ID:SdRaerdT
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】Apache/1.3.4
【質問内容】
質問です。
特定の条件下では、デフォルトの404ページを返すようにしたいのですが、その方法を教えていただけますでしょうか。
------------------------
<?php
(略)
if ($error)
{
header("HTTP/1.1 404 Not Found");
exit;
}
print "ok";
?>
-----------------------
「PHPで404エラーステータスを返す方法」を調べると、header〜行をやれと書いてあるサイトが多々見られます。
しかしこれだけですと、Not Foundページが表示されません。
(ヘッダは404になっていますが、HTMLソースは空っぽです)

デフォルトの404ページを表示させるにはもう一工夫いるのだと思いますが、どうすればよいのでしょうか?

・独自の404ページを表示するのはできました。(調べたサイトたちも、基本的に独自404ページを表示する方法として紹介されていました)
・<?より前。?>より後ろに改行コードなどが入っていないのは確認しました。
・PHPと同フォルダにて、存在しないファイル名を指定してブラウザからアクセスしたら、きちんとデフォルトの404エラーページが表示されました

よろしくお願いします。
396nobodyさん:2010/01/26(火) 17:12:09 ID:???
apacheに任せてもいいし、Locationで自前の404ページに飛ばしてもいい
用途によって好きな方選べ
397nobodyさん:2010/01/26(火) 17:12:29 ID:ZX9klyVT
>392
この問題の答えをガチ教えて欲しい。

それはわがままなのか・・・
398nobodyさん:2010/01/26(火) 17:13:44 ID:???
課題は自分でやりましょう
399nobodyさん:2010/01/26(火) 17:14:37 ID:???
まず面白い画像を作れ
PHPの話はそれからだ
400nobodyさん:2010/01/26(火) 17:16:30 ID:???
いやでも>>392の課題じゃphpの出番ないんじゃ?
401nobodyさん:2010/01/26(火) 17:17:58 ID:???
ダウンロードするとこなんじゃ?
402nobodyさん:2010/01/26(火) 17:18:33 ID:???
お絵かきツールをPHPで作るところからだろ
403nobodyさん:2010/01/26(火) 17:18:38 ID:SdRaerdT
>>396
レスありがとうございます。

その「apacheに任せる」というのはどうすれば良いのでしょうか?
headerで404ステータスコードを返せば、自動的にapacheのデフォルト404が出るのかな。と期待していたのですが、それがだめだったもので。
404nobodyさん:2010/01/26(火) 17:18:58 ID:???
ああごめん関係ないわな
でもAjaxを使ってというからには非同期通信使って何かする課題がその後に控えてんだろ
405nobodyさん:2010/01/26(火) 17:20:59 ID:???
httpd.confの中に各種応答の際のページ条件を追加・変更すればおk
406nobodyさん:2010/01/26(火) 17:21:59 ID:???
Apacheに任すっていうのは本当にファイル置かないってことじゃないのか
407nobodyさん:2010/01/26(火) 17:22:41 ID:???
>>403
396じゃないけど
デフォルトの404ページって何?404を返したときに出るのがデフォルトだと思うけど。
自前の404ページを出したいんだよね?
ならあれはApacheが返してるものなのでApacheに設定したその条件に合致するURLにリダイレクトするか
404コードを出して自前の404ページにリダイレクトするなりincludeするなりすればいいなじゃないのかね
408nobodyさん:2010/01/26(火) 17:26:24 ID:???
ieの場合は、エラーページの簡易表示オプションがあるから気をつけれ
自前のページを挿しても、ieが違う見た目に置き換えやがるんだ
409nobodyさん:2010/01/26(火) 17:37:58 ID:???
>>392
これってAJAXでやつ必要性がよくわからない。
JavaScriptだけで完結するような内容だね。
410nobodyさん:2010/01/26(火) 17:44:25 ID:ZX9klyVT
>409
たしかに、javaだけならすぐできるんだけど、それを
AJAXでの書き方がホントわからなぃww

もぉ2時間これで悩んでる(;´Д`)
411nobodyさん:2010/01/26(火) 17:47:18 ID:???
>>392
<img src="neko.jpg" id="hoge">
<button onclick="hoge.src='inu.jpg';">click</button>

ネコ,犬をダウンロードってのは用意されたものを使えという意味か
Ajaxで画像とってこいといってるのかわからないけど
(面白い画像作ったやつが優勝っていうぐらいだから後者か?)
仮に後者でそれが課題だから回りくどい工程を取るとしても
それだけの結果を得るためにわざわざAjaxを使うというのが解せない
リクエスト減らすために描画領域に入ったらAjaxでとってくるっていうのならわかるけど
まぁ何が言いたいかというと課題が悪すぎるね
釣れたとか言わないでくれよな
412nobodyさん:2010/01/26(火) 17:47:37 ID:???
ぬこの絵を表示させてボタンを押すといぬになるまではできるのか?
413nobodyさん:2010/01/26(火) 17:50:40 ID:???
ajaxでウェブから面白い絵を拾ってくるとかか?
google画像検索で「おもしろい顔 犬」で検索して結果から表示なんてやったり
414nobodyさん:2010/01/26(火) 17:51:58 ID:???
>>410
JavaScriptとJavaはまったく別物だぞ。
それともJSP or Javaアプレットの方のことを君は書いているのか?
415nobodyさん:2010/01/26(火) 17:56:07 ID:???
クリックすると「ワンッ」という吹き出しが表示され、尻尾が白くなる
を提出する奴が二人はいる。
416nobodyさん:2010/01/26(火) 18:01:22 ID:???
そもそも>>392の文面だけだと何をAjax通信するのかさえわからないよな
問題出したやつ頭おかしいんじゃね
知ってる言葉並べただけちゃうんかと
417nobodyさん:2010/01/26(火) 18:02:45 ID:???
もはやPHP関係ないな
418nobodyさん:2010/01/26(火) 18:03:47 ID:???
俺も問題自体が悪いと思った
419nobodyさん:2010/01/26(火) 18:08:02 ID:???
ネット見ていてもアホな奴になってくるとjQuery使っている物はすべてAjaxって思い込んでいる奴らいるからな。
jQuery内に一つの機能としてAjax向けのライブラリがあるだけなのにね。
420nobodyさん:2010/01/26(火) 18:22:30 ID:???
>>410
何故、PHPのくだスレに持ち込んだのかを説明しろ
421nobodyさん:2010/01/26(火) 19:03:14 ID:???
>>420
質問者逃げたか?
422390:2010/01/26(火) 19:50:45 ID:???
>>391
get_class()を乗っ取って、内部で小文字に変換してから返せばいいってことか?
組み込み関数をオーバーライドするのはやったことないけど、ちょっとやってみるわ。
423nobodyさん:2010/01/26(火) 20:46:08 ID:81MG/9ia
登録情報の管理などをするとして、テキストで管理するのとDBで管理するのでは何が違ってくるのでしょうか?
双方のメリットデメリットなどを教えてください
424nobodyさん:2010/01/26(火) 21:07:24 ID:???
デメリットは技術で何とか成るもの
自分がメリットを感じる方を使えばいい
425nobodyさん:2010/01/26(火) 21:12:19 ID:???
テキスト設定ファイルならDBの知識がなくても使える
DBを利用すれば検索が早いがSQLを覚える必要がある

両方熟知しているなら、用途に合わせて好きな方を使いやがれでFA
426nobodyさん:2010/01/26(火) 21:12:43 ID:???
>>423
メリット
・ファイル
データの取り回しが楽
・DB
登録/更新/削除さらには検索が楽

デメリット
・ファイル
DBの場合DB本体側で処理するのでインタプリタとしてPHPがからまないけど
ファイルの場合検索など一端PHPの側に取り込んでインタプリタで処理されるから効率は悪い。
・DB
管理がめんどくさい
時々最適化などの保守が必要
427423:2010/01/26(火) 21:34:50 ID:81MG/9ia
>>424-426
詳しい解説ありがとうございました。
428nobodyさん:2010/01/26(火) 22:10:44 ID:???
いいってことよ
429nobodyさん:2010/01/27(水) 00:07:18 ID:???
>>422をスルーするのかお前らw
430nobodyさん:2010/01/27(水) 00:26:16 ID:???
>>429
get_glass()の戻り値を小文字にするために、もしかしたらphp本体のソースを解析して、
パッチを当てているかもしれない人に、

「strtolower()使えばいいじゃん」

なんて、言える訳ないでしょ。察してよ。
431nobodyさん:2010/01/27(水) 03:46:24 ID:TEjoYy4L
スレ違いだったらごめんなさい。。

例えばですが、
自分の住まいの最寄の美容室を検索して並べて表示するというような事をするのはどのような知識が必要でしょうか?
検索方法はチェックボックス(複数選択可)、表示される検索結果は美容室の店名、住所、電話番号程度のものです。
(これは簡単なテーブルで作ろうと思っています)


idセッションとかデータベースというものを使うのでしょうか・・・?
データを取得して表示までの流れを教えて頂けたらと思います。。
432nobodyさん:2010/01/27(水) 04:20:06 ID:???
課題は自分で
433nobodyさん:2010/01/27(水) 04:53:08 ID:???
>>431
必要なもの
・MySQLやSQLiteなどのRDBMSと
PHPやPerlなどのサーバサイド言語がインストールされているサーバー

必要な知識
・SQL(データベース問い合わせ言語)とデーターベースの基礎知識
・PHPやPerlなどのサーバサイド言語(以降PHPに絞る)
・HTML

流れ
・まずは美容室の最新データーを蓄積する(INSERT文、UPDATE文)
→PHPのデータベース関数を用いるかRDBMSの管理ツールを使って登録・更新する

・検索フォームから送られてきたデータでデーターベースから検索する(SELECT文)
→PHPのデータベース関数を使ってデータベースから該当データを取り出す
→取り出したデーターを整形してHTMLに出力する
434nobodyさん:2010/01/27(水) 09:59:57 ID:G51s6vJh
正規表現でサイズが正しいか調べたいと思います。

$size = "400x300";
if(ereg("([0-9]{1,3})x([0-9]{1,3})",$size)){
echo 1;
}else{
echo 0;
}

というコードを書いたのですが、$sizeが4000x300でもtrueになります。
どういう指定方法をすればよいのでしょうか?アドバイスお願いします。
435nobodyさん:2010/01/27(水) 10:10:29 ID:???
何をもってtrueなのかも書くようにした方がいいよ。
で、それ2つめは 000x300 でマッチしてるだろ
436nobodyさん:2010/01/27(水) 10:14:42 ID:???
>>430
いや、パッチなんてあてなくても改造は出来るよ。
とりあえずget_class()の乗っ取りには成功しました。
ほんとPHPはバージョン間で互換性無くていやになるね。
437434:2010/01/27(水) 10:14:46 ID:G51s6vJh
何をもって→「$sizeの書式が完全一致」です。
それで2行目に指摘していただいた事でわかりました。
ereg("^([0-9]{1,3})x([0-9]{1,3})$",$size)
のようにすれば良いんですね。大変参考になりました。
438nobodyさん:2010/01/27(水) 10:37:12 ID:???
>>434
eregは将来消される関数だからpreg_matchを使うかmb_eregを使おうぜ
439nobodyさん:2010/01/27(水) 11:00:37 ID:???
>>436
まあできたんならいいけど
echo strtolower(get_class ($this));
でできるんだぜ
440nobodyさん:2010/01/27(水) 11:06:12 ID:???
ソースを置換ってか。
441nobodyさん:2010/01/27(水) 11:36:59 ID:TEjoYy4L
>>432
>>433
返事おそくなりました。昨日はありがとうございました。

おかげで仕組みややるべき事、調べることなどがわかりました。

442nobodyさん:2010/01/27(水) 13:40:47 ID:/HDfkq3h
WindowsXPでPHP5.2.12,MySQL5.1を使用してます
環境変数にphpを登録するとコマンドラインでどのフォルダからでも楽にphpが使用できるのですが
ブラウザでMySQLを利用するスクリプトを使うとApacheが異常終了します
CLIも使えてApacheのモジュールとしてブラウザからも利用する方法はありませんか?
443nobodyさん:2010/01/27(水) 13:53:23 ID:???
はい?異常終了するのは環境変数に追加したことが原因なの?
444nobodyさん:2010/01/27(水) 14:02:35 ID:???
>>440
PHPはすでにある関数を置き換えることができる
445nobodyさん:2010/01/27(水) 14:17:58 ID:???
>>444
俺に言ってどうするw
446nobodyさん:2010/01/27(水) 14:30:05 ID:???
>>445
無抵抗なソースを痴漢する
447nobodyさん:2010/01/27(水) 14:30:36 ID:???
異常終了する場合はまずログを見ろ
448nobodyさん:2010/01/27(水) 14:42:21 ID:???
>>443
phpにパスを登録するとlibmysql.dllが関係してるみたいです
449nobodyさん:2010/01/27(水) 14:46:50 ID:???
>>448
どういう風に?
450nobodyさん:2010/01/27(水) 14:48:00 ID:???
PHPが悪いんじゃなくてそのlibmysql.dllが悪いんでしょ?
じゃそれを削除するか場所を変えるかおかしくない奴拾ってくるかすればいいのでは?
451nobodyさん:2010/01/27(水) 14:50:56 ID:???
>環境変数にphpを登録すると
原因がわかっているなら、登録を削除すれば解決するんでね?
楽するよりもエラーを吐いて動かない方が重症だろ

>マンドラインでどのフォルダからでも楽にphpが使用できるのですが
PHPをインストールしているディレクトリのショートカットを、デスクトップに貼っとけ
452nobodyさん:2010/01/27(水) 14:53:53 ID:???
現状はCLIでの利便性を捨ててパスは削除しています
補足ですが、mysql5.1とphp5.2で動かない症状が出た場合、
mysqlに入っているlibmysql.dllをphpに入っているlibmysql.dllで上書きすると動きます
453nobodyさん:2010/01/27(水) 14:54:43 ID:???
>>450
あなたバカでしょ
454nobodyさん:2010/01/27(水) 15:10:59 ID:???
それは単にバージョンコンフリじゃないか・・・
エラーを吐くDLL名でファイル検索して、バージョン違いをゴミ箱入れれ
455nobodyさん:2010/01/27(水) 15:22:10 ID:???
パスを通す意味がわからない人はコマンドラインを使うことは難しい
456nobodyさん:2010/01/27(水) 15:28:38 ID:???
括弧つけなくちゃw
(コマンドラインを使うことは)
457nobodyさん:2010/01/27(水) 16:58:23 ID:???
昼間は厨房しかいないから残念だったな
夜になったら質問してればいいのに
458nobodyさん:2010/01/27(水) 18:32:55 ID:J0bFMzRr
<html><body>
ID ちょめちょめ PASS にゃーん
ID でっていう PASS すぐやる夫
・・・
</body></html>
というhtmlファイルから、各IDとPASS抜き出すのはどうすればいいんですか?

$ID1 = "ちょめちょめ";
$PASS1 ="にゃーん";
$ID2 = "でっていう";
$PASS2 ="すぐやる夫";

という形にしたいです。宜しくお願いします。
459nobodyさん:2010/01/27(水) 18:38:11 ID:???
splitとevalあたり?
ハッシュ使った方がいい気がするが
460nobodyさん:2010/01/27(水) 18:40:11 ID:???
>>453
なんでだよw
461nobodyさん:2010/01/27(水) 18:47:58 ID:???
まずhtmlファイルを生成しているDBに接続します
462nobodyさん:2010/01/27(水) 18:52:04 ID:???
次にIDとPASSを取得するSQL文を投げます
463nobodyさん:2010/01/27(水) 18:52:35 ID:???
なんということでしょう
464nobodyさん:2010/01/27(水) 18:53:49 ID:???
最後に下記の通りに実行します
$w=<<<_YARUO_
$ID1 = "ちょめちょめ";
$PASS1 ="にゃーん";
$ID2 = "でっていう";
$PASS2 ="すぐやる夫";
_YARUO_;
echo $w;
465nobodyさん:2010/01/27(水) 18:58:12 ID:???
ヒアドキュメントでその書き方は駄目だろw
466nobodyさん:2010/01/27(水) 19:36:50 ID:J0bFMzRr
explode関数でどうにかなりそうな気がします。
ありがとうございます。

他にいい抜き出し方があったらお願いします。
467nobodyさん:2010/01/27(水) 19:55:59 ID:???
あるけど、それで回答するとまたかって言うやつがいるので
468nobodyさん:2010/01/27(水) 20:17:23 ID:???
explodeでできねえよカス
469nobodyさん:2010/01/27(水) 21:08:43 ID:J0bFMzRr
$file = file_get_contents('kitaaaaaaaaaaaa.html');
$get = explode(" ",$file);
$ID1 = $get[1];
$PASS1 = $get[3];
print $ID1.$PASS1;

で一応表示されたんですが、これではダメですか?
あとこれを行数だけ繰り返してID2,PASS2と振るにはどうすればいいですか?
宜しくお願いします。
470nobodyさん:2010/01/27(水) 21:11:59 ID:???
配列使え
471nobodyさん:2010/01/27(水) 21:38:36 ID:???
>>469
嘘つけ
適当に書いたものを貼るな
472nobodyさん:2010/01/27(水) 21:41:05 ID:J0bFMzRr
>>470
ありがとうございます。
arrayを使えばいいですか?

行数の分だけ繰り返すところと、置き換えの文字列を変更する作業が
手こずっています。
473nobodyさん:2010/01/27(水) 22:42:51 ID:???
>>471
htmlファイルになってますが、中身はテキストのみなんです。
474nobodyさん:2010/01/27(水) 23:38:17 ID:???
ぽか〜ん
475nobodyさん:2010/01/28(木) 00:02:48 ID:Y7CMbuAK
ID1 PASS1
ID2 PASS2
という感じ末尾を変更するやり方を教えてください。

>>474
すいません。
476nobodyさん:2010/01/28(木) 04:54:47 ID:???
うむ、だいぶ下らなくなってきたな。質問も回答も。
477nobodyさん:2010/01/28(木) 09:41:19 ID:???
>>475
preg_match_allを使います
explodeではできないので覚えとけよカス
478nobodyさん:2010/01/28(木) 10:51:17 ID:???
wikiを作りたいのですが、どのような仕組みで作るのが楽でしょうか?
ファイルにデータを貯めるよりもデータベースに貯める方が楽でしょうか?
479nobodyさん:2010/01/28(木) 11:10:51 ID:???
はい
480nobodyさん:2010/01/28(木) 12:24:33 ID:???
とある文字列を半角カンマ、半角スペース、全角スペースで区切って配列に入れるにはどうしたらいいでしょうか?
481480:2010/01/28(木) 12:24:56 ID:WZ4SPb0m
ID出すの忘れてました
482nobodyさん:2010/01/28(木) 12:34:11 ID:???
print_r ( preg_split("/[ , ]+/", "a b c,de,f g,h"));  //[半角スペース,全角スペース]
483nobodyさん:2010/01/28(木) 12:40:32 ID:???
うわっ
484nobodyさん:2010/01/28(木) 12:44:46 ID:???
>>482
ありがとうございました
preg_splitがあったのを忘れていました
485nobodyさん:2010/01/28(木) 18:33:03 ID:???
>PHPコードは「<?php」という開始タグから始まります。
>終了タグは「?>」です。HTMLにPHPコードを埋める際は終了タグを使いますが、
>ライブラリのようにPHPコードのみを記述する際は終了タグを省くことが慣例となっています。

というのをみて(ブログ記事の一部)、
-- test.php

<?php
〜〜
?>
改行
改行

--
みたいな場合がかなりやばい、ということはわかったのですが、
え?それだけ?で?
な気持ちです。たしかに改行改行がダメなことは初めて気付かされましたが、
2つ以上の改行に注意するのと、?>を記述しないという注意と
そんなに言うほど変わりないと思うのです。
しかしいろいろなところで、(phpコードのみの場合は)絶対?>を取り除きましょう!!
みたいなノリについていけないというか・・実際やってる人なんているんでしょうか・・
486nobodyさん:2010/01/28(木) 18:36:33 ID:???
まずスレタイと>>1を読みましょう
487485:2010/01/28(木) 18:37:12 ID:Wx5X+hZm
すいませんでした
よろしくお願いします
488485:2010/01/28(木) 18:38:57 ID:6pvkIKgb
久しぶりで完全に忘れていました
すみません id
489nobodyさん:2010/01/28(木) 18:41:07 ID:???
どっちだよw
490485:2010/01/28(木) 20:28:59 ID:DXCM0MC8
私です、私以外は全部偽物です
491nobodyさん:2010/01/28(木) 20:32:21 ID:???
?>は意識して打たないと入らないからな
492nobodyさん:2010/01/28(木) 21:53:49 ID:CVOGs3cZ
【OS名】Debian Lenny 【PHPのバージョン】php5.2.6  【質問内容】以下のコードが期待した動作をしません。
<?php
// メニュー用画像リスト
$menuimg["login"] = "<IMG src=\"./img/top.login.gif\" width=\"100\" height=\"50\" alt=\"ログイン\">";
$menuimg["regist"] = "<IMG src=\"./img/top.regist.gif\" width=\"100\" height=\"50\" alt=\"新規登録\">";
$menuimg["mail"] = "<IMG src=\"./img/top.mail.gif\" width=\"100\" height=\"50\" alt=\"管理人へメール\">";
$menuimg["osaifu"] = "<IMG src=\"./img/top.osaifu.gif\" width=\"100\" height=\"50\" alt=\"######\">";
// メニュー用URLリスト
$menuurl["login"] = "./constr.htm";
$menuurl["regist"] = "./constr.htm";
$menuurl["mail"] = "mailto:############@yahoo.co.jp?subject=【サイト名】問い合わせ";
$menuurl["osaifu"] = "http://######.com/#####/";
// タグ生成関数の定義
function writeout($name){
print "<A href=\"".$menuurl[$name]."\">";
print $menuimg[$name]."</A>";
}
// タグ発行
writeout("login");
writeout("regist");
print "<BR>";
writeout("mail");
writeout("osaifu");
?>
writeoutの引数に書かれた文字を連想配列名として出力したいのです。どうかお力をお貸しください。
493nobodyさん:2010/01/28(木) 22:06:22 ID:???
>>492
writeoutの中でvar_dump($menuurl);
あと期待する動作と実際の動作を書かないと片手落ちでは?次回からね。
494nobodyさん:2010/01/28(木) 22:18:48 ID:2KkwWo9K
テキストファイルのしゅうたんから10バイト前の位置に追記するにはどうすればいいですか
495492:2010/01/28(木) 22:23:49 ID:CVOGs3cZ
>>493
var_dump($menuurl);
の結果は以下のようになりました。
Notice: Undefined variable: menuurl in /var/www/xxx/xxx.php on line 29

writeout(login);の結果
期待した動作:
<A href="./constr.htm"><IMG src="./img/top.login.gif" width="100" height="50" alt="ログイン"></A>

に対し、実際の動作が
<A href=""></A>

になります
496nobodyさん:2010/01/28(木) 22:41:29 ID:???
>>495
>あと期待する動作と実際の動作を書かないと片手落ちでは?次回からね。
497nobodyさん:2010/01/28(木) 22:41:45 ID:???
これを実行しても何も表示されないのと同じ理由
<?php
$str="test";

function write() {
echo $str;
}
write();
?>
498nobodyさん:2010/01/28(木) 22:45:09 ID:???
ごめんつい反射的に冷たいレスをしてしまった。今では反省している。
・var_dumpの結果を見て自分で判断してほしかった。
・次回からねというのは今回の質問の意図は分かるので次レスではなく次質問から(=次レスでいちいち説明すんじゃねーぞ)という意味だった。
で結論としては関数内はスコープが違うので引数で渡してあげれば良いです。
499492:2010/01/28(木) 22:56:02 ID:CVOGs3cZ
あっ、スコープですね。
>>497
global $menuurl, $menuimg;
を追加することで期待した動作をしました。
ありがとうございました。
500492:2010/01/28(木) 23:07:10 ID:CVOGs3cZ
>>498
いろいろとすみません。
こんな初心者丸出しの私に丁寧にご教示いただき、ありがとうございました。
おかげさまで無事に解決しました。
501nobodyさん:2010/01/29(金) 00:45:00 ID:+kLxfVXG
こんばんわ。

今回、ある相対パスで指定されているアドレスを絶対パスに変換したいと思い以下のように書いたのですが、

※$Srcは相対パスの場合は../pを必ず含む。$Srcが相対パスではない事もある。
$AbsSrc = ereg_replace("../p","http://絶対パス/p",$Src);

http://piza/〜」 というアドレスも一緒に変換されてしまいました。
相対パスを絶対パスにする良い方法があれば教えてほしいのですが。
ちなみに、realpath()は使ってみましたが、元々$Srcは文字列から引っ張ってきているので、
絶対パスを知る方法がなく上手くいきませんでした。

よろしくお願いします。
502501:2010/01/29(金) 01:08:31 ID:+kLxfVXG
同様の問題は結構起きてるみたいですね。
他サイトを見ながらもう一度トライしてみます。
スレ汚し失礼しました。
503nobodyさん:2010/01/29(金) 01:13:34 ID:???
ん、いいのか
504nobodyさん:2010/01/29(金) 04:20:40 ID:???
基本的な質問ですいません。

<script type="text/javascript">
function zzz() {
setTimeout('aaa1()',1000);
setTimeout('aaa2()',2000);
}
</SCRIPT>

のsettimeoutの部分を、txtファイルの行数分だけ
count関数を使って入れたいのですが、

$count=0;
$res=fopen($logfile,"r");
while(!feof($res)){
$str=fgets($res);
$count++;
$count1000 = $count*1000;
$sall = "setTimeout('aaa$count()',$count1000);}";
}

とすると

<script type="text/javascript">
function zzz() {setTimeout('aaa2()',2000);
}</SCRIPT>

になります。希望の動作になるにはどうしたらいいか宜しくお願い致します。
505nobodyさん:2010/01/29(金) 07:32:35 ID:???
>>504
echo $sall;
をwhileの中の最後尾に入れるのはどうですか?
506nobodyさん:2010/01/29(金) 10:09:40 ID:???
変数はダブルクオーテーションの中でも、おっぱい括弧でくくれば使えますが
$hoge="aaa";
$kage="bbb{$hoge}ccc";//$kage=bbbaaaccc

定数はおっぱい括弧でくくっても展開されないようです。
define("mage","mmm");
$kage="bbb{mage}ccc";//$kage≠bbbmmmccc
勿論
$kage="bbb".mage."ccc";とすれば望んだ値が入りますが
出来れば変数と同じく、ダブルクオーテーションを増やさずに参照したいです。
507nobodyさん:2010/01/29(金) 10:28:55 ID:???
508nobodyさん:2010/01/29(金) 10:29:54 ID:???
僕は展開してほしくないです。
質問なら質問らしく、独り言ならチラシの裏にお願い致します。
509nobodyさん:2010/01/29(金) 10:53:33 ID:???
ob_get_levelのデフォルトの数値が1の時と0の時があるんですが、
これってどこかで設定するんでしょうか?

ローカルでやってると最初のフォルダの頭で実行すると0なんですが、
サーバーで実行させると1になってます。
510nobodyさん:2010/01/29(金) 10:56:06 ID:???
511509:2010/01/29(金) 18:59:02 ID:xrxVmrZ0
失敬。
最初のフォルダじゃなくて、スクリプトファイルでした。
512nobodyさん:2010/01/29(金) 19:47:29 ID:56kcplo8
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

文字化けの件について教えてください。

データベースから抽出したデータはきちんと書き出されますが
htmlの<? ?>で囲ったところ以外の全部 (ページタイトルも) が ????? になってしまいます。

mysqlでもhtmlのmetaタグ内でもutf-8を指定してあります。
htmlファイル自体の文字コードもutf-8です。

なにか解決の手がかりになるようなことをご存知でしたらお願いします。
513nobodyさん:2010/01/29(金) 20:50:13 ID:???
>>512
ヘッダに文字コード指定するといいのでは?
header("Content-type: text/html; charset=utf-8");
514nobodyさん:2010/01/29(金) 21:50:52 ID:JATQlPdV
preg_matchが正しく機能してくれません。どうすれば良いか教えてください。
フォームからテキストを受け取って、$text_dataに入れます。それをチェックしてマッチしなかったら、
$error文を表示するのですが、123、yes、その他日本語、何を入れても$error文が表示されてしまいます。
理由が解りません。教えて下さい。お願いします。

$text_data = $_POST['person'];
if (!preg_match("/^([一-龠][ァ-ヶー][ぁ-ん]){1,8}$/uD",$text_data)){
echo $error = '漢字、カタカナ、ひらがな以外の文字が使われてます。';
}

WinXP
PHP:5.2.6
Apache:2.2
MySQL:5.1
文字コードはUTF-8で保存してます。
515512:2010/01/29(金) 22:19:29 ID:56kcplo8
>>513
ありがとうございます  だめでした
極限まで短くしても

<?
header("Content-type: text/html; charset=UTF-8");
?>
<HTML>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">

<title>ねこ</title>
<BODY>

いぬ
</BODY>
</HTML>

いぬとねこが??になってしまいました
516nobodyさん:2010/01/29(金) 22:19:59 ID:???
>>514
'一ァぁ' を POST してみればわかる
517nobodyさん:2010/01/29(金) 22:23:25 ID:???
>>515
mbstring.internal_encoding
mbstring.http_output
518nobodyさん:2010/01/29(金) 22:31:37 ID:???
>>514
>>1

正規表現の書き方がまずいのでは?
あまり使ったことがないので詳しくはわからんが
preg_match('/[^一-龠ァ-ヶーぁ-ん$]{1,8}/uD', $text_data)
こんな感じだと思う。
519nobodyさん:2010/01/29(金) 22:37:51 ID:cGTMydf+
1)ファイルの最後の文字が指定された文字だったら削除

2)ファイルの行を行番号を書いてボタンで削除

はどうすればいいですか?宜しくお願い致します。


2)について
$csv_file = file("test.csv");
print "<input name=\"sakujo\" type=\"text\" size=\"3\" maxlength=\"3\">番を<input type=\"submit\" value=\"削除\" />";
$sakujo = $_POST['sakujo'];
unset($csv_file[$sakujo]);
$fp = fopen("test.csv", "w");
foreach ($csv_file as $line) {
fwrite($fp, $line);
}

とすると、1行目を削除するのが0番を削除と指定することになります。
$sakujo = ++$_POST['sakujo'];
また
$sakujo = ++$sakujo;
などに指定すると、ファイル読み込みと同時に勝手に2行目を削除します。
520518:2010/01/29(金) 22:42:05 ID:???
>>518も間違ってるので無視してください
perl互換だったな…
521nobodyさん:2010/01/29(金) 22:42:48 ID:???
>>519
POSTしてない状態では$_POST['sakujo']はnullだからunsetされてないだけでしょう
ちゃんと$_POSTで表示処理と削除処理を分けて、番号を1増やせばいいかと
522nobodyさん:2010/01/29(金) 23:17:40 ID:???
>>521
回答ありがとうございます。
$sakujo = $_POST['sakujo']; のあとに
$sakujo = ++$sakujo;(若しくは$sakujo++,$sakujo+1等)
としても、2行目が勝手に削除されてしまいます。
523nobodyさん:2010/01/29(金) 23:21:11 ID:cGTMydf+
連投、ID出し忘れ申し訳ありません。

$_POST['sakujo'] = ++$_POST['sakujo'];
$sakujo = $_POST['sakujo'];
も試しましたが、これも自動的に削除されます。
宜しくお願いします。
524514:2010/01/29(金) 23:22:33 ID:JATQlPdV
>>516
ありがとうございました。解決しました。

>>520
書き方を指摘して貰えて助かりました。
それをヒントに解決できました。ありがとうございました。
525nobodyさん:2010/01/30(土) 00:49:04 ID:???
>>523
>ちゃんと$_POSTで表示処理と削除処理を分けて
526nobodyさん:2010/01/30(土) 05:42:04 ID:obVWCfxQ
ファイル名test.php
<?php
class Test{
function hoge(){
return 'test';
}
}
?>

というファイルがあったときに、test.phpにアクセスできないようにしてもいいのですが、
あえて何もせずtest.phpにアクセスされた場合について質問です。
(ただし、test.phpのソースをローカルにダウンロードすることはできない)

例えば、http://〜〜/test.phpな感じでブラウザからアクセスがあった場合、
これだけではインスタンスも生成していないし何も表示されることはないので、
特に危険はないかなと思ったのですが自分なりに考えたところ、
少なくともそのファイルの存在がわかってしまうし、
ファイル名がサイト独特のものだと他にも似たようなファイルがあるなと予測されてしまうし、
くらいを思いつきました。他に何か危険は潜んでいませんでしょうかよろしくおねがいします。
527nobodyさん:2010/01/30(土) 06:11:52 ID:qAKPfLy/
>>525
ありがとうございます。表示処理 削除処理 PHPでぐぐっても出てきません。
初心者ですいません。
528nobodyさん:2010/01/30(土) 06:12:03 ID:???
>>526
なんでもいいから .php以外の名前にしといてアクセス禁止しとけばよくね?
529nobodyさん:2010/01/30(土) 06:13:29 ID:???
フレームワークを使いたくないけど、<select>や<table>書いてるときは
フレームワーク使いたくなってしまうよな
530nobodyさん:2010/01/30(土) 07:30:56 ID:???
>>527
ただフォームを表示するだけのページと実際に削除を行うページをif文で分けるって事だと思う。

$sakujo = $_POST['sakujo'];
if(ereg("^[0-9]{1,3}$", $sakujo)){
//実際に削除を行う
}else{
//削除フォームを表示する
}
531nobodyさん:2010/01/30(土) 07:35:16 ID:???
>>526
呼び出し元にフラグ立てて、test.phpで条件分岐させるってのはどうだい?

if(isset(フラグ)){
処理する
}else{
header(HTTP 404);
}
532nobodyさん:2010/01/30(土) 09:03:20 ID:qAKPfLy/
>>530
回答ありがとうございます。そのままコピペしてみたところ
フォーム部分が消えてしまいました。
http://uploader.sakura.ne.jp/src/up3233.jpg
http://uploader.sakura.ne.jp/src/up3234.jpg

[0-9]{1,3}$を$csv_fileに変えてみたんですが、消えないようです。
533nobodyさん:2010/01/30(土) 12:17:31 ID:???
正規表現とかwww
issetとかでいいじゃんw
534nobodyさん:2010/01/30(土) 13:34:51 ID:???
>>532
$csv_file = file("test.csv");
print "<input name=\"sakujo\" type=\"text\" size=\"3\" maxlength=\"3\">番を<input type=\"submit\" value=\"削除\" />";
if (isset($_POST['sakujo'])) {
if (!is_numeric($_POST['sakujo'])) {
echo "数字ぢゃないがな( ゚Д゚)ヴォケ!!";
} else {
$sakujo = $_POST['sakujo']++;
if (isset($csv_file[$sakujo])) {
unset($csv_file[$sakujo]);
$fp = fopen("test.csv", "w");
foreach ($csv_file as $line) {
fwrite($fp, $line);
}
} else {
echo "行が無いぞ(#゚Д゚)ゴルァ!!";
}
}
}
535nobodyさん:2010/01/30(土) 13:37:08 ID:???
>>532
それとファイルの「1行目」を削除する場合に"1"を入力する場合は
fileで読んだ配列の[0]が該当行なので
$sakujo = $_POST['sakujo']--; デクリね
536nobodyさん:2010/01/30(土) 13:51:46 ID:???
なんでis_numericの否定が先?
537nobodyさん:2010/01/30(土) 14:45:07 ID:yMr7jIEh
【PHPのバージョン】php5.2.12
【連携ソフトウェア】mysql
【質問内容】 データベースからレコードをプルダウンで取り出したい
<form method="post" action="test.php">
<table>
<tr><td>地域</td><td>
<input type="text" name="pref" value="<?php print(htmlspecialchars($_POST['pref'])); ?>" /></td></tr>
<tr><td>性別</td><td><input type="text" name="sex" value="<?php print(htmlspecialchars($_POST['sex'])); ?>"/></td></tr>
</table><input type="submit" value="検索" /></form>
<?php
中略
// プリペアド・ステートメントの準備
$sql = 'select * from address where pref = ? and sex = ?';
$type = array('text', 'text');
$sth = $mdb2->prepare($sql, $type);
// プリペアド・ステートメントの実行
$data = array($_POST['pref'], $_POST['sex']);
$res = $sth->execute($data);
if (PEAR::isError($res)) { exit('selectに失敗しました');}
538nobodyさん:2010/01/30(土) 14:45:51 ID:yMr7jIEh
// レコードの内容を表示
print("<table border=\"1\">\n");
print("<tr>");
print("<th>ニックネーム</th><th>地域</th><th>コメント</th><th>詳細</th>");
print("</tr>");
while ($data = $res->fetchRow()) {
print("<tr>\n");
print("<td>" . $data['name'] . "</td>");
print("<td>" . $data['pref'] . "</td>");
print("<td>" . $data['comment'] . "</td>");
print("<td>" . $data['mypage'] . "</td>");
print("</tr>\n");}
print("</table>\n");
?>
現在このようにテキストボックスに文字を入力して該当すれば出力
させるようにしているのですが、これをプルダウンで選択して、該当すれば
出力という用に変更したく試行錯誤しているのですが・・・
全く動かせる気配がありません。どなたか力を貸してください、よろしくお願いします。
539nobodyさん:2010/01/30(土) 14:53:20 ID:???
PHPではなくHTMLの問題では?
<select name="sex">
<option value="1">男</option>
<option value="2">女</option>
</select>
でいいかと
540nobodyさん:2010/01/30(土) 16:28:25 ID:yMr7jIEh
>>539
ありがとうございます
でもそれだとプルダウンにはなっても検索が出来ない状態です
541nobodyさん:2010/01/30(土) 16:32:41 ID:???
フォームに入れてるの?
542nobodyさん:2010/01/30(土) 17:54:33 ID:yMr7jIEh
>>541
ありがとうございます
>>539さんのを元に自己解決しました^^
543nobodyさん:2010/01/30(土) 20:39:54 ID:qAKPfLy/
>>534-535
(´;ω;`)やっとできました。
if (isset($csv_file[--$sakujo]))
にしたら動きました。ありがとうございます。
544nobodyさん:2010/01/30(土) 21:56:00 ID:???
ナにつくろっかなー
最近ガンブラーっての多いから怖いなー
しばらく辞めとくね
545nobodyさん:2010/01/31(日) 00:03:50 ID:A4bjb08C
if ($_SERVER["QUERY_STRING"] == "test") {
}
でページ分けしながらサイトを作成しているのですがあまり書きすぎると容量が多くなってしまうじゃないですか。
そこで考えたのですが文字だけならテキストファイルにぶち込んで外部呼び出しすれば少しはマシになるかななんて
思ったのですが何か良い方法があれば教えて下さい。
546nobodyさん:2010/01/31(日) 00:10:58 ID:???
テキストファイルにぶち込んで外部呼び出しって?
547nobodyさん:2010/01/31(日) 00:12:40 ID:A4bjb08C
>>546
文字数の多いページはtest.txtに分けて呼び出せないかなと思いまして・・・。
548nobodyさん:2010/01/31(日) 00:24:51 ID:H20xeiLO
$lines = file($logfile);
if ($_POST['message'] && $_POST['name'] && $_POST['URLID']){
$message = $_POST['message'];
$name = $_POST['name'];
$message = "$name $message<br>\n";
//$cnt = count($lines);
$fp = @fopen($logfile , "w");
fputs ($fp, $message);
for($i = 0; $i < $logmax; $i++)
fputs($fp, $lines[$i]);
fclose ($fp);
echo $message;
}
for($i = 0; $i <= $max; $i++)
echo $lines[$i];

のとき、$lines[$i]の前に行番号を振るにはどうしたらいいでしょうか?
count関数を使ってみましたが、何も入っていない行として$max
の値まで出力してしまいます。
宜しくお願いしますm__m
549nobodyさん:2010/01/31(日) 00:41:20 ID:???
>>547
いいと思うよ。何が分からんの?

>>548
よく分からんがecho $i . $lines[$i];ということ?
550nobodyさん:2010/01/31(日) 00:59:21 ID:A4bjb08C
>>549
いやその方法しかないのかーっと思いまして。
それとも300行ぐらいでもphpって重くなったりしませんかね?
551nobodyさん:2010/01/31(日) 01:40:29 ID:???
>>550
処理によってすごく重い時あれば軽い時もある
552nobodyさん:2010/01/31(日) 02:20:58 ID:H20xeiLO
>>549
echo $i . $lines[$i];やecho ++$cnt . $lines[$i];
で表示すると、$maxで指定した値まで表示されてしまいます。
553nobodyさん:2010/01/31(日) 02:25:15 ID:???
>>548からの流れ見ても $cnt = count($lines) が使われてるのかどうかとか
$max に何が入ってるのかとかはわからないよ。
554nobodyさん:2010/01/31(日) 03:13:53 ID:???
条件説が
$i <= $max
になってるからじゃ?
$i < $max
にすればおk
555nobodyさん:2010/01/31(日) 03:35:09 ID:H20xeiLO
>>553
説明不足でした。
ログの保存件数を指定しています。$max=200;です。
>>554
同じ動作になりました(´・ω・`)
556nobodyさん:2010/01/31(日) 03:46:20 ID:???
$i < $max
なら$maxまで到達するわけないじゃん
557nobodyさん:2010/01/31(日) 09:22:21 ID:T8yUchyA
GIFアニメーション画像をアニメションを維持したままサムネイル(リサイズ)するにはどうしたら出来ますか
よろしくお願いしますm(__)m
558nobodyさん:2010/01/31(日) 12:31:37 ID:???
>>548
聞きたい部分に絞ろうよ ifの中、意味ないことしかしてないんだし。
if ($lines = file($logfile)){
for($i = 0; $i < count($lines); $i++)
echo $i+1,$lines[$i];
}
559nobodyさん:2010/01/31(日) 15:54:31 ID:???
>>557
ImageMagickが楽
560nobodyさん:2010/01/31(日) 22:15:48 ID:wRz92uaA
【OS名】win XP
【PHPのバージョン】php5.3.1
【連携ソフトウェア】mysql

【質問内容】
コマンドプロンプトをまったく触らずに、MySqlを操作したい。
データベース「テーブル」を作れるPHP関数ってあるの?

速攻で回答願います。
561nobodyさん:2010/01/31(日) 22:18:46 ID:???
あります
562nobodyさん:2010/02/01(月) 00:13:35 ID:???
>>560
あるよ!
563nobodyさん:2010/02/01(月) 00:42:58 ID:1FY3W001
ログイン認証を作成しています。

ログイン後のページを、そのユーザ個人に応じた内容を変えるには
どうすればいいでしょうか?

sessionを使って認証しています。
ID,PASSを入力して進みます。

宜しくおねがいします。
564nobodyさん:2010/02/01(月) 00:58:31 ID:???
そのユーザのIDで情報引っ張ってきて表示すればいいと思うよ
565nobodyさん:2010/02/01(月) 00:58:50 ID:???
データベースなり読み込めばいい
566nobodyさん:2010/02/01(月) 01:50:28 ID:1FY3W001
>>564
是非!教えて下さい!
>>565
DBが使えない鯖なんです(´・(ェ)・`)
567nobodyさん:2010/02/01(月) 01:51:12 ID:6W20Cbxr
                _                           
               ̄   ̄  .                       (;;)・(ェ)・`)
        . '            ヽ                   ;;;、`;。;`ξ
       /                                    //
      /                                  //
           ,-( ヽ         i               /
    /       メ、ヽ ヽ          |               /
          /  ヽl  |        |            /
        /    // /        !          ,
       /∧_∧// /
     / ( ´Д/ / 
    /   γ    /         /
  θ     ヘ    |        /    .;:*
         )   |       ,    .;
         /     |
         /  ヘ   |   /
        i  / |  |  /  /   , '    _/  |l
       /  /   |  |    し',;;、'。.;;/     / ̄/
      /  /.  /  | ;;ヾ#丶;;、;。;` (     /  /   〃,
     (  /   /  l  と と )  て ̄          /
     し'   /__) (_(_,J
568nobodyさん:2010/02/01(月) 01:59:34 ID:???
>>566
課題は自分で
569nobodyさん:2010/02/01(月) 02:00:51 ID:???
>>566
テキストファイルだけでもデータベースもどきは作れる
570nobodyさん:2010/02/01(月) 02:06:28 ID:???
どーせならCSV形式で作ってみたらいいと思う
571nobodyさん:2010/02/01(月) 03:19:28 ID:t1E2Bg3p
php4

<textarea></textarea>にて空欄でPOST受け取った場合、

htmlspecialchars(sqlite_escape_string($_POST[key]));


・Λ8Sというようなデータや、よくわからないバイトが入り込んで、ページに反映させるとレイアウトバグしてしまいます。どうしたら良いのでしょうか?
572nobodyさん:2010/02/01(月) 03:20:33 ID:???
htmlspecialcharsとsqlite_escape_stringを併用するシチュエーションがおかしいと思う
573nobodyさん:2010/02/01(月) 03:31:43 ID:t1E2Bg3p
@page.php
<textarea name="value"><?php echo $value[key];?></textarea>


@database.php

$key = htmlspecialchars(sqlite_escape_string($_POST[key]));
データベース登録 sqlite
header("Location: page.php");


@page.php
<textarea name="value"><?php echo $value[key];?></textarea>

ってな感じなんですが、、、基本的に間違ってますかね?
574nobodyさん:2010/02/01(月) 03:37:23 ID:1FY3W001
>>569
宜しくお願いします。
ログインしたIDによって読み込むファイルを変えるということですか?
575nobodyさん:2010/02/01(月) 03:42:42 ID:t1E2Bg3p
if で 空欄の場合NULLで解決しました。
576nobodyさん:2010/02/01(月) 04:14:38 ID:???
何をしてるんだね
$key = sqlite_escape_string($_POST[key]);

<textarea name="value"><?php echo htmlspecialchars($value[key]);?></textarea>
577nobodyさん:2010/02/01(月) 04:15:43 ID:???
578nobodyさん:2010/02/01(月) 07:29:09 ID:1FY3W001
insert.php?modeで設定を変えるんですか?わかりません
579nobodyさん:2010/02/01(月) 08:47:03 ID:qPPXPqzw
Parse error: syntax error, unexpected $end
が、でるってんて、対処法を聞いたら

<?



<?php
と、すると、治るよ! と言われ、実際、治りました。

<? と <?php は、全く同じと思っていたのですが、違うのですか?
普通に <? で書いてましたが...
580nobodyさん:2010/02/01(月) 10:31:04 ID:???
全然違うわボケ
581nobodyさん:2010/02/01(月) 10:32:38 ID:???
どうちがうのですか
582nobodyさん:2010/02/01(月) 10:41:28 ID:???
>>581

>>287-289

現行スレくらい検索してくれよ。
583nobodyさん:2010/02/01(月) 10:45:11 ID:???
いやです
584560:2010/02/01(月) 11:25:08 ID:czJgSBEV
Create Table関数でいいんだよな?

585nobodyさん:2010/02/01(月) 11:48:31 ID:45qXJ7z2
<?php 推奨
<?   非推奨
586nobodyさん:2010/02/01(月) 11:52:19 ID:???
2ch 非推奨
587nobodyさん:2010/02/01(月) 12:51:14 ID:???
>>584
それ関数じゃなくてSQLのステートメント
588nobodyさん:2010/02/01(月) 13:40:15 ID:4LOdROLi
先生、質問です

if (($i == 10) or ($i == 20) or ($i == 30) or ($i == 40) or ($i == 50)){ echo "ぬるぽ";}

この式をもっとスマートに書くにはどうすればいいですか?
589nobodyさん:2010/02/01(月) 13:41:48 ID:???
switch($i){
  case 10:
  case 20:
  case 30:
  case 40:
  case 50:
    echo "ぬるぽ";
}
590nobodyさん:2010/02/01(月) 13:48:50 ID:???
if ($i % 10 == 0 && (10 <= $i && $i <=50))
591nobodyさん:2010/02/01(月) 13:50:33 ID:???
あなた方in_arrayを忘れてやしませんか
592nobodyさん:2010/02/01(月) 13:57:14 ID:???
こうですか><

if(in_array($i, array(10,20,30,40,50))) echo "ぬるぽ";
593nobodyさん:2010/02/01(月) 13:58:16 ID:???
こうじゃね

$value = array(10,20,30,40,50);
if (in_array($value, $i)) {
echo "ぬるぽ";
}
594nobodyさん:2010/02/01(月) 14:07:13 ID:???
>>589 >>590 >>592
どれが一番早いの?><
595nobodyさん:2010/02/01(月) 14:10:22 ID:???
10万回繰り返して試せ
596nobodyさん:2010/02/01(月) 14:14:08 ID:???
>>590
PHP Parse error: syntax error, unexpected T_STRING, expecting 〜

どうなおせばいいですか><

>>594
pearにBenchmarkってのがあるよ><
597nobodyさん:2010/02/01(月) 14:31:05 ID:???
>>596
カンマをつける
598nobodyさん:2010/02/01(月) 14:37:34 ID:???
結局こういう場合はプログラマーとしてはどれを選ぶんだ?
1、早い
2、ソースが簡潔
3、負荷がかからない

ソースが簡潔なら>>590>>592だと思うし
早さならif分5回書いたほうが早いかもしれない
599nobodyさん:2010/02/01(月) 14:42:16 ID:???
10の時、20の時などに処理を追加する可能性があるなら
>>589 の書き方かな
600nobodyさん:2010/02/01(月) 14:42:41 ID:???
早さを求める時は1
可読性を求める時は2
低負荷を求める時は3
601nobodyさん:2010/02/01(月) 14:43:44 ID:???
>>598
今時は可読性重視だぜ
602nobodyさん:2010/02/01(月) 14:55:55 ID:4LOdROLi
これを採用することにしました><

if (($i > 0) && (($i % 10) == 0)) { echo "ぬるぽ";}
603nobodyさん:2010/02/01(月) 14:59:52 ID:???
条件変わってないか?
604nobodyさん:2010/02/01(月) 14:59:53 ID:???
60の時も通るじゃねぇかw
あと==0は!と同値
605nobodyさん:2010/02/01(月) 15:06:07 ID:???
ということはこれでもいいんですね

if (($i > 0) && !($i % 10)) { echo "ぬるぽ";}

将来的に60、70、80と続くんですが現実的に60あたりにしといたという条件です><
606nobodyさん:2010/02/01(月) 15:09:08 ID:???
だったら値を決め打ちして書くのは良くない
607nobodyさん:2010/02/01(月) 15:13:21 ID:???
テーブル(配列)に値を用意してそこから比較、にしておけば
将来的に数値はファイルでもネットでも渡せるようになる
608nobodyさん:2010/02/01(月) 15:25:49 ID:???
マジかよ糞箱売ってくる
609nobodyさん:2010/02/01(月) 15:27:33 ID:???
じゃあ俺も売ってくる
610nobodyさん:2010/02/01(月) 15:30:30 ID:???
if ( ageSelectCheck($i) ) {
echo "ぬるぽ";
}
611nobodyさん:2010/02/01(月) 15:30:49 ID:???
なんでゲハネタがw
612nobodyさん:2010/02/01(月) 16:47:47 ID:???
(array(1,2,3))[0]みたいな書き方って出来なかったっけ
613nobodyさん:2010/02/01(月) 20:40:52 ID:???
>>612
php -r "echo (array(1,2,3))[0]"

Parse error: syntax error, unexpected '[', expecting ',' or ';' in Command line code on line 1
614nobodyさん:2010/02/02(火) 07:03:31 ID:???
>>598
自分で書けないから動けばなんでもいい。
無料ツールを落として自分で作ったように見せる技術をつける。
615nobodyさん:2010/02/02(火) 13:42:11 ID:???
Eclipse + PDT + ZendDebbuger + XAMMPの環境を作りました。
あるスクリプトをステップ実行はできるのですが、
post先に実行ポイントが変遷してくれません。

どうすればいいでしょうか?
616nobodyさん:2010/02/02(火) 13:52:22 ID:???
スレタイと>>1を読む
617nobodyさん:2010/02/02(火) 22:12:04 ID:???
>>615
リライトが働いてないんじゃないの?
XDEBUGは?
618nobodyさん:2010/02/02(火) 23:57:45 ID:???
>>615
単にデバッガの中で、URL指定してスクリプト実行させただけとか?

変遷の意味がよく分からんが、画面遷移のこと?
リモートデバッグを行えば、画面遷移して、遷移先でブレークしてくれるよ

リモートデバッグについては>>258読んで
619nobodyさん:2010/02/03(水) 16:29:12 ID:f0FSXt8R
どの命令がどれぐらいの時間をかけたか計りたいんだけど、どういう方法があります?
1:測定スタート
2:命令A
3:測定エンド
みたいに1行ずつ上下に測定のコードを書けばいいんですが、
現実的じゃないので、
なんか命令を実行するたびフックできるようなものがあればいいんだけど・・・
620nobodyさん:2010/02/03(水) 16:35:32 ID:???
>>619
PECL :: Package :: xhprof
http://pecl.php.net/package/xhprof

Particletree ≫ PHP Quick Profiler
http://particletree.com/features/php-quick-profiler/
621nobodyさん:2010/02/03(水) 16:50:23 ID:f0FSXt8R
>>620
お〜ありがとうございます。
622nobodyさん:2010/02/03(水) 17:54:38 ID:Rvv12jot
$fp = fopen($url,"r")

でURLを開く時、
http://localhost/では開けないのですが
http://127.0.0.1/では開きます

開発環境はWindowsXPのApache2.0.47ですが、
fopenでlocalhost指定は駄目なのでしょうか?
623nobodyさん:2010/02/03(水) 17:56:26 ID:???
hosts みてみ
ディフェンダーがlocalhostの項目消してるかもよ
624nobodyさん:2010/02/04(木) 11:38:43 ID:JFNwJ/uL
【OS名】fedora12
【PHPのバージョン】php5.3.1
【質問内容】
php5.3.1でphp-eaccelerator-0.9.6-0.2.svn358.fc12.i686は対応してるんでしょうか?
php5.3系はeaccelerator0.96rc1以降対応とのことですが、上はrc1以降のものなのでしょうか?

ab -n 100 -c 5 http://localhost/phpinfo.php
[phpinfo.php]
<?php phpinfo(); ?>
eaccelerator導入するとRequestsPerSecondが2〜3倍になったのですが
同時接続数を増やすと最後まで行かなくなります
topコマンドで見てみるとhttpdだらけになってCPU使用率がほぼ100%になってしまっていました
wget http://localhost/phpinfo.phpでphpの詳細が出ていたのでURLは問題なさそうです

ちなみにeacceleratorはyum -y install php-eacceleratorでインストールしました
625nobodyさん:2010/02/04(木) 17:42:56 ID:afxeUOIn
phpって変数や配列の初期値ってNULLで保障されてるのでしょうか?
それともCみたくどんな値が入ってるか分からないっていう仕様でしょうか?
626nobodyさん:2010/02/04(木) 17:51:08 ID:???
nullだよ
627nobodyさん:2010/02/04(木) 18:20:35 ID:uHwPquPN
session_set_cookie_paramsでcookieの有効期限を設定しているのですが、php.iniのsession.cookie_lifetimeの値と優先されるのはどちらなのでしょうか?
ユーザによってcookieの有効期限を分けたい場合もしphp.iniが優先されるようですとini_setでユーザごとに秒数を変える感じになるんでしょうか?
628nobodyさん:2010/02/04(木) 22:16:32 ID:???
こんばんは、くだらない質問で申し訳ないのですが、何でググレば良いかも分からないので質問させてください。
$hogehoge_day="2009-12-24";
↑これを 2009年12月24日 と表示させるにはどうすればよいでしょうか?
629nobodyさん:2010/02/04(木) 22:22:09 ID:???
>>628
setlocaleとstrftimeとmktime
630nobodyさん:2010/02/04(木) 22:29:32 ID:???
>>629
出来ました、有難うございます。
631nobodyさん:2010/02/04(木) 22:53:49 ID:???
strtotimeとdate
632nobodyさん:2010/02/05(金) 11:07:24 ID:uO/7NXg2
【OS名】Windows XP
【PHPのバージョン】php5.2.6
【質問内容】

$Link = "../master00/master00.php?para1=1¶2=¶3=";
$tmp = sprintf("fncClick(\"%s\")",$Link);

printf('<input type="button" style="width:80px" value="戻 る" onclick =%s>',$tmp);
printf('<input type="submit" style="width:80px" value="新規登録" name="button" />');
printf('<input type="reset" style="width:80px" value="リセット" />');

<script type="text/javascript">
<!--
function fncClick(arg)
{
         document.master01_main.action = arg;
         document.master01_main.method = "POST";
         document.master01_main.submit();
}
//-->
</script>

抜粋したのものですが、FireFoxだと"新規登録"のボタンが表示されますが、
IEだと表示されなくなってしまいます。"戻る"ボタンの後ろにinput type = hiddenなどの
別のものを配置すると"新規登録"のボタンが表示されます。
なにか原因がわかりますでしょうか?

633nobodyさん:2010/02/05(金) 11:17:03 ID:???
onclick属性の値もシングルクオートかダブルクオートで囲ってあげましょう
634nobodyさん:2010/02/05(金) 11:51:58 ID:???
test
635nobodyさん:2010/02/05(金) 11:53:20 ID:???
やっとかきこめたあああああああああああ
糞運営が・・・
1ヶ月で3度も規制しやがって
さぁ暇だし何でも聞いてくれたまえ
636nobodyさん:2010/02/05(金) 12:15:20 ID:???
いや、もう済んだからいいです。
637nobodyさん:2010/02/05(金) 12:59:23 ID:uO/7NXg2
>>633
返信ありがとうございます。
ダブルもしくはシングルで囲んだ場合は反応しなくなります。
ブラウザで違いを確認したところ、Firefox、opera、safariは
正常に出ていますが、IEだけダメみたいです。
638nobodyさん:2010/02/05(金) 13:06:16 ID:???
>>637
phpが出力しているhtmlの問題だから板違いだが
HTMLのソース(ブラウザでソース表示)はどうなってる?
639nobodyさん:2010/02/05(金) 13:20:26 ID:uO/7NXg2

>>638
</tr>
<th colspan="4" class="Submit">
<input type="button" style="width:80px" value="戻 る" onclick=fncClick("../master00/master00.php?para1=1¶2=¶3=")>
<input type="submit" style="width:80px" value="新規登録" name="button" />
<input type="reset" style="width:80px" value="リセット" />
</th>
</class>
</tr>

<script type="text/javascript">
<!--
function fncClick(arg)
{
document.master01_main.action = arg;
document.master01_main.method = "POST";
document.master01_main.submit();
}

//-->
</script>

IEのブラウザソースは以上のようになってます。
640nobodyさん:2010/02/05(金) 13:22:03 ID:???
囲めと言ってるだろが
641nobodyさん:2010/02/05(金) 13:29:36 ID:???
>>639
他の人もいってるけど、onclick=の後を囲めば平気だと思うが?

>>637
>ダブルもしくはシングルで囲んだ場合は反応しなくなります。

反応しなくなるhtmlソースはどうなってる?
642nobodyさん:2010/02/05(金) 13:32:42 ID:???
$tmp = sprintf("fncClick('%s')",$Link);
printf('<input type="button" style="width:80px" value="戻 る" onclick ="%s">',$tmp);

「囲め」「囲みました」「囲めっつってんだろ」が続きそうでめんどくさいから勝手に囲んだ。
643nobodyさん:2010/02/05(金) 13:35:19 ID:???
マルチバイトをエンコードしろやハゲ
644nobodyさん:2010/02/05(金) 13:50:56 ID:nqoHSqeH
>>639
onclick属性使うなscript分離しろ
というかclassタグなんて無い
645nobodyさん:2010/02/05(金) 13:54:54 ID:uO/7NXg2
>>640
>>641
>>642
>>643

$tmp = sprintf("'fncClick(\"%s\")'",$Link);
printf('<input type="button" style="width:80px" value="戻 る" onclick=%s>',"$tmp");

fncClick()の部分をシングルで囲んだら反応が返ってきました。
すいません。お騒がせしました。

>>644
classはどうやらソースのヘッダーでcssを読み込んでいるので
その関係で使用しているようです。
646nobodyさん:2010/02/05(金) 14:00:03 ID:uO/7NXg2
すいません。たしかに</class>といったような
classタグはないですね。
647nobodyさん:2010/02/05(金) 14:01:58 ID:???
どうせダブルで囲ってエスケープしてなかったとかいうオチだろ

で、一番不思議なのはなぜこれがPHPスレで聞かれているかということなんだが
648nobodyさん:2010/02/05(金) 14:34:01 ID:???
PHPの問題ではないのは確かだけど、これがPHPのスレに書かれてしまうこと自体は不思議ではないだろう。
649nobodyさん:2010/02/05(金) 14:34:37 ID:???
なんで?
650nobodyさん:2010/02/05(金) 14:36:32 ID:???
まあまあこの程度いいではないか
651nobodyさん:2010/02/05(金) 15:12:41 ID:DA4Lr89Q
【OS名】linux?http://atpages.jp/
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
たまにpostを指定したフォームからのリクエストデータがすっぽぬけ、ただのgetになってしまう事があります
オミトロンで見た所、コネクションが切れてしまっているのですが、これをPHPから制御する事は可能でしょうか?
652nobodyさん:2010/02/05(金) 15:31:25 ID:???
>>651
ブラウザからサーバへデータの送信ができていないのならブラウザの問題だと思うよ
653nobodyさん:2010/02/05(金) 17:08:40 ID:???
携帯じゃねーの?
654nobodyさん:2010/02/05(金) 18:55:24 ID:???
無理です
655nobodyさん:2010/02/05(金) 18:59:24 ID:???
Who cares
656nobodyさん:2010/02/05(金) 19:04:31 ID:DA4Lr89Q
ブラウザの問題ですか…
携帯じゃなく、IEですね
getの場合、トップページに飛ばしてるのですが、ちょっと苦情が出てまして。
他人のブラウザだから余計にわけが分からないといったところなんです
657nobodyさん:2010/02/05(金) 21:38:15 ID:oeBfw5TE
本当にくだらない質問ですが、お願いします。
・PHPで日本語のフォルダに入ったファイルを読み込みにはどうすればいいでしょうか?
・Documents and Settingsのように半角スペースがある場合中のファイルを読むにはどうすればいいでしょうか?

PHPは5.2.6です。
658nobodyさん:2010/02/05(金) 22:00:05 ID:???
webdavとsslについての質問です。
phpでロードする際のwebdavの絶対パスは
非SSLではhttp
SSLではhttps
と振り分けをしないとダメでしょうか?

以下のようなソース書いてます。
<object classid="clsid:xxxx"
codebase="{$codebase}"
width="80%" height="40%">

$codebase="http://a/ieDAV.cab"
これをsslの場合は
$codebase="https://a/ieDAV.cab"
としないとダメですか?
659IDがでていませんでした。:2010/02/05(金) 22:13:05 ID:+ymZdpmA
すいません。
webdavとsslについての質問です。
phpでロードする際のwebdavの絶対パスは
非SSLではhttp
SSLではhttps
と振り分けをしないとダメでしょうか?

以下のようなソース書いてます。
<object classid="clsid:xxxx"
codebase="{$codebase}"
width="80%" height="40%">

$codebase="http://a/ieDAV.cab"
これをsslの場合は
$codebase="https://a/ieDAV.cab"
としないとダメですか?


660nobodyさん:2010/02/05(金) 23:54:19 ID:???
Cakephpのモデルって
元からDBアクセスのためのメソッドが用意されてて
コントロール側でクラスを呼び出して実行すればOK?

モデルクラスは定義で使うのがメインって感じですか?
661nobodyさん:2010/02/06(土) 00:04:15 ID:???
>>1
662nobodyさん:2010/02/06(土) 00:17:08 ID:???
>>661
わかりました質問を取り消します
663nobodyさん:2010/02/06(土) 02:40:53 ID:???
フローチャート作ろうと思います
664nobodyさん:2010/02/06(土) 02:54:24 ID:???
現在
$pat = '(https?:\/\/[-_.!~*\'()a-zA-Z0-9;/?:@&=+$,%#]+)';
$rep = '<a href="\1">\1</a>';

$text = ereg_replace($pat, $rep, $honbun);
で$text内のリンクをハイパーリンクしてるんですが
ereg_replaceをpreg_replaceにすると置換してくれませんのはなぜなんです?
665nobodyさん:2010/02/06(土) 03:13:25 ID:???
>>1
666nobodyさん:2010/02/06(土) 03:51:30 ID:GgnnWxHX
if(isset($_POST["submit"])){
foreach((array) $_POST["aaa"] as $bbb){
echo $bbb;//ちゃんと全部表示される
$ccc = $bbb;//最後のひとつしか代入されない
}}

$cccに全部代入させたいんですがどうしたらいいでしょうか
667nobodyさん:2010/02/06(土) 03:53:30 ID:???
>>1
668nobodyさん:2010/02/06(土) 03:55:11 ID:???
>>666
$ccc .= $bbb
でいいんでないの
669nobodyさん:2010/02/06(土) 04:41:28 ID:???
>>667
3連続でスレタイ読まないヤツがきた心境を一言どうぞ
670nobodyさん:2010/02/06(土) 13:44:22 ID:2I3yM/uu
php5.26で

$file = data.php;

$tmp = file($file);

(処理)

file_put_contents($file, $data);

とやると、元のdata.phpのデータはUTF-8で、処理するphpもUTF-8なのですが
処理後に書き出したdata.phpがs-jisになってしまいます。
(処理)の部分は$dataに入れるデータをいじっているだけで、文字コードの変換関係の処理は一切入っていません
UTF-8のまま書き出すにはどうしたらよいでしょうか?
671nobodyさん:2010/02/06(土) 13:46:48 ID:???
>>670
mbstringのinternal_encodingかhttp_outputあたりじゃない?
672nobodyさん:2010/02/06(土) 14:28:33 ID:???
673nobodyさん:2010/02/06(土) 15:42:07 ID:???
IDの出し方教えてください


って質問したら怒られるだろうなwwww
674nobodyさん:2010/02/06(土) 15:43:50 ID:???
>>1
675nobodyさん:2010/02/06(土) 18:05:37 ID:???
ペキンダックわろたwwwwwwwww
676nobodyさん:2010/02/06(土) 20:26:31 ID:???
【OS名】 レンタルサーバー
【PHPのバージョン】php5.26 セーフモード
【連携ソフトウェア】gdライブラリ
【質問内容】

フォームからアップロードされた画像ファイルを、
ajaxで指定されたx,y,width,heightの範囲で、切り貼り加工し、ダウンロードしたいと四苦八苦していたのですが、
imagecreatefromjpegでファイルをオープンできません。

ファイル パーミッション オーナー グループ
dir 777 10703 10000
├php 644 10703 10000
└jpeg 777 80 10000

というような構成で、phpファイルをphpファイルから出力し、オーナーを80にすればいいのかなと思ったのですがまだできません。
dirもphp上から出力しないとダメなのでしょうか。

このやり方自体があまりスマートでは無い気がしますし、できればもっと良い方法を、ご教授できればと思っています。
よろしくお願いします。
677672:2010/02/06(土) 20:27:48 ID:3D5nCXRt
すいません、sage外すの忘れました
678nobodyさん:2010/02/06(土) 20:28:57 ID:???
>>676
エラーメッセージは何て出るの?
679nobodyさん:2010/02/06(土) 20:47:07 ID:3D5nCXRt
Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: Unable to access e31f53d3362d1fb15a799794207f1c47.jpg
と言ってます
680nobodyさん:2010/02/06(土) 22:05:53 ID:???
dirとphpとjpegのオーナーが全て同じじゃないとダメでしょ
681nobodyさん:2010/02/06(土) 22:15:50 ID:???
間違えました。dirとphpが同じならいいのか。忘れて下さい。
682666:2010/02/06(土) 22:29:36 ID:???
>668
ありがとうございます、できました!
683nobodyさん:2010/02/06(土) 22:36:04 ID:???
>>676
セーフモードだとUIDチェック入ってるんじゃね
オーナー一緒にすれば開けると思うよ
684nobodyさん:2010/02/06(土) 23:44:42 ID:???
セーフモードが原因ならエラーメッセージに
"SAFE MODE Restriction in effect."
が入るはず。鯖の設定によっては入らないのかな?

fopenのセーフモード制約は、スクリプトとディレクトリのUID。
開くファイルそのもののUIDは関係ない。
だからhttpdが作成したファイルをhttpd自身が読めるようにはなってる。
685670:2010/02/07(日) 00:25:43 ID:???
>>671
>>672
ありがとうございます。mbstringやURL先の方法を設定してみたのですが、
phpの内部に書き込んでも変わらずSJISになり、さらに.htaccessは使えないのとでとん挫しました。

しかし、元の読み込むファイルにUTF-8で日本語の文字が一文字でも書き込まれていれば
読み込み→処理→書き込み処理後でも文字コードがUTF-8に保たれました。
なのでダミーデータを先頭に書き込むことで解決しました。
686nobodyさん:2010/02/07(日) 00:43:12 ID:EhH57Jpr
phpでログインシステムを作っているのですが、セッションとクッキーのどちらを使うべきでしょうか?
ポータルサイトなどではログインをどのように管理しているか教えていただけると助かります。
687nobodyさん:2010/02/07(日) 00:46:25 ID:???
用途が全然違う物じゃないでしょうか
688nobodyさん:2010/02/07(日) 00:57:53 ID:EhH57Jpr
あ、もしかして
セッションはサーバー、クッキーはユーザのPCに保存するものなので、
「ログインを維持する」みたいなときにはクッキーを使ってログインさせるという認識でいいでしょうか?
689nobodyさん:2010/02/07(日) 01:14:19 ID:???
いいですよ
690nobodyさん:2010/02/07(日) 01:29:14 ID:EhH57Jpr
ありがとうございます。理解できました
691nobodyさん:2010/02/07(日) 01:58:26 ID:???
俺は理解できなかった ORZ
692nobodyさん:2010/02/07(日) 02:06:28 ID:???
サーバーとクライアント
どっちに情報を保持しとくかってことじゃないの?
サーバーは接続が切れたら情報が消えるけど
693nobodyさん:2010/02/07(日) 02:11:46 ID:lvWMAqKs
外部ファイルに一行ずつ出力していくプログラムを書きました。
追記はファイルの末尾になってしまうのですが、先頭に追加する方法はありますか?
よろしくお願いします
694nobodyさん:2010/02/07(日) 03:46:20 ID:???
その質問300回は見た
695nobodyさん:2010/02/07(日) 04:26:28 ID:???
配列にしてソートすれば
696nobodyさん:2010/02/07(日) 08:41:49 ID:???
外部ファイルを変数に読み込む(file_get_contentsなど)
→追加したい文字列のあとに↑の変数をくっつける
→外部ファイルに↑でくっつけた文字列を新規書き込み
697676:2010/02/07(日) 10:46:34 ID:???
解決しました。
誠に恥ずかしい限りですが、ログファイルから読み出す時にchopしていないというオチでした。

ありがとうございました。
698お願いします:2010/02/07(日) 12:00:27 ID:rDdEaSSw
file_get_htmlで取り出したファイルの内容の、
重複したリンク先のaタグを1つだけ表示させるにはどうすればいいですか?

初心者ですが宜しくお願い致します。
699nobodyさん:2010/02/07(日) 12:11:16 ID:???
>>698
array_unique
700nobodyさん:2010/02/07(日) 13:53:32 ID:???
ちょうつまらないネコの恩返しか
パンツも見えないんだぜ
701nobodyさん:2010/02/07(日) 14:58:34 ID:EhH57Jpr
MySQLでdataというテーブルのtime,codeというレコードにtime=$input_time かつ その列のcodeでcode=$input_codeを満たすものがある場合はtrue、無い場合はfalseのように判定したいのです。どうしたらよいですか?
702nobodyさん:2010/02/07(日) 15:01:21 ID:???
>>701
$sql = 'SELECT * FROM data WHERE time = ' . $input_time . ' AND code = ' . $input_code;
703nobodyさん:2010/02/07(日) 22:09:52 ID:EhH57Jpr
>>702
ありがとうございます
mysql_query($sql)とすると常にfalseとなってしまいます。
704nobodyさん:2010/02/07(日) 22:23:00 ID:???
>>703
なぜfalseが返るかはマニュアルに書いてありますよ
http://jp.php.net/manual/ja/function.mysql-query.php

・PHP内で生成されたSQL文が正常であるか
・DBへのコネクションが正しく行われてるか

まずはこの辺を調べてみましょう
705nobodyさん:2010/02/07(日) 22:46:26 ID:qbh8YQtK
サーバが作りだすレスポンスヘッダを削除することはできないんでしょうか?
header()で値を変えることはできるんですが。。。
706nobodyさん:2010/02/07(日) 23:10:16 ID:YNGHwsE+
ttp://blog.livedoor.jp/j_yuze/archives/51523327.html
ここで使われているcURLってどこに行けばあるんでしょうか?

707nobodyさん:2010/02/08(月) 03:51:28 ID:???
>>706
そんなの本人にきかないとわからない
cURL関数のユーザーノートに似たようなクラス作ってる人がいるからそれ使うか参考にして
自分で実装すればいいんでない?
メソッド名や流れからどういう処理かは想像できるだろうし 
http://www.php.net/manual/ja/book.curl.php
708nobodyさん:2010/02/08(月) 03:57:17 ID:???
>>705
サーバプログラム(Apacheとか)側をいじらないと
それに依存してるPHPでどうこうするのは無理じゃないかと
http://httpd.apache.org/docs/2.2/ja/mod/mod_headers.html
709nobodyさん:2010/02/08(月) 09:34:24 ID:0nwSZc19
連番HTMLファイルをリロード毎に順番に読み込む場合

//連番の番号を打ち込んだテキスト読み込み
$fp = @fopen("count.txt","r+'");
flock($fp, LOCK_EX);
$count = fgets($fp, 256);
$count++;
rewind($fp);
fputs($fp, $count);
fclose($fp);

//htmlファイルの読み込み
$HTML = "C:/test/$count.html";
$HTML2 = file_get_html("$HTML2");

//ファイル番号を確認
echo "$HTML";

としたら、エラーが出てしまい、ソースを見ると
urlの$countの数値の前に?がついています。

対処法を教えてください。宜しくお願いしますm__m
710nobodyさん:2010/02/08(月) 09:39:40 ID:???
>>709
時間がないから適当レス
?がつくという症状で思い当たるのはUTF BOMだね
711709:2010/02/08(月) 11:54:25 ID:0nwSZc19
>>710
UTF-8Nで保存したら動きました!ありがとうございます!
712nobodyさん:2010/02/08(月) 13:30:40 ID:2kEGmSWr
ファイルの指定した行から指定した行数だけ取り出すことはできますか?
例)1129行目から20行分取り出す。とか。

いったん配列にすべてを入れてそこから取り出すことも考えたのですが負荷が大きいためなしにしました
713nobodyさん:2010/02/08(月) 15:00:18 ID:???
負荷が大きいといっても入出力部分ぐらいでしょ(ディスクからの読み取り時間)
ファイルのサイズが1MBぐらいなら全然問題ないよ
10MBぐらいになるとさすがにCPUやメモリに負荷かかってレスポンスも若干遅く感じるけど
ファイルの位置(何バイト目か)がわかってるならそこまでfseekして
そこから取り出したい行数分fgetsすれば10MBでもCPUもメモリもI/Oも問題ない
目的の行数の開始点が何バイト目かわかればいいんだけどなんかそんな関数あったっけ?
それを割り出すために配列使っちゃうようなら結局同じ結果になっちゃうんだけどね
まぁサイズがわからないからなんともいえないけど1MBぐらいなら問題ないよ
ログが増えるようなら定期的にローテーションしてログ切り替えればおk
714nobodyさん:2010/02/08(月) 15:01:44 ID:???
配列にいれたら負荷になるほどのファイルならDB使うしかないと思うが
715713:2010/02/08(月) 15:04:43 ID:???
ちなみにテストしたデータは約10MBで約18万行あるファイル=配列数約18万
716nobodyさん:2010/02/08(月) 15:26:59 ID:???
平均58byteじゃ正規化してもそうは変わらなそうだな
固定行なら
fseek($fp,開始行*行のバイト);
for (0から20){
 $lines[]=fgets
}

固定じゃないなら
for (目的行まで回す)
fgets
}
for (0から20){
 $lines[]=fgets
}

こんなもんじゃねーの
717nobodyさん:2010/02/08(月) 16:24:12 ID:???
ワロタw
718nobodyさん:2010/02/08(月) 16:31:32 ID:???
あれだ、下の方の行に行くほど遅いんだな
変更されないんならインデックス作っとくか

まーDBにでも突っ込んだほうが
719nobodyさん:2010/02/08(月) 16:35:18 ID:???
そりゃDB使えるならDB使った方がいいわ

さもなければ固定長にして正規化かけろと
720nobodyさん:2010/02/08(月) 16:47:58 ID:???
なんか昔の掲示板CGIとか思い出す。
書く時は末尾に追記して、読む時は末尾からリバース読み、みたいな。
721nobodyさん:2010/02/08(月) 16:54:52 ID:oaOBKDG6
PDO::prepare 日付型を入力出きないのですが、どうすれば良いのですか?
PHPは5.1.4 DBサーバーは mysql5.1

$pp = $db->prepare("insert into test (date)values(?)");
$pp->execute(array('2010-01-01'));
722nobodyさん:2010/02/08(月) 17:06:27 ID:???
>>721
dateが関数名とかぶるからだと思う
バッククォートでかこってみ

$pp = $db->prepare("insert into test (`date`)values(?)");
723nobodyさん:2010/02/08(月) 17:16:43 ID:oaOBKDG6
例として良くなかったのかもしれませんが、dateが別のものでもそうなります。
724nobodyさん:2010/02/08(月) 17:31:39 ID:???
とりあえずerrorInfoでエラー確認
725nobodyさん:2010/02/08(月) 17:41:29 ID:???
>>723
テストしたけどコードは問題ないね
エラー内容見てみないと何とも言えない
726721:2010/02/08(月) 17:47:39 ID:???
すいません昨日は出来なかったのですが今日はは出来ました
失礼しました
原因はよくわかりませんが…
727nobodyさん:2010/02/08(月) 21:53:15 ID:v0XTz3WC
はじめまして

どこで質問すればいいのかわからなかったのですが
簡易ブログ(タイトルと内容のみ更新される)ようなスクリプトってありませんでしょうか?

口たらずなので考えてるものがこれで伝わるかわかりませんが
どうぞよろしくおねがいします
728nobodyさん:2010/02/08(月) 22:04:01 ID:???
MTとかwordPressとか?
729nobodyさん:2010/02/08(月) 22:10:56 ID:v0XTz3WC
>>728
レスありがとうございます
そういう凝ったものではなくて
ログインページでログインし

タイトル:[ブログ始めました]

内容:[てすとてすとてすとてすとてすと]

[送信] [リセット]

という感じでフォームに入力すると

<h2>ブログを始めました。</h2>

<p>てすとてすとてすとてすとてすと<br />
てすとてすとてすとてすとてすと<br />
てすとてすとてすとてすとてすと</p>

というような単純な文を新着情報みたく上に上にだんだんと追加されて行く感じのような物です

ほんとうに説明下手で申し訳ないです・・・
730nobodyさん:2010/02/08(月) 22:14:38 ID:v0XTz3WC
連投すみません

自分で探していて近いものを見つけたので参考までに・・・
http://www.ortecweb.com/cgi/koukai/snews/

動作的には理想的なのですが一行ではなく
タイトルと内容で更新できるようなものを探しています
731nobodyさん:2010/02/08(月) 22:21:17 ID:???
732nobodyさん:2010/02/08(月) 23:08:56 ID:???
twitterでいい気もする
733nobodyさん:2010/02/08(月) 23:42:00 ID:v0XTz3WC
>>731
こんな有名どころを見逃がしていたとは・・・・

まさに理想通りのものでした
本当にありがとうございます!

>>732
ガジェットじゃいまいち雰囲気が合わずで・・・
734nobodyさん:2010/02/09(火) 00:02:25 ID:HTi7WI02
掲示板の書き込みログの管理はMySQL、.datファイルのどちらがいいのでしょうか?
735nobodyさん:2010/02/09(火) 00:17:30 ID:???
規模にもよるけど掲示板程度にMySQLを使うのはどうだろうね
SQLiteならファイル単位で扱えるし標準で使えるからちょうど良いよ
736nobodyさん:2010/02/09(火) 00:25:53 ID:???
別にMySQLでいいじゃん
737nobodyさん:2010/02/09(火) 00:32:54 ID:???
掲示板程度を作るのにテキストファイルを使うのは面倒だと思うようになるよ。
738nobodyさん:2010/02/09(火) 00:34:42 ID:???
ほしい機能にもよるけど検索とかするならDBのが管理は楽だろうね
739nobodyさん:2010/02/09(火) 02:41:31 ID:???
text使って断片化するのが嫌なので、
板、スレッド情報をDBに、レスをファイルにつっこんでる俺がいる
740nobodyさん:2010/02/09(火) 02:48:57 ID:???
Windows鯖でPHPとは珍しいことしてますね
741nobodyさん:2010/02/09(火) 02:54:38 ID:???
phpからシェルスクリプトを実行してエラーがあった場合、シェルスクリプトのリターンコード
を受け取りたいのですが

通常、シェルスクリプトの場合以下のリターンコードの筈なのに

真:0
偽:1

失敗しても0が返ってきてしまいます。

スクリプトは以下のような感じです。

<?php

exec("/usr/sbin/useradd -s /sbin/nologin hoge 2>&1",$rCode);
echo `echo $?`;

?>

ちなみにコマンドラインから実行した場合は以下の様になります。

[root@usavich scripts]# useradd -s /sbin/nologin hoge 2>&1
useradd: ユーザ hoge は存在します
[root@usavich scripts]# echo $?
9


よろしくお願いいたします。
742741:2010/02/09(火) 03:02:07 ID:7vs+hwlZ
741です
IDだします
743nobodyさん:2010/02/09(火) 03:17:39 ID:???
string exec ( string $command [, array &$output [, int &$return_var ]] )
って書いてあるけど
744741:2010/02/09(火) 03:35:44 ID:7vs+hwlZ
なるほど。ちょっと例えが悪かったですか

例えば

<?php

exec("/etc/init.d/httpd restart",$rCode);

var_dump($rCode);
?>

array(2) {
[0]=>
string(28) "httpd を停止中: [成功]"
[1]=>
string(28) "httpd を起動中: [成功]"
}


とすれば、もちろん実行結果が配列として返ってくるのですが、正常に処理されたか
自分で判定作らなきゃいけないので、面倒くさいなぁと思いまして
シェルのリターンコードで何とかしたいのです

[root@usavich scripts]# /etc/init.d/httpd restart
httpd を停止中: [失敗]
httpd を起動中: grep: /etc/httpd/conf/httpd.conf: No such file or directory
httpd: Could not open configuration file /etc/httpd/conf/httpd.conf: No such file or directory
[失敗]
[root@usavich scripts]# echo $?
1
745nobodyさん:2010/02/09(火) 04:45:32 ID:???
> int &$return_var
746nobodyさん:2010/02/09(火) 06:59:49 ID:???
>>741
こういうときは一発で

exec("/etc/init.d/httpd restart > /dev/null 2>&1 ; echo $?",$rCode);
var_dump($rCode);
747nobodyさん:2010/02/09(火) 10:48:00 ID:CZAEoLHq
copy(元ファイル, 移動先);

この移動先を複数箇所指定するにはどうしたらいいでしょうか?
よろしくおながいします
748nobodyさん:2010/02/09(火) 10:51:44 ID:???
>>747

copy(元ファイル, 移動先);
copy(元ファイル, 移動先2);

しか無いし、駄目な理由もないと思うけど・・。
749nobodyさん:2010/02/09(火) 10:58:43 ID:CZAEoLHq
>>748
やはり其れしかないですか
ありがとう
750nobodyさん:2010/02/09(火) 11:08:26 ID:???
自分で関数つくればいいじゃなーい
myCopy(String source, String[] dest)
751nobodyさん:2010/02/09(火) 11:17:33 ID:???
>>750
結局中身は一緒でしょ。
書き方はスッキリするかもしれないけど。
752nobodyさん:2010/02/09(火) 11:26:10 ID:???
foreachでarray回すだけ(´・ω・`)
753nobodyさん:2010/02/09(火) 11:37:02 ID:???
>>749
なんで>>748じゃだめなの?
754nobodyさん:2010/02/09(火) 12:23:29 ID:???
自分で関数書くとかどこのハッカーだよ
組込みでない機能なんか使えねーよ

ってことでしょ
755nobodyさん:2010/02/09(火) 13:44:52 ID:???
自分で関数書くにしてもその内容が>>748なんでしょw
756nobodyさん:2010/02/09(火) 13:45:32 ID:???
あー>>749の間違い
757nobodyさん:2010/02/09(火) 14:47:19 ID:qqG+/ley
array_intersect_keyと同じような動作を再帰的に行うにはどうしたらよいでしょうか。

多次元配列のなかから、指定した構造部分だけ抜き出したいのです。
よろしくおねがいします
758nobodyさん:2010/02/09(火) 14:54:34 ID:???
複数コピーをアトミックにやろうと思うと・・・
759nobodyさん:2010/02/09(火) 14:58:57 ID:???
760nobodyさん:2010/02/09(火) 15:11:18 ID:qqG+/ley
>>759
お、ありがとうございます!
761nobodyさん:2010/02/09(火) 18:26:17 ID:???
>>754
数行ですむ処理を関数で書いてどんなメリットがあるかっていう話でしょ。
もちろんもうちょっと複雑な処理も絡めて関数にするなら意味があるかもだけど。

そもそも>>747の質問の答としては「無い」で良いわけで蛇足。
762nobodyさん:2010/02/09(火) 20:29:42 ID:???
だめだよ
763nobodyさん:2010/02/10(水) 00:28:55 ID:FNWat3EE
セッションってsession.save_pathを設定していないと使えないと認識してるんですが
間違ってますか?
ローカルでもxreaで借りてるサーバでもsession.save_pathがno valueなのに
普通にセッション使えてるんですが、なぜでしょう?
764nobodyさん:2010/02/10(水) 00:37:34 ID:???
OSの一時ディレクトリにでもなるんじゃない?
765nobodyさん:2010/02/10(水) 10:42:03 ID:J/EM4cEc
PHP 5.2.6-3ubuntu4.5 です。
Cannot use output buffering in output buffering display handlers
ってエラーがでるんですが、これはどうやったら直せるんでしょうか?


766nobodyさん:2010/02/10(水) 10:46:05 ID:???
767nobodyさん:2010/02/10(水) 11:19:06 ID:???
ereg()って非推奨になったんだね・・・
preg_match()を使えって事なんだろうか・・・?
768nobodyさん:2010/02/10(水) 11:22:40 ID:???
>>1
769763:2010/02/10(水) 11:45:28 ID:FNWat3EE
>>764
ありがとうございます
OSの一時ディレクトリっていうと/tmpのことですか?

ttp://sb.xrea.com/archive/index.php/t-11933.html
↑ここ見ると、デフォルトのsession.save_pathは/tmpになってるらしいんですが
phpinfo()確認すると、ローカルでもxreaで借りてるサーバでもno valueなんですよね。何も変更してないのに。
まぁ今のところ問題なく使えてるんでいいんですが、なんか気持ち悪いなぁと思って。。
770nobodyさん:2010/02/10(水) 11:59:46 ID:???
>>769
公式のマニュアルにちゃんとのってる

PHP: 実行時設定 - Manual
http://www.php.net/manual/ja/session.configuration.php#ini.session.save-path

771nobodyさん:2010/02/10(水) 12:08:58 ID:fc0U4ClX
【OS名】CentOS 5.4
【PHPのバージョン】php5.1.6
【連携ソフトウェア】無し
【質問内容】
渡される変数にはファイル名が入っておりますが、フルパスで格納されてます。
/var/www/html/example.dat
ファイル名だけをとりだしたいのですがexplodeで切ると階層が異なる場合はうまく取り出せません。
ファイル名だけを取り出すような方法があれば教えていただけないでしょうか?
772763:2010/02/10(水) 12:18:33 ID:FNWat3EE
>>770
session.save_pathがno valueだと/tmpに保存される
ということで良いんでしょうか?
理解が遅くてすみません
773nobodyさん:2010/02/10(水) 12:24:04 ID:???
>>771
basename
774nobodyさん:2010/02/10(水) 12:25:46 ID:???
>>772
session.save_pathが空の場合の挙動はsession.save_handler次第。
session.save_handlerがfilesモジュールだと仮定する。
filesモジュールは、session.save_pathが空の場合にはphp_get_temporary_directoryというPHP内のAPIによってディレクトリを決定する。
php_get_temporary_directoryは、OSのAPIを呼んだり環境変数を読んだりしてデフォルトの一時ディレクトリを決定する。
Unixならほぼ/tmp。
775nobodyさん:2010/02/10(水) 12:26:09 ID:???
>>772
リンク先に書いてある session_save_path() も確認したんだよね?
776763:2010/02/10(水) 12:49:22 ID:FNWat3EE
>>774
ありがとうございます
大体理解できました

>>775
確認しましたが、no valueなので何も表示されません。
777nobodyさん:2010/02/10(水) 12:52:46 ID:???
>>772
この質問は過去スレで一度見たけど
過去スレは見ましたかね?
778763:2010/02/10(水) 12:59:30 ID:FNWat3EE
>>777
Googleでは検索しましたが、過去スレは特に見てないですね。
774さんのような明確な回答が見つけらなかったんで質問しました。
779nobodyさん:2010/02/10(水) 13:00:28 ID:???
>>778
過去スレでまったく同じ質問してた人は回答者に逆切れまくってたけどなw
780nobodyさん:2010/02/10(水) 16:17:18 ID:SkjYm3w1
フォームから送られたデータにHTMLタグが含まれているのですが
それをValidなXHTMLに変換したいと思っています

PHPモジュールやライブラリ、あるいは他に何か方法があれば教えてください
781nobodyさん:2010/02/10(水) 16:50:33 ID:???
>>780
tidy
782nobodyさん:2010/02/10(水) 16:53:14 ID:gNzUI44E
指定したフォルダ内のexeを実行させる方法を教えてください
783nobodyさん:2010/02/10(水) 16:57:16 ID:gNzUI44E
あ、ひょっとしてexecでいいのかな

お前等糞の役にもたたねーな
784nobodyさん:2010/02/10(水) 16:59:51 ID:???
>>782-783
サーバサイドならexecやsystemでいいが
何も考えずに使うとセキュリティ面で深刻な問題があるから注意

が態度がむかつくから教えない。
785nobodyさん:2010/02/10(水) 17:05:43 ID:???
ワロタw
786nobodyさん:2010/02/10(水) 17:49:58 ID:SkjYm3w1
>>781
ありがとう
787nobodyさん:2010/02/10(水) 18:07:08 ID:Xa4vEadU
サーバーサイドでアスキーアートを画像化したいのですが、
imagettftextとモナーフォントを使ったところ、ガタガタになってしまいました。
また、線の太さも実際にブラウザで見るよりも太くなってしまいます。

なにが原因なのでしょうか?
よろしくお願いします。
788nobodyさん:2010/02/10(水) 18:13:00 ID:???
>>787
フォントの指定
789nobodyさん:2010/02/10(水) 23:25:49 ID:gX/LcLaO
質問です
$a[0] = "あいうえお";
$a[1] = "あいうえおかきくけこ";
$b[0] = 12345;
$b[1] = 67890;
$text = "あいうえおあいうえおかきくけこ";

とある時に、str_replace($a,$b,$text);
にすると、出力が
1234512345かきくけこ
になってしまいます。

どうしてそうなるかは理解できたのですが、解決方法がわかりません
よろしくお願いします。
790nobodyさん:2010/02/10(水) 23:38:32 ID:???
$a[1] = "あいうえお";
$a[0] = "あいうえおかきくけこ";
$b[1] = 12345;
$b[0] = 67890;
791nobodyさん:2010/02/10(水) 23:44:10 ID:???
$a= array_reverse($a);
$b= array_reverse($b);

これをかませろw
792nobodyさん:2010/02/10(水) 23:57:13 ID:gX/LcLaO
>>791
やってみましたがダメでした。
順番関係なく、「あいうえお」が一致した時点で置換してしまっているようです。
793nobodyさん:2010/02/11(木) 00:27:01 ID:???
$a[0] = "あいうえおかきくけこ";
$a[1] = "あいうえお";
$b[0] = 67890;
$b[1] = 12345;
でいいじゃん
794792:2010/02/11(木) 00:38:31 ID:qOD6LI8k
あぁ、勘違いしてました
ありがとうございました
795nobodyさん:2010/02/11(木) 06:33:53 ID:Mcgu4g2h
ZページからAページにアクセス後、
AページのheaderのLocationでBのページに飛んだとき、
Bで受けるリファラがZページになる気がするのですが、
このリファラをAページのものにできないでしょうか。
796nobodyさん:2010/02/11(木) 08:23:46 ID:???
アフィリエイト会社をだますんですねわかります
797nobodyさん:2010/02/11(木) 09:20:58 ID:???
Aページなんてなかった
798nobodyさん:2010/02/11(木) 12:41:08 ID:SS8lyG7S
xampp php 5.2.5
Text_Captchaを使ってるんですが、Index.phpの頭にブレークポイントを置いて観察してると、画像を表示した後、
また同じファイルにリクエストが来るんですが、原因は何が考えられるんでしょうか?

header( 'Content-type: image/png' );
echo self::$captcha->getCAPTCHAAsPNG();
exit;
と、最後にはexitを実行してるので、同じスクリプト内から呼び出されてるわけでもないんですが・・・
799nobodyさん:2010/02/11(木) 12:47:42 ID:SS8lyG7S
追記
IEではそんな現象はありませんでした。
Firefoxだけの現象っぽいです。
800nobodyさん:2010/02/11(木) 12:54:12 ID:Q23J+jON
PHPでこれを作って公開して広告で収入を得るってサイトを作りたいです
掲示板とかってもう枯れてるから需要ないと思うんですけど何作ればいいかアドバイスお願いします
801nobodyさん:2010/02/11(木) 13:13:02 ID:???
>>800
PHP 検索

で上位表示されるスクリプト配布サイトがいくつかある。
そこのシェアウェアで人気のあるツールと、同等以上の物を安く作る。
大抵仕様は公開されてるから真似するのも簡単だろ?

そして、その後アフィリエイトツール作って、成果報酬で売る。
そうすれば金稼げるよ。
802nobodyさん:2010/02/11(木) 14:03:58 ID:???
なんでもいいじゃん
アフィリエイトでアクセス稼ぎたいなら
ジャンルを問わずとにかく数を作るべき
KENT WEBやレッツPHPとか掲示板設置しようと考えたやつで
名前を知らないやつはいない
とはいえ今じゃレンタルブログやSNSが主流だから時代の流れとは逆行してるけど
803nobodyさん:2010/02/11(木) 14:17:48 ID:???
今から広告収入モデルって遅れすぎだろ
804nobodyさん:2010/02/11(木) 14:43:48 ID:???
ニートによるビジネス講座はここですか?
805nobodyさん:2010/02/11(木) 18:15:57 ID:lCIcQ7bp
今日からPHPの勉強始めたんですけど、いきなり壁にぶちあたりました

<?php echo $video->intid; ?>
この中の "->" ってところの意味が解かりません
検索してもどうしてもうまくヒットしないんで、キーワードだけでも教えてください
806nobodyさん:2010/02/11(木) 18:16:45 ID:???
アロー演算子
807nobodyさん:2010/02/11(木) 18:20:52 ID:lCIcQ7bp
うほっ
即レスどうもありがとうございます

これでなんとかやっていけそうです
808nobodyさん:2010/02/11(木) 18:24:40 ID:???
>>807
アロー演算子ってなんですか?
809nobodyさん:2010/02/11(木) 18:35:05 ID:???
アホーにはわからん
810nobodyさん:2010/02/11(木) 18:36:10 ID:???
>>807
答えれないのに?なんとかやっていけそうなの?
811nobodyさん:2010/02/11(木) 18:39:16 ID:???
>>805
C#でいうところのthis.a
みたいなもん
812nobodyさん:2010/02/11(木) 19:20:11 ID:???
>>810
アロー演算子ってなんですか?
813nobodyさん:2010/02/11(木) 19:24:53 ID:???
>>807
答えれないのに?なんとかやっていけそうなの?
814nobodyさん:2010/02/11(木) 20:56:20 ID:???
classで使う物だと覚えておけばおk
815nobodyさん:2010/02/11(木) 21:26:37 ID:Fhh8ayIh
【OS名】 linux
【PHPのバージョン】 php5
【連携ソフトウェア】 無し
【質問内容】

写真撮影が趣味でして、自分のホームページで撮影した写真を公開しています。

その際写真1枚ごとに1つのページで

(a) 写真のタイトル
(b) 写真の説明文
(c) 【撮影した写真】
(d) EXIFデータ

のように表示したいと思っています。

写真の表示ページをPHPを使って動的に作ろうと思うのですが、その動的ページに(a), (b), (c), (d)の
データを渡すにはどうしたらいいでしょうか?CVSファイルにデータ一式を格納し、URLに写真のファイル名
を含めて渡した後、そのCVSファイルを読み込みに行ってその写真に対応する「タイトル」「説明文」を
取得させる、という方法がもっともスマートでしょうか?

他にもっといい方法がありましたらアドバイスをください。
816nobodyさん:2010/02/11(木) 21:37:44 ID:???
>>815
sineyo
php5nodonoba-jondayoksg
php5.0php5.1php5.2php5.3toiroiroarudaroksg
817nobodyさん:2010/02/11(木) 21:38:56 ID:???
>>815
atosonoyoutonaraphptukawanakuteok
javascriptnoraiburariwotukattahougaiizo
818nobodyさん:2010/02/11(木) 21:49:30 ID:???
>>815
一番スマートなのは基礎から勉強すること
819nobodyさん:2010/02/11(木) 21:52:23 ID:???
>>815
もっともスマートかどうかは自分の使いたい方法と量にもよるかと。
DBでもいいと思うけど。

大量にあるならCSVでいいんじゃないかな。

アップロードして後から入力するなら、似たようなWEBアプリはいっぱい転がってるから改造もアリかと。

EXIFは画像から取得するライブラリはあると思う。

よく分からないなら作ってから工夫するのが一番の近道。
問題点や改良点もやってみないと分からないでしょう。
820nobodyさん:2010/02/11(木) 21:58:05 ID:???
>>815
ちょっとその写真をどこかにうpしてくれない?
出来ればほんの少しだけぽっちゃり系のを頼む
821nobodyさん:2010/02/11(木) 22:38:58 ID:Fhh8ayIh
>>819
実は事前にテストも兼ねて簡単なプログラムを作ってみたことがあります。

そのときはリンクに「タイトル」「説明文」「写真のファイル名」を格納して
表示専用PHPページに送るという力業をやってました(違うページにそれら
の変数を送るためセッションも使っています)。

ただおかげでリンクのURLは、表示専用PHPファイル、セッションID、タイトル、説明文、ファイル名、と
大変長ったらしいものになってしまいとてもスマートと呼べるようなプログラムではありませんでした。

ここはやはりCVSを使った方が遙かにスマートになりそうですね。

ありがとうございます。
822nobodyさん:2010/02/11(木) 22:42:39 ID:???
CVSが必要になるほどその写真は複数人で更新するのか?
823nobodyさん:2010/02/11(木) 23:18:39 ID:G22xqtqm
portについての質問です。

自宅サーバーをもち、友人間で公開し使っています。
PHPをインストールすると、PHPが80portを使っている?のか、Apacheで80portを使えなくなります。
PHPが他のportを使用するように変更したいのですが、どうすればいいでしょうか?
824nobodyさん:2010/02/11(木) 23:25:11 ID:???
>>823
うーん・・
apacheで80番が使えなくなるというのはどう判断した?

普通にインストールするとphpはapacheのモジュールとして動作するから
apacheの中にphpが組み込まれるようなイメージ
だからphpをインストールしてapacheが使えなくなることは無い

netstatで80番ポートを誰がLISTENしているか見てみなよ
825nobodyさん:2010/02/11(木) 23:30:13 ID:Fhh8ayIh
>>822
いえ管理するのは私一人です。
ただ写真の量が多いので(1つのテーマあたり20〜30枚)リンクのURLに逐次それらの情報を埋め込むより
CVSで一元管理した方が楽かなと思いまして。

もっといい方法があれば知りたいですが。
826nobodyさん:2010/02/11(木) 23:31:43 ID:???
PHPをインストールしたと言いつつXAMPPをインストールして
80/tcp でweb鯖が複数待ち構えてるとか。
827nobodyさん:2010/02/11(木) 23:33:11 ID:G22xqtqm
>>824
レスありがとうございます

>>apacheで80番が使えなくなるというのはどう判断した?
80だとApacheが起動せず、適当に変えたら起動したからです。
また、この現象がPHPをインストールしてから起こるためです。
netstat試してきます。
828nobodyさん:2010/02/11(木) 23:40:39 ID:G22xqtqm
さーせん・・・
そのときに一緒にインストールしていたskypeが犯人でした
829nobodyさん:2010/02/11(木) 23:49:36 ID:???
急に馴れ馴れしい言葉遣いになったな
830nobodyさん:2010/02/11(木) 23:54:00 ID:???
>>825
楽だろうね。
CSVなら、テキストエディタで書き換え可能だったり、エクセルで綺麗に一覧見れたり編集できたり。
写真に通し番号付けて、URLではその通し番号だけパラメータにすりゃすっきり。

で、いい加減にCVSじゃなくてCSVだと覚えようね。
まあ、いちおう何を指してるつもりなのかは判るけどね。
831nobodyさん:2010/02/11(木) 23:58:45 ID:???
832nobodyさん:2010/02/12(金) 00:05:46 ID:???
カンマでセパレートするバリューだからSCV
833nobodyさん:2010/02/12(金) 00:06:20 ID:???
釣ってんだか釣られてんだか
釣られてんだか釣ってんだか
834nobodyさん:2010/02/12(金) 00:17:11 ID:???
でも、DB使うよりCSVで事足りることって多いよね。
ブログ程度の記事情報なら、CSVの方がいい気がする
835nobodyさん:2010/02/12(金) 00:19:04 ID:???
>>834
と言うと?
836nobodyさん:2010/02/12(金) 00:26:58 ID:???
CSVは正規化かけようとしたりすると途端に面倒になるからなー
837nobodyさん:2010/02/12(金) 00:32:47 ID:???
確かにw
けど、俺はCSVをDB風にカスタマイズして使ってる。
さすがにSQL文に対応させるのは骨が折れるので断念したけど。
838nobodyさん:2010/02/12(金) 00:37:59 ID:???
えー、CSVなんてかったるくてやってられんと思うのだけど。
839nobodyさん:2010/02/12(金) 00:54:27 ID:???
数がそんなになきゃファイルに配列でデータ入れといた方が簡単
840nobodyさん:2010/02/12(金) 01:03:23 ID:???
ここでXML厨の登場
841nobodyさん:2010/02/12(金) 01:08:23 ID:???
移植性とかリソースとか考えなきゃ、慣れたら絶対DBのほうが楽だと思う。
フレームワークとか使えばSQLも書かなくて済むし。
842nobodyさん:2010/02/12(金) 01:25:25 ID:???
XMLは遺物
これからはJSONだぜ
843nobodyさん:2010/02/12(金) 01:50:48 ID:ivOMV7p7
サーバーの応答(HTTPステータスコード)によって処理を変えたいのですがどういう関数を使うか教えてください。
具体的には200 OKが返ってきたらA();を206 Partial Contentが返ってきたらB();を呼び出すという処理をしたいです。
844nobodyさん:2010/02/12(金) 01:56:20 ID:???
ErrorDocumentでぐぐれ
845843:2010/02/12(金) 02:03:21 ID:ivOMV7p7
エラードキュメントを変更したいわけではありません。
あるサーバにアクセスしてそのレスポンスによって処理を変えるといった感じです。
こういった感じです。
255.255.255.0から255.255.255.255まで(255.255.255.0/24)のIPアドレスを調査して、
206が返ってきたらbreakしてそこのIPアドレスを返す。
といったことをしたいです。
説明が下手で申し訳ありませんが宜しくお願いします。
846nobodyさん:2010/02/12(金) 02:06:33 ID:???
PEAR::HTTP_Requestでも使えばいいんでないの?
847846:2010/02/12(金) 02:12:52 ID:ivOMV7p7
一応get_headers関数なるものを見つけて試してみたところ、
Firefox+LiveHTTPHeadersでは206が返ってきたところが200になっていました。
しかし他のheader情報を見るとうまく判定できそうなので、
今回はこの関数を使いたいと思います。

>>846
どうもありがとうございます。
PEARは導入していないので、後でこちらも調べてみたいと思います。
848nobodyさん:2010/02/12(金) 03:47:48 ID:QttJtS9A
書いたPHPのスクリプトを試すときってどうしてる?
わざわざテストのためにApacheインストールしてこれを稼働させるのは
面倒くさいだけでなくセキュリティ的にも不安。

できればPHPの仮想サーバーがあればいいんだけどね。
仮想サーバー上で書いたPHPスクリプトを実行して表示させると。
言ってみればエミュレーターみたいなものね。
849nobodyさん:2010/02/12(金) 03:51:36 ID:???
セキュリティ的にも不安って
わざわざポート開けてやるつもりか?
本番環境整えてやるのが普通だろ
850nobodyさん:2010/02/12(金) 03:51:53 ID:???
>>848
vmwareとか仮想環境でいいじゃん
xammpでもvertrigoでもいいと思うけどね。
851nobodyさん:2010/02/12(金) 04:00:50 ID:QVY7Rqlh
※タブを全角で表現してます
PHPで以下のコードを書くと

function tekitou(){
 var count = 0;
 <?php
  for ($i=0;$i<10;$i++){
   echo " hoge\n";
  }
 ?>
}

こう展開されます

function tekitou(){
 var count = 0;
  hoge
 hoge
 hoge
 hoge
 hoge
 hoge
 hoge
 hoge
 hoge
 hoge
}

なんで一番上だけタブが2個になるんですかね?
852nobodyさん:2010/02/12(金) 04:02:31 ID:QVY7Rqlh
訂正
×全角
○全角スペース
853nobodyさん:2010/02/12(金) 04:03:17 ID:???
3行目のタブが入ってるからじゃ?
854nobodyさん:2010/02/12(金) 04:15:31 ID:???
ソープとジョンソンではどちらが早いのでしょうか?
855nobodyさん:2010/02/12(金) 04:15:45 ID:QVY7Rqlh
>>853
おお、そのとおりですね ありがとうございます
なんで気づかなかったんだろう・・・

さらにくだらない質問になるけど

 <?phpのあとで
echo "\n"みたいにするか

<?phpと?>をインデントせずに行頭に書くか

どっちがいいですかね?
856nobodyさん:2010/02/12(金) 04:23:39 ID:???
>>855
いいの基準は?
857nobodyさん:2010/02/12(金) 04:26:47 ID:???
>>856
cool!
858nobodyさん:2010/02/12(金) 04:39:24 ID:???
>>855
恐らく見やすさのためだから、自分の好きなほうでしょ。
個人的には後者
859nobodyさん:2010/02/12(金) 09:10:23 ID:???
        ゴガギーン
             ドッカン
         m    ドッカン
  =====) ))         ☆
      ∧_∧ | |         /          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     (   )| |_____    ∧_∧   <  おらっ!出てこい>>855
     「 ⌒ ̄ |   |    ||   (´Д` )    \___________
     |   /  ̄   |    |/    「    \
     |   | |    |    ||    ||   /\\
     |    | |    |    |  へ//|  |  | |
     |    | |    ロ|ロ   |/,へ \|  |  | |
     | ∧ | |    |    |/  \  / ( )
     | | | |〈    |    |     | |
     / / / / |  /  |    〈|     | |
    / /  / / |    |    ||      | |
   / / / / =-----=--------     | |
860nobodyさん:2010/02/12(金) 12:02:00 ID:OUidAsxl
php.iniで
mbstring.language = neutral
としたほうがいいでしょうか?
mbstring.language = Japanese
としたほうがいいのでしょうか?
861nobodyさん:2010/02/12(金) 12:05:45 ID:???
>>860
いいの基準は?
862nobodyさん:2010/02/12(金) 12:08:39 ID:+NaJbLGp
Windows Vista使ってます
このパソコンにMySQL5.5(MSI形式インストーラー)、PHP5.3.1(VC6、スレッドセーフ、ZIP形式)、Apache2.2(OpenSSL対応、公式MSI形式インストーラ)の順番でインストールしました
MySQLとPHPはPathが通っているのでコマンドラインからも使える状態です

test.phpというファイルでデータベースに接続するだけのスクリプトを書いて
ブラウザでチェックしたのですが、MySQLが反応しません


PHP5.3でMySQL5.5以上は諦めたほうがいいのでしょうか?

そのままインストールした場合ですと正常に動かないと思うのですが、
もし正常に使われている方がいらしゃいましたら解決方法をご教示お願いします
863nobodyさん:2010/02/12(金) 12:09:27 ID:+NaJbLGp
ちなみにPHP5.2にバージョンを落とすとMySQLが使えます
864nobodyさん:2010/02/12(金) 12:10:17 ID:???
>>862
エラーメッセージくらい読もうよ
865nobodyさん:2010/02/12(金) 12:22:09 ID:+NaJbLGp
エラーも貼り付けるべきでした
このエラーから何か分かることがございましたらご教示お願いします


Warning: mysql_connect() [function.mysql-connect]: [2002] ????????яo???悪??????????????????????????????? (trying to connect via tcp://localhost:3306) in D:\www\htdocs\test.php on line 2

Warning: mysql_connect() [function.mysql-connect]: ????????яo???悪 ?????????????????????????????????A????????????????B???????????z?X?g??????????????????A?m????? ????????s????????B in D:\www\htdocs\test.php on line 2

Fatal error: Maximum execution time of 60 seconds exceeded in D:\www\htdocs\test.php on line 2


test.phpの中身↓
<?php
mysql_connect("localhost", "root" , "qwas12") or die ("Connect Error!!");
echo "Connected";
?>
866nobodyさん:2010/02/12(金) 12:29:15 ID:???
>>851
それのどこがPHPなの?
867nobodyさん:2010/02/12(金) 12:31:51 ID:???
読めねーよw
文字コード変えれw
868nobodyさん:2010/02/12(金) 12:36:38 ID:+NaJbLGp
すいません、また一からインストールしなおすので
僕と同じやり方で検証していただける方いませんか?
869nobodyさん:2010/02/12(金) 12:37:30 ID:+NaJbLGp
>>867先生
PHPの内部文字コードはUTF-8にしてます
870nobodyさん:2010/02/12(金) 12:39:22 ID:???
MySQL5.5なんてバージョンは存在しないわけだが
871nobodyさん:2010/02/12(金) 12:41:12 ID:???
>>851
<?phpの前に入ってるじゃないか
872nobodyさん:2010/02/12(金) 12:41:24 ID:???
すいません、手順まとめるのへたくそなのでスレたくさん使ったらすいませんなので
ブログ借りてそこで書きますちょっと待っててください先生
873nobodyさん:2010/02/12(金) 12:41:53 ID:???
質問時のルールは守ってください
874nobodyさん:2010/02/12(金) 12:43:17 ID:+NaJbLGp
すいませんIDわすれました872です
875nobodyさん:2010/02/12(金) 12:45:21 ID:???
>>870
5.5はあるよ
876nobodyさん:2010/02/12(金) 12:47:45 ID:???
MySQLスレに2002エラーが出るって聞きにいけばおk
877nobodyさん:2010/02/12(金) 13:00:21 ID:???
>>876
手順まとめてもう一回インストール書いてもダメだったらそちらでも聞いてみます

ちょっとご飯たべてきます
878nobodyさん:2010/02/12(金) 14:17:29 ID:ajCsRwoE
DB(MySQL5.1.42)から取得したカラム3つをそれぞれtext1.txt text2.txt text3.txtというファイル名で
zipに固めてダウンロードさせたいのですが、どういう方法と手順を踏めばよいのでしょうか?
879nobodyさん:2010/02/12(金) 14:25:56 ID:???
>>878
DBから値を取得
text1.txt text2.txt text3.txtをfopen→取得した値をfwrite(もしくはfile_put_contents)
text1.txt text2.txt text3.txtをzip圧縮(ZipArchive)
headerでzipを出力
880nobodyさん:2010/02/12(金) 17:22:39 ID:???
>>862
1,PHP設定ファイル(PHP.ini)の「;extension=php_mysql.dll」のコメントをはずします。
2,同じく、PHP設定ファイル(PHP.ini)のextension_dirにphp_mysql.dllの配置場所を追加します。(変更例:extension_dir = "c:\php\ext\")※「c:/php/ext/」だと上手くいかないことがあります。
3,PHPインストール先(例:c:\php)にあるlibmysql.dllをWindowsディレクトリ(例:c: \windows)にコピーします。
4,Apacheを再起動します。
881nobodyさん:2010/02/12(金) 17:24:00 ID:???
システムディレクトリなんかにコピーすんなよ
882nobodyさん:2010/02/12(金) 17:28:08 ID:???
だって、
php.iniのイジリ方も知らない人に、
環境変数の設定を説明すんのめんどい。
883nobodyさん:2010/02/12(金) 17:32:16 ID:???
しろ
884nobodyさん:2010/02/12(金) 17:58:48 ID:???
今時Windowsフォルダを汚す方法は古すぎだろ
885nobodyさん:2010/02/12(金) 19:00:16 ID:???
俺は外付けのHDDにインストールしてるな>サーバ関係
886nobodyさん:2010/02/12(金) 19:08:05 ID:???
外に出さないと責任取らないといけなくなるからな
887nobodyさん:2010/02/12(金) 19:57:24 ID:???
XAMMPとか気持ち悪い
888nobodyさん:2010/02/12(金) 22:06:17 ID:???
全角の方が気持ち悪い
889862:2010/02/12(金) 23:17:46 ID:bY1Qlu48
ID代わってますが862です
コマンドラインからMySQLもPHPも単体なら動作するんですが
PHPからMySQLを使うとどうしてもMySQLが応答しないのです
libmysql.dllのパスも通してますがphp5.2では大丈夫なんですがphp5.3ではダメみたいです


>>882
ご心配ありがとうございます
そのへんの説明は間に合ってます


とりあえずインストールをまとめました
設定ファイルをいじってないのでまだ使えませんが
続きは明日書くのでここが原因で動かないってところがあれば明日の夜行こうご指摘お願いします
ttp://hellosekaisan.blog97.fc2.com/
890nobodyさん:2010/02/12(金) 23:30:09 ID:???
ちゃんと読んで無いけど、そういう時はphpinfo()で
読み込まれているphp.iniが想定しているファイルかどうか
mysql関連のモジュールが読み込まれているかをいチェックしてみるといいかも

既にやってたらごめん
891nobodyさん:2010/02/13(土) 02:19:54 ID:???
http://pukiwiki.sourceforge.jp/?FAQ%2F28

これをやりたいんですが、
110行目あたりにそれらしいものがないし
書き換えるのか、追加するのかも分からないので
詳しく教えてください
892nobodyさん:2010/02/13(土) 02:45:44 ID:???
>>891
<div id="navigator">の内側で入れたいところに入れたらいいんじゃない
893nobodyさん:2010/02/13(土) 02:55:26 ID:???
>>892
いろいろ試してはいるんですが、どうしてもエラーになります
894nobodyさん:2010/02/13(土) 03:00:43 ID:???
>>1
895nobodyさん:2010/02/13(土) 13:46:22 ID:q0PjUtVL
【OS名】FreeBSD 7.1-RELEASE-p10 i386
【PHPのバージョン】5.2.12
【連携ソフトウェア】mysql
【質問内容】 おススメのO/Rマッパー教えて下さい。
友人に頼まれてSAKURAレンタルサーバーでDBを動かす必要が出てきて、
PHPあまり詳しくないので質問した次第です。
当方PerlなどでよくO/Rマッパーを使用しております。
896nobodyさん:2010/02/13(土) 13:49:33 ID:???
判断の基準は?
897nobodyさん:2010/02/13(土) 14:01:10 ID:q0PjUtVL
>>896 895への質問ってことでよいですか?
・接続設定が簡単
・DBの文字コードがSJISなんでSJISを問題無く扱える
・他ライブラリなどへの依存が少ない
・結果オブジェクトが扱いやすい
こんな感じです。
898nobodyさん:2010/02/13(土) 14:35:36 ID:???
PHP統合開発環境について質問します。
NetBeans や PHPEclipse など数種類あるようですが、
何がよいのでしょうか?
(軽快さ、習得の容易さ、開発しやすさ、安定性の面など)

当方最近PHPを覚え始め、現在エディタを使っていますが、
統合開発環境は早めに馴染んだほうがよいと思い、質問する
次第です。よろしくお願いします。
899nobodyさん:2010/02/13(土) 14:38:40 ID:???
ぽまえは俺様に名前欄に898と入れて自己解決しますたって書いて欲しいのかksg
900nobodyさん:2010/02/13(土) 14:48:37 ID:???
>>898
俺は今、国母の件で激しく不快な気分に晒されている
おとなしく>>1を読み直してから来るように
901nobodyさん:2010/02/13(土) 15:09:45 ID:???
                   ∩
♪  ∧__∧       ∧__∧|l|  ♪ ∧__∧
   (´・ω・`)三三)   (´・ω・`)|    (´・ω・と_) ))
   |    /      |     /      |    ./
♪ U   〈    ♪   U   〈     U   〈  ♪
  (__ノ^(___)     (__ノ^(___) ♪ (__ノ^(___)

     たまの失敗はスパイスかもね♪
902898:2010/02/13(土) 15:11:56 ID:???
あっ?
はんせいしてま〜す♪
903nobodyさん:2010/02/13(土) 15:15:22 ID:???
ていうかIDEの話題はスレ違いだろ
この板さがしてみそんなスレあったから
904898:2010/02/13(土) 17:22:03 ID:???
ご迷惑をかけてすみませんでした。
NetBeansで最高のPHPを製作できるように頑張ります。
905898:2010/02/13(土) 17:33:16 ID:???
たびたびすいません
最高のPHPの作り方をおしえてくれませんか
906nobodyさん:2010/02/13(土) 17:37:28 ID:???
ttp://www.php.net/
ここ行って開発に参加する
907nobodyさん:2010/02/13(土) 17:42:35 ID:???
PHPはCで開発されてるからCの勉強もしないとな
908898:2010/02/13(土) 17:52:55 ID:???
そうっすね
はんせいしてま〜す♪
909nobodyさん:2010/02/13(土) 21:58:43 ID:16IkPeoy
質問いたします。
ひとつの送信ボタンを押して複数のPHPファイルにデータを送信することは可能でしょうか?
また、もし可能でしたらコードを教えていただけないでしょうか。

拙いですが画像を作ってみました。
http://www1.axfc.net/uploader/Sc/so/82635

皆様の叡智を拝借できれば幸いと存じます。
910nobodyさん:2010/02/13(土) 22:11:05 ID:???
>>909
画像は見てないがcURLで検索
911nobodyさん:2010/02/13(土) 22:54:51 ID:???
>>909
送信した結果、どんなレスポンスを受けたいのか分からないので、答えられない

File_02とFile_03を実行した結果をマージして返すだけなら、ob_start()でバッファリングしつつ、File_02とFile_03をinclude()してやればおk

File_02とFile_03を実行した結果を個々に取り出したいなら、クライアントサイドのJavascriptでXHRを使って、リクエストを飛ばしてやればおk
912909:2010/02/13(土) 23:06:57 ID:16IkPeoy
大変失礼しました。
当方の書き方にだいぶ不備があったようです。文言を整えて出直してまいります。
913nobodyさん:2010/02/13(土) 23:53:29 ID:???
$a = file_get_contents("http;//example.com/File_02.php?day=0");
$b = file_get_contents("http;//example.com/File_03.php?day=0");
914nobodyさん:2010/02/14(日) 04:01:22 ID:???
>>911
includeするなwwPHPコードが含まれてたらどうするつもりだw
915nobodyさん:2010/02/14(日) 10:54:12 ID:tzGdzZbQ
【OS名】WindowsXP
【PHPのバージョン】5.2.10
【連携ソフトウェア】なし
【質問内容】

a.htmlからp.phpを
<form action="p.php" method="post">
で呼び出しています。

p.phpを直接読んだ場合、a.htmlへ飛ばしたいのですが、
p.php内で、$_SERVER['HTTP_REFERER']で判別しています。
PCからの場合、うまくいくのですが、携帯からの場合は
REFERERが設定されていないので、うまくいきません。
なにか、良い手はありますでしょうか?
916nobodyさん:2010/02/14(日) 10:56:08 ID:???
携帯 REFERER
でぐぐる
917nobodyさん:2010/02/14(日) 10:58:33 ID:tzGdzZbQ
>>916
はい、ぐぐってみます。
918nobodyさん:2010/02/14(日) 11:04:31 ID:tzGdzZbQ
ググッテみましたが、docomoはREFERERを送出しない
って書いてあるだけです。それは、知ってます。
919nobodyさん:2010/02/14(日) 11:07:51 ID:???
最近のdocomoはリフェラ出すだろ
920nobodyさん:2010/02/14(日) 11:14:55 ID:???
$_SERVER['REQUEST_METHOD'] を見ればいいような。
921nobodyさん:2010/02/14(日) 11:32:39 ID:tzGdzZbQ
>>920
あっけなく出来ました。
ありがとうございました。
922862:2010/02/14(日) 12:45:56 ID:J4myOPGw
エラーとかをブログにまとめました
規制中のためここにレスはできないかもしれませんが
お返事はブログで書こうと思います。
もしよろしければブログにコメントいただけると助かります
どなたかお助けください><
923nobodyさん:2010/02/14(日) 14:13:07 ID:RJDNM59A
フォームで受けた値を使って、fopen(),fputs(),fclose()でhtmlに書き出すプログラムを書いてみたんですが、
書き出すhtmlファイルのパーミッションを606に設定しております。
でもこれってやはり危険なのでしょうか・・・?
これまでフリーのcgiをいじってたくらいで、自分で書いたのが初めてなので、
パーミッションの正しい設定というものがいまいち判断がつかず。

作ったプログラムの概要
test.php内のフォームで "お知らせ:今日はいい天気"を入力して送信すると、test.htmlに"お知らせ:今日はいい天気"と書き出される。
test.phpは管理者が入力(実装時にはパスワード設定します)、test.htmlはたくさんの人が見る。
924nobodyさん:2010/02/14(日) 14:22:44 ID:???
パーミッションについて学べばいいじゃない
925nobodyさん:2010/02/14(日) 14:34:19 ID:???
とりあえず書き込みファイルは606か666でよい
余計な権限は与えないべきだが与えるべき権限は与えなくてはならない
まぁようするに>>924
926nobodyさん:2010/02/14(日) 15:43:04 ID:???
レスに感謝です。とりあえず、よしとして良さそうですね。
linuxもまだ3ヶ月、PHPにいたっては2日と日も浅く、もっと勉強しなければですね。
がんがります。
927nobodyさん:2010/02/14(日) 15:58:35 ID:rkEBs7TM
lastRSSというRSSパーサを使用しています。
元々の機能として、取得結果をキャッシュするのですが自動キャッシュ削除機能がないために
毎日手動で削除しています。
数が増えてきて面倒になってきたので、phpで自動キャッシュ削除機能付けたいのですが
どなたか良い方法がありましたらご教示ください。
928nobodyさん:2010/02/14(日) 16:05:07 ID:???
lastRSSなんてしらないしどういう仕組みになってるのかもしらないけど
今やってること(毎日手動で削除)を自動でできるようにすればいいんでしょ?
そんならキャッシュフォルダかなんかあるんだろうから
その中身を毎日削除するシェルスクリプト書いてcronでまわせばいいんじゃね
phpでやる必要はなっしんぐ
929928:2010/02/14(日) 16:07:33 ID:???
ちょっと文章がおかしかった

その中身を毎日削除するシェルスクリプト書いてcronでまわせばいいんじゃね

その中身を削除するチェルスクリプト書いて毎日cronでまわせばいいんじゃね
930nobodyさん:2010/02/14(日) 16:08:49 ID:rkEBs7TM
>>928
ありがとうございます。
レンタル共有サーバを利用しているので、cronを動かせない環境なので
なんとかphpでおこないたいと考えたのです。
調べた感じだとunlinkとかでできそうなのですが、あまり詳しくないために
自作でスクリプトを書くことは難しいそうなので、ヒントなどがあればと
思い、書き込みさせていただきました。
931nobodyさん:2010/02/14(日) 16:08:50 ID:???
チェルwwwwwwwww
スレ汚しほんとスマン
ちょっと逝ってくる
932nobodyさん:2010/02/14(日) 16:10:19 ID:rkEBs7TM
ちなみに、キャッシュフォルダは特定の場所にあります。
タイムスタンプを見て、「24時間以上経過したら削除」のような処理はphpではそもそも不可能なものでしょうか。
933nobodyさん:2010/02/14(日) 16:11:05 ID:rkEBs7TM
回答いただいておきながらごめんなさい・・・

不覚にもチェルでコーヒー吹きましたw
934nobodyさん:2010/02/14(日) 16:18:23 ID:???
>>932
fileatime ― ファイルの最終アクセス時刻を取得する
http://jp2.php.net/manual/ja/function.fileatime.php
filectime ― ファイルの inode 変更時刻を取得する
http://jp2.php.net/manual/ja/function.filectime.php
filemtime ― ファイルの更新時刻を取得する
http://jp2.php.net/manual/ja/function.filemtime.php
935nobodyさん:2010/02/14(日) 16:20:45 ID:???
>タイムスタンプを見て、「24時間以上経過したら削除」のような処理はphpではそもそも不可能なものでしょうか。
もちろん可能だけどそのスクリプトにアクセスして実行しないと当然消されない
つまり24時間経過してもスクリプトにアクセスがないと消されない
なので削除用のスクリプトを新規に組むというよりは
lastRSS側のスクリプトにそういう機能を組み込んでlastRSSにアクセスした時点で24時間以上経過してるものを削除
という風にしたほうがいい
けど人のスクリプト改造するのもめんどくさいので(処理自体は簡単だけどどこのロジックに組み込めるか調査するのが面倒・・・)
やっぱ新規に削除用のスクリプトを組んでwebcronで毎日同じ時間にアクセスしてもらえばいいんじゃないかな
936nobodyさん:2010/02/14(日) 16:20:51 ID:rkEBs7TM
>>934
ありがとうございます。
参考にさせていただきます。
937nobodyさん:2010/02/14(日) 16:20:54 ID:???
$updatetime = filemtime($file);
if ($updatetime < (time() - (60*60*24))) {
 unlink($file);
}
938nobodyさん:2010/02/14(日) 16:24:13 ID:rkEBs7TM
>>935
ありがとうございます。
難易度はともかく実現自体はできるのですね。
実行のトリガーはLastRSSへのアクセスよりも深夜帯などの定時で決め打ちのほうがよさそうですね。
934さんの情報などを含め、もう一度調査&勉強してみます。
939927:2010/02/14(日) 16:28:41 ID:???
連投になってしまうので、sageておきます。

>>937
ありがとうございます。
フリーのwebcronを探して利用させていただきます。
940nobodyさん:2010/02/14(日) 16:31:12 ID:???
連投の2回目でsageて何か意味あるのか?w
941nobodyさん:2010/02/14(日) 17:02:06 ID:???
webcronっていつのまにか有料になってたんだな
知らなかったわ
942nobodyさん:2010/02/14(日) 17:40:32 ID:???
Google Readerとか はてなRSSで疑似cron作れば
943nobodyさん:2010/02/14(日) 18:37:14 ID:???
<remarks>
<remark>
<item>値</item>
</remark>
<remark>
<item>値</item>
</remark>
</remarks>

こんな感じのXMLファイルを開いて値を読み出すにはどうしたらいいですかね^^
944nobodyさん:2010/02/14(日) 18:38:09 ID:nDKxL4PZ
【OS名】WindowsXP
【PHPのバージョン】5.2.10
【連携ソフトウェア】なし
【質問内容】

<remarks>
<remark>
<item>値</item>
</remark>
<remark>
<item>値</item>
</remark>
</remarks>

こんな感じのXMLファイルを開いて値を読み出すにはどうしたらいいですか^^

945nobodyさん:2010/02/14(日) 18:50:46 ID:HceFAq0z
sqlite_escape_stringでエスケープしても : や ( ) などの記号がそのまま残ってしまいsqlite_execする際に例外がスローされるのですが
適切にエスケープするにはどういった方法がありますか
946nobodyさん:2010/02/14(日) 18:57:45 ID:HceFAq0z
単なるミスでした、INSERTする値にシングルクォートが付いていませんでした・・・
947nobodyさん:2010/02/14(日) 20:09:01 ID:???
948nobodyさん:2010/02/15(月) 00:17:17 ID:???
>>944
$contents = file_get_contents($file_name);
$xml = simplexml_load_string($contents);
値1 = $xml->remarks->remark[0]->item;
値2 = $xml->remarks->remark[1]->item;
949nobodyさん:2010/02/15(月) 01:32:28 ID:???
preg_replaceでマッチした$1の後に数字を起きたいのですがどうすればよいでしょうか?
$1の後に数値をおいただけでは機能しませんでした。

preg_replace('/./', '$10', 'a'); // a0とはならない
950nobodyさん:2010/02/15(月) 02:15:48 ID:???
>>949
${1}123
951nobodyさん:2010/02/15(月) 09:22:58 ID:hi3MtdSO
またまた、教えてください。

【OS名】WindowsXP
【PHPのバージョン】5.2.10
【連携ソフトウェア】なし
【質問内容】

a.htmlからp.phpを
<form action="p.php" method="post">
で呼び出しています。
サイト名名をhttp://example.com/とします

a.htmlをローカルに保存し、
<form action="p.php" method="post">

<form action="http://example.com/p.php" method="post">
と書き換えて、a.htmlを開くと、
p.phpが実行されて、結果が表示されます。

この様な外部サイトからp.phpを使う事を、
抑止したいのですが、よい方法はありますでしょうか?
952nobodyさん:2010/02/15(月) 09:28:52 ID:???
>>951
セッション使う
953nobodyさん:2010/02/15(月) 09:29:49 ID:???
リファラ
954nobodyさん:2010/02/15(月) 09:31:23 ID:dO9qGZvq
各メニュークリックしたときにそのページ全体が別ページに飛ぶのではなく
ページの内容部分だけ外部ファイルを読み込んで更新するはどうしたら良いですか?
955nobodyさん:2010/02/15(月) 09:32:45 ID:???
>>954
iframeもしくはajax
956nobodyさん:2010/02/15(月) 09:39:11 ID:hi3MtdSO
>>952
セッションについて、勉強してみます。

>>953
携帯からのアクセスも想定しているので、
リファラは使えません。
957951:2010/02/15(月) 09:47:52 ID:hi3MtdSO
いまいち分からないのですが、

a.html→p.phpのように読み込んでいるのですが、
a.htmlの中でsession_start();はできませんよね。

p.phpで、session_start();をして、
http://example.com/a.index.htmlから
飛んできているのか否かって判別できるのでしょうか?
958nobodyさん:2010/02/15(月) 09:52:06 ID:???
>>957
htmlからか
リファもダメなら無理じゃね?
何を飛ばすかしらんけどp.phpでバリデーションをしっかりするしかないかな多分
959951:2010/02/15(月) 10:02:01 ID:hi3MtdSO
>>958
なるほど。
一応、p.phpでは、入力の値のチェックはしているので、
変な挙動はしないのですが、なにか気持ちが悪いので、
この質問のようなことができないか悩んでいるところです。
960nobodyさん:2010/02/15(月) 10:02:04 ID:???
>>957
a.htmlからimgタグかscriptタグでPHPファイルを読み込んでセッションセットすればいけると思うよ
961nobodyさん:2010/02/15(月) 10:06:23 ID:???
会員制サイトの自動ログインとか普通に行われてるんだし
別に意識するようなことじゃなかろう
962951:2010/02/15(月) 10:22:41 ID:hi3MtdSO
>>960
a.html内に<img src="s.php">を記述する。

s.phpの中身は、session_start();を記述。

p.phpの中身は、
・session_start();を記述。


んんん???
で、p.phpでは、どのような判定をすれば良いのか???

a.htmlで設定されたsession_idと
p.phpのsession_id() を比べる?
p.phpの中で、a.htmlで設定されたsession_idを得るのは可能ですか?


私、トンチンカンな事、言ってますか?
963nobodyさん:2010/02/15(月) 10:55:47 ID:???
>>962
s.php
session_start();
$_SESSION["check"] = 1;

p.php
session_start();
$checked = isset($_SESSION["check"]);
unset($_SESSION["check"]);

みたいな感じかな
964nobodyさん:2010/02/15(月) 11:01:47 ID:jrDRH19y
DNSが死んでると、mb_send_mailがアホみたいに遅くなる。
どうにかならんかね。
965951:2010/02/15(月) 11:08:48 ID:hi3MtdSO
>>963
ありがとうございます。

少し、考えてみました。

セッションの変数名と値は、推測できなさそうな物を使えばいいかと。
s.phpを直接読まれても、ソースは見れないから。


で、どうしようかなぁ。。。
鯖特異な何かをMD5とかshaとかで暗号化すれば、いいのかなぁ〜
って思ってます。
966951:2010/02/15(月) 11:09:49 ID:hi3MtdSO
あ、特異な変数名は無理ですね。
967nobodyさん:2010/02/15(月) 11:27:19 ID:???
>>965
csrf_token()で$csrf_tokenというランダム文字列つくってセッションにセット
飛んだページでcsrf_valid()でバリデートしてtokenを削除すれば暗号とか関係ない
968nobodyさん:2010/02/15(月) 11:52:32 ID:???
ローカルに保存してまで改ざんしたい奴には無意味な対処だけどいいのかい
969951:2010/02/15(月) 11:56:47 ID:hi3MtdSO
>>967
csrfなんたら、調べてみます。
ありがとうございます!
970951:2010/02/15(月) 11:58:00 ID:hi3MtdSO
>>968
え、無意味なんですか?
意味ある対処だと思って、考えていたんですが。
971nobodyさん:2010/02/15(月) 12:03:36 ID:CW5G1rtw
【OS名】CentOS 5.3
【PHPのバージョン】php5.16
【連携ソフトウェア】連携はしてません
【質問内容】
example.php
exec("/usr/bin/php /var/www/html/err.php");

err.php
echo "error";

こういうのを作成しました。
元々1つのphpにまとめていたのですが、エラー内容が複雑になり分離しました。
この時にexample.phpを実行してもerrorと表示されないのですが、どのようにすれば表示されるようになるのでしょうか?
なにぶん経験がないものでおかしな質問になっているかもしれませんがアドバイスいただけると助かります。
972951:2010/02/15(月) 12:03:48 ID:hi3MtdSO
>>967
csrf_validで、ググると、Hit0件。
973nobodyさん:2010/02/15(月) 12:05:05 ID:???
>>971
/php の後にスペースが入っている。
974nobodyさん:2010/02/15(月) 12:08:42 ID:???
>>971
何がしたいのかわからんが、
require("err.php");でいいんじゃない?

どうしてもexecつかうなら
exec("/usr/bin/php /var/www/html/err.php", $result);
print_r($result);
975nobodyさん:2010/02/15(月) 12:12:07 ID:???
>>971
echo exec("/usr/bin/php /var/www/html/err.php");

こんな書き方でも。

でも>>974さんがいうようにincludeしたほうがいい
976nobodyさん:2010/02/15(月) 12:20:49 ID:???
>>972
>>967は自分で作れってことだと思うが
977971:2010/02/15(月) 12:34:15 ID:CW5G1rtw
アドバイスありがとうございます。
err.phpの中が
if($err_num == 1){
echo "error1";
}elseif($err_num == 2){
echo "error2";
以下略
というような内容になっていて、$err_numによって表示をわけている状態でした。
exec叩いた時に一緒に$err_numを渡して表示すればいいと思ったのですが
この場合はあくまでerr.phpでは表示しているけど、実行されているのはexample.phpなので
表示されてない状態だとアドバイスいただき気づきました。
echo exec〜が修正が少なくて良いかと思いますが、今後の事を考えてincludeを使用して対応してみたいと思います。
ありがとうございました。
978nobodyさん:2010/02/15(月) 12:36:33 ID:???
>>970
ブラウザがやってる通りの手順でHTTP通信を真似されたら簡単に突破されるし、
それ以前にフォームのDOMをいじられても検出できないでしょう
改ざんを前提にして入出力の検証コードに時間を割くか、
可能ならセッションが途切れてしまう設計から見直した方が良いよ
979nobodyさん:2010/02/15(月) 17:48:13 ID:???
んーー、結局、解決していないことに気づいた。

a.htmlに
<img src="s.php" width="0" height="0">
を記述。

s.php
session_start();
$_SESSION["check"] = 1;

p.php
session_start();
$checked = isset($_SESSION["check"]);
unset($_SESSION["check"]);

とする場合、
a.htmlをローカルに保存し、
<img src="http://example.com/s.php" width="0" height="0">
と書き換え、アクセスすると、p.phpが動いてしまうことが分かりました。



拡張子.htmlでphpが動くように、変更すれば、解決かな。。。
980951:2010/02/15(月) 17:49:23 ID:hi3MtdSO
>>979は951です。
981951:2010/02/15(月) 17:54:37 ID:hi3MtdSO
>>978
> 改ざんを前提にして入出力の検証コードに時間を割くか、
> 可能ならセッションが途切れてしまう設計から見直した方が良いよ

難しくて理解できませんです。。。
982951:2010/02/15(月) 19:13:49 ID:hi3MtdSO
a.htmlの先頭に
<?php
session_start();
$_SESSION["check"] = "1";
?>
を記述。

p.phpの先頭に
session_start();
if( $_SESSION["check"] != "1" ) {
header("Location: http://example.com");
exit();
};
を記述すると、
PCからは、うまくいくけど、
携帯からでは、http://example.comに飛んでいってしまい
うまく動作しない。。。
983951:2010/02/15(月) 19:16:28 ID:hi3MtdSO
docomoはCookieが使えないのかorz
984nobodyさん:2010/02/15(月) 19:22:18 ID:???
次スレ立てる気なさそうだから立ててくる
985nobodyさん:2010/02/15(月) 19:27:22 ID:???
986nobodyさん:2010/02/15(月) 19:53:10 ID:hi3MtdSO
>>985
987nobodyさん:2010/02/15(月) 19:55:51 ID:???
URLなりhiddenなり持ちまわす方法は何通りかあるわけでクッキーである必要はない
988951:2010/02/15(月) 19:59:24 ID:hi3MtdSO
>>987
hiddenを調べてみます。


>>all
眠いので、明日に持ち越すかもしれません。
寝てしまったら、明日もよろしくお願いします。
989951:2010/02/15(月) 20:05:50 ID:hi3MtdSO
hiddenって、単に、画面に表示しないだけじゃないですか?
ソースをローカルに保存した場合、バレバレですよね?
990nobodyさん:2010/02/15(月) 20:14:58 ID:???
>>989
セッションIDを持ち回す方法がcookieである必要は無いということを
>>987氏は言いたいんだと思うよ
991nobodyさん:2010/02/15(月) 22:35:37 ID:???
992nobodyさん:2010/02/15(月) 23:06:28 ID:???
>>989
session.use_trans_sidとか調べていると良いかも

>>991
そういうのいらないから
993nobodyさん:2010/02/15(月) 23:15:49 ID:???
>>987=>>990=>>992

お前らがいらねーよ、糞質問はスルーしろks

あと俺様は>>991じゃねーからな
994nobodyさん:2010/02/15(月) 23:18:07 ID:???
>>951
とりあえず画像認証つければ全部解決じゃね

>>993
必死すぎワロタ
995nobodyさん:2010/02/16(火) 09:20:26 ID:???
バカは放置しなよ
どうせいつものチンピラだろ
996nobodyさん:2010/02/16(火) 09:39:35 ID:???
俺様をチンピラ呼ばわりか、日本人はksだな
俺様を馬鹿にするならPHP使うなよ。

997nobodyさん:2010/02/16(火) 09:41:58 ID:???
そっすね
998nobodyさん:2010/02/16(火) 10:31:51 ID:???
そろそろ質問いいですかね?
999nobodyさん:2010/02/16(火) 10:40:27 ID:???
どんとこい
1000nobodyさん:2010/02/16(火) 10:53:18 ID:???
だが断る








1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。