【PHP】下らねぇ質問はここに書き込みやがれ 23
■ このスレッドは過去ログ倉庫に格納されています
0001909
2006/06/23(金) 01:59:03ID:lPdqGX0Zここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
過去スレは>>2
0554nobodyさん
2006/06/30(金) 23:59:47ID:???それはCSVじゃー!
>>545
そりゃMVPやんけー!
>>547
それNECやん!NECつったらPC-100やん?
>>554
マ板でやれ
0555nobodyさん
2006/07/01(土) 00:10:38ID:???>537-538です。うまいことできました。
ありがとう。
<?
$tp = <<<__HTML
<p>%1\$s - <a href="%1\$s" title="%2\$s">%1\$s</a></p>
__HTML;
$ato = array (
"1.php" => "1.phpへ",
"2.php" => "2.phpへ",
"3.php" => "3.phpへ",
"4.php" => "4.phpへ",
"5.php" => "5.phpへ"
);
foreach ($ato as $link => $title) {
printf ($tp, $link, $title);
}
?>
0557nobodyさん
2006/07/01(土) 01:59:51ID:???PHP Extension をインストールしたいのですが、php-config と mecab-config
がない状態です。phpize は php-devel のインストールでできました。
php-config と mecab-config はどうしたらできるのでしょうか。
よろしくお願いします。
0558nobodyさん
2006/07/01(土) 03:10:55ID:???0559nobodyさん
2006/07/01(土) 09:12:59ID:???毎回「192.168.1.xxx」が返ってきてしまいます。(全国のいろんな人がやっても同じ)
でもこれって自分(鯖)の側のネットワーク内部のIPアドレスですよね?
どうして$_SERVER['REMOTE_ADDR']でこんな戻り値になっちゃうのでしょう??
ちなみに鯖はXREAです。
0560nobodyさん
2006/07/01(土) 09:14:31ID:???0566nobodyさん
2006/07/01(土) 13:46:47ID:???サーバー(自分自信)のリモートアドレスを取得してきている。
$REMOTE_ADDR = getenv("REMOTE_ADDR");
0567nobodyさん
2006/07/01(土) 15:34:43ID:???普通はクライアント側のIPアドレスを返す筈なのに、なんで?って話だと思うが。
まぁ、xreaはそういうものなのかも試練。
0568nobodyさん
2006/07/01(土) 17:12:26ID:???嘘こくな
0570nobodyさん
2006/07/01(土) 18:20:26ID:???0571nobodyさん
2006/07/01(土) 20:29:48ID:???0572571
2006/07/01(土) 20:33:45ID:???チャットを作っているのですが、発言/リロードを押すと下のフレームもリロードさせたいのですが
どのようにすればうまく動作しますか?
上はtopFramem下はmainFrameです。
<script type="text/javascript">
<!--
function reload(){
parent.mainFrame.location.href='logpage.php';
}
-->
</script>
<input name="Submit" type="submit" id="Submit" value="発言/更新" onclick="reload()" />
PHPで、
if($_POST['Submit'] == "発言/更新"){
書き込み処理
}
このように記述しています。
テキスト欄に入力して発言をすると、ファイルにログが書き込まれフレームは更新されず、
空白の状態でボタンを押すと更新されます。
発言したうえで更新したいのですが、どのようにすれば良いのでしょうか?
0573nobodyさん
2006/07/01(土) 20:42:48ID:???普通そういう場合はformタグのtaeget属性を下側フレームにして
書き込み処理とログ表示を一括して下側のフレームで行い、
送信押されたらフォームに入力されたテキストをJavaScriptで消すってもんじゃないの?
その書き方だと発言時は書き込み処理が終わる前にリロードしてしまう気がする。
0575nobodyさん
2006/07/01(土) 20:53:10ID:???スネーク、まずはどこでもいいからその辺のフレームチャットを見てくるんだ。
あんまり変な質問をしていたら回答者が呆れて晩御飯に出かけてしまうぞ。
0577nobodyさん
2006/07/01(土) 21:09:54ID:???スネーク、問題はPHP以前のところにあるようだ。このままでは板違いになってしまうぞ。
早急にHTMLをしっかり勉強し直してPHPに関する質問に切り替えるんだ。
0578559
2006/07/01(土) 21:24:54ID:???誰かXREAでアカウント持ってる人、実験してみてもらえませんかね??
ちなみに他の鯖(XREA以外)で同じスクリプトを走らせたところ、
当然ながら問題なくリモートアドレスを取得できました。
0580nobodyさん
2006/07/01(土) 21:47:19ID:???ちったぁ検索したか?
餅は餅屋。XREA のことは XREA に聞け。
http://sb.xrea.com/showthread.php?threadid=6646
ちなみに、手元で phpinfo() を表示させてみたら REMOTE_ADDR は
グローバル IP アドレスが入ってたよ? http の場合ね。https は未確認。
0582nobodyさん
2006/07/01(土) 22:05:11ID:???は空みたい。
0583nobodyさん
2006/07/01(土) 22:07:41ID:???0584nobodyさん
2006/07/01(土) 22:33:18ID:???$_SERVER["REMOTE_ADDR"],
$_SERVER["REMOTE_HOST"],
getenv("REMOTE_ADDR"),
gethostbyaddr($_SERVER["REMOTE_ADDR"])
で
$_SERVER["REMOTE_HOST"]
以外は期待通りの動作
>>559か使ってるサーバ固有の問題
0585nobodyさん
2006/07/01(土) 23:01:00ID:???> $_SERVER["REMOTE_HOST"]
> 以外は期待通りの動作
期待通りも何も、REMOTE_HOST は必ずしもセットされるとは限らないから
別に期待通りじゃない、とは思わない。
負荷軽減のために逆引きしてないサーバは腐るほどある。
REMOTE_HOST が未定義だったら REMOTE_ADDR を resolve するのは
ネットワークプログラミングでは基本ですが?
0586nobodyさん
2006/07/01(土) 23:19:21ID:???0587nobodyさん
2006/07/01(土) 23:19:58ID:???具体的には、array('key1' => 'value1', 'key2' => 'value2') という配列を作成したいのですが、
array(array('key1' => 'value1'), array('key2' => 'value2')) という配列になってしまいます。
追加処理はこんな感じです。
for ($i = 0;$i < $count;$i++) {
$add[] = array("key{$i}" => "value{$i}");
}
よろしくお願いします。
0588nobodyさん
2006/07/01(土) 23:20:01ID:???と書かれたときに、これにそのURLのリンクを貼りたいのですが、
どのようにすれば良いのでしょうか?
0591nobodyさん
2006/07/01(土) 23:24:14ID:???0592nobodyさん
2006/07/01(土) 23:25:11ID:???/(^|[^=;])(https?:\/\/[!#\$%&'()*+,\-.\/:;=\?@_~\w]+)/
0593nobodyさん
2006/07/01(土) 23:26:16ID:???(https?:\/\/[!#\$%&'()*+,\-.\/:;=\?@_~\w]+)
0594nobodyさん
2006/07/01(土) 23:30:40ID:???"<a href=\"\\1\" target=\"_blank\">\\1</a>", $url)
0595nobodyさん
2006/07/01(土) 23:34:57ID:???if ($url == "http://example.com/"){
echo "<a href=\"http://example.com/\">http://example.com/</a>";
}
0600nobodyさん
2006/07/02(日) 00:41:34ID:oZjla2sMどうすればいいのでしょうか
0601nobodyさん
2006/07/02(日) 00:48:12ID:???知らないけど。
0602nobodyさん
2006/07/02(日) 00:53:26ID:???if ($url == "http://example.com/"){
echo '<a href='.$url.'>'.$url.'</a>';
}
0604nobodyさん
2006/07/02(日) 01:02:19ID:???どのようにすれば良いのでしょうか?
@a@⇒<img src=a.gif>
@phpkamo@⇒<img src=phpkamo.gif>
0605nobodyさん
2006/07/02(日) 01:09:46ID:???0606nobodyさん
2006/07/02(日) 01:18:43ID:oZjla2sM正規表現で改行2個は
ereg("^$", $var)
でよいでしょうか。
0607nobodyさん
2006/07/02(日) 01:22:56ID:W09rfuPj考えられるファイル(例えばCGI)の拡張子を「txt」にしたいと思います。
アップロードするファイルの種類を調べるにはどうしたら良いでしょうか?
ユーザが偽装できてしまうようではセキュリティ的にマズいですし・・・
やはりアップロードファイルの拡張子を調べるのが一番なのでしょうか?
それから、圧縮ファイルを展開する関数ってあります?
0608nobodyさん
2006/07/02(日) 01:27:10ID:???ファイルタイプ
http://jp.php.net/manual/ja/features.file-upload.php
圧縮ファイル
http://jp.php.net/manual/ja/funcref.php
の一覧からお好きなものをチョイス
0609nobodyさん
2006/07/02(日) 01:41:16ID:W09rfuPj>ファイルの MIME 型。ただし、ブラウザがこの情報を提供する場合。 例えば、"image/gif" のようになります。
>この MIME 型は PHP 側ではチェックされません。
>そのため、 この値は信用できません。
これでも大丈夫かな?
0610nobodyさん
2006/07/02(日) 01:41:40ID:???$nl = "\r\n";
ereg_replace("$nl($nl)+", $nl, $text);
preg_replace("/^$nl/m", "", $text);
^$はマッチ幅ナシね。
0611nobodyさん
2006/07/02(日) 01:53:12ID:???大丈夫なのか否かってのは何を作りたいかによるから何とも言えない。
確かに、hidden パラメータとかと同じで、改竄はありうる。
しかし、そのファイルが例えば JPEG か否かをちゃんと判断するには
プログラマがそのファイルの内容・構造をチェックして判断しなければならない。
その為には、そのファイルのフォーマットの仕様・特徴(SOI APP …など)
を知っていないと判断のプログラムが書けませんが
それが出来るなら、自分でチェックすれば良い話です。
簡易に済ませたかったら system で file を呼ぶとかも考えられますけど…
0612nobodyさん
2006/07/02(日) 01:58:42ID:oZjla2sMありがとうございます
$text = 'log.txt';
$nl = "\r\n";
for($i = 0; $i < count($line); $i++){
if( ereg_replace("$nl($nl)+", $nl, $text) ){
preg_replace("/^$nl/m", "", $text);
break;
}
}
こう作ってみたんですけど、改行抜けません
おかしい所教えてもらえませんでしょうか
0613あああ ◆rHbUqJDbds
2006/07/02(日) 02:09:51ID:???0614nobodyさん
2006/07/02(日) 02:14:51ID:???サンプル■1234■5678
の場合、最初の■以降の文字を消したいのですが、
preg_replace('/■?', '', $str);
こうしたのですがうまくいきません。
どこが間違っているのでしょうか
0615nobodyさん
2006/07/02(日) 02:17:45ID:???preg_replace("/^$nl/m", "", $text);
↓
$text = preg_replace("/^$nl/m", "", $text);
つーか、せっかくpreg使ってるのに何でeregもつ買ってるの?
pregだけでいいんでない?
$text = file_get_contents("test.txt");
$nl = "\r\n";
$text = preg_replace("/^$nl/m", "", $text);
print($text); //確認
0616614
2006/07/02(日) 02:19:55ID:J/w8BCAt方向が変わってしまって^^;
サンプル■1234■5678
これを、最初の■で区切ることはできますか?
サンプル
■1234■5678
こうわけたいのですが
0617nobodyさん
2006/07/02(日) 02:30:21ID:???俺初心者だからかなり馬鹿っぽいやり方かもしれないけど
$sample = "サンプル■1234■5678";
$line = explode("■", $sample);
foreach($line as $key => $value)
if ($key == 0) $hoge = ($value."\n");
else $hoge .= ("■".$value);
print($hoge);
こんなんはどうかな。
0618nobodyさん
2006/07/02(日) 02:30:46ID:???もし配列で持ってるなら "" な項を捨てりゃいいだけだよ
>>616
都合のいい方使って好きなように。
$text = "サンプル■1234■5678";
list($mae, $usiro) = explode("■",$text,2);
$usiro = "■".$usiro;
echo "explode: $mae, $usiro\n";
preg_match("/^(.*?)(■.*)$/", $text, $capture);
echo "preg_match: $capture[1], $capture[2]\n";
0620nobodyさん
2006/07/02(日) 04:04:38ID:???<frame src="top.php?id=<? echo $_GET['id'];?>" name="topFrame" scrolling="Yes" id="topFrame" title="topFrame" />
<frame src="logpage.php?id=<? echo $_GET['id'];?>" name="mainFrame" id="mainFrame" title="mainFrame" />
</frameset>
この場合で各フレームのURLを見たところ、?id=がなかったのですが
これでは無理なのでしょうか?
0621620
2006/07/02(日) 04:05:08ID:???0622nobodyさん
2006/07/02(日) 04:11:06ID:???$abs = 30;
setTimeout("location.href='abc.php'",1000*<? echo $abc;?>);
0624nobodyさん
2006/07/02(日) 04:32:06ID:???PHP は HTML を出力するに過ぎない。
その出力する HTML に変数の値が埋め込まれた JavaScript が書かれれば良いだけ。
言っている意味分かる?
0626622
2006/07/02(日) 09:39:02ID:???つまり、一気にJavaScriptを書き出せば良いのでしょうか?
>>625
すみません、両方$abcでお願いします
0627622
2006/07/02(日) 09:44:38ID:???<?
echo "<SCRIPT LANGUAGE=\"JavaScript\">";
echo "<!--";
echo "setTimeout(\"location.href=logpage.php?id".$id."\",1000*10)";
echo "parent.topFrame.document.form.com.value=\'\'";
echo "-->";
echo "</SCRIPT>";
?>
としてみたところ、結果は同じでした・・・
どうすれば良いのでしょうか
0628622
2006/07/02(日) 09:57:28ID:???0630nobodyさん
2006/07/02(日) 09:58:14ID:???0631nobodyさん
2006/07/02(日) 10:24:55ID:???http://question.excite.co.jp/kotaeru.php3?q=2250330
http://pc8.2ch.net/test/read.cgi/hp/1151633256/53
0632nobodyさん
2006/07/02(日) 12:02:59ID:???0633nobodyさん
2006/07/02(日) 12:12:43ID:???echo $_SESSION['var'];
これって携帯でも表示される?
0634nobodyさん
2006/07/02(日) 13:17:57ID:???0635nobodyさん
2006/07/02(日) 13:44:17ID:???print(mb_convert_kana($str,'KV'));
↑の結果が「サーバサイド技術」のままで、全角に変換されないのですが
PHPはFC5のVersion 5.1.4です。
0636nobodyさん
2006/07/02(日) 14:00:21ID:???0637nobodyさん
2006/07/02(日) 14:03:50ID:???文字コードを指定してやって。
print(mb_convert_kana($str,'KV','euc-jp'));
みたいに。
0638nobodyさん
2006/07/02(日) 14:28:22ID:???ありがとうございます。うまくいきました。
>636
そんなこと言わずにおつきあい下さいな
0639nobodyさん
2006/07/02(日) 14:34:36ID:???0640nobodyさん
2006/07/02(日) 14:42:29ID:???0641nobodyさん
2006/07/02(日) 14:44:45ID:???0642nobodyさん
2006/07/02(日) 15:11:01ID:???自作PHPがsafariの場合上手く動作しないのですが、
よい回避策ないでしょうか?
ttp://www.sodan.ecc.u-tokyo.ac.jp/2004/FAQ/faq52-20040330.shtml
0643636
2006/07/02(日) 15:19:45ID:???0645nobodyさん
2006/07/02(日) 15:36:09ID:???0646nobodyさん
2006/07/02(日) 17:31:55ID:YHlCRRocシリアライズは便利で高速そうですが一度に全ての変数をメモリに乗せてしまう事になるなど
多少のデメリットもあるようですが、みなさんはどう考えられてますか?
0647nobodyさん
2006/07/02(日) 17:51:29ID:???多いかどうかはわからないけどシリアライズはかなり便利。
俺もよく使ってる。
掲示板のログ全部とかはさすがに入れないけども
要は工夫次第。
0648nobodyさん
2006/07/02(日) 17:55:10ID:???ファイルポインタとかをどのように指定して良いのか分かりません。
0649nobodyさん
2006/07/02(日) 18:53:00ID:???0650nobodyさん
2006/07/02(日) 18:54:27ID:???0651nobodyさん
2006/07/02(日) 19:11:02ID:???>>649
すいません。よく分かりません。orz
>>650
負荷が気になるのですが、そうするのが一般的なのでしょうか。
0652nobodyさん
2006/07/02(日) 19:39:02ID:???任意ってのが例えばランダムで選択されるのか
ある文字列がある場合なのか
どのような条件かにもよると思う。
■ このスレッドは過去ログ倉庫に格納されています