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

【PHP】下らねぇ質問はここに書き込みやがれpart18

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/03/15(水) 19:18:21ID:yiOrS10N
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/

前スレ【PHP】下らねぇ質問はここに書き込みやがれpart17
http://pc8.2ch.net/test/read.cgi/php/1140786348/

過去スレは>>2-3あたり
0577nobodyさん2006/03/28(火) 16:36:47ID:???
str_replace()はわからないけど、
count()は配列の要素数を表すものであり
文字数を数えるものではないので
1度しかループしないように思うのですが・・・

もしそうであればcount()をstrlen()に変えればOK

で、%Xは数値→16進数の変換なので非数値は当然0になる。
文字をアスキーコードに変換したいのならord()を使いましょう。
0578nobodyさん2006/03/28(火) 16:38:34ID:???
>>576
$str = str_replace("\r\n", "\n", $_POST['test']);
じゃなくて
$str = str_replace("\r\n", "\n", $str);
だろ
$strは文字列だからcount($str)は1だし
何がやりたいのかさっぱりわかりません
どうもありがとうございました
0579nobodyさん2006/03/28(火) 16:45:15ID:???
>>577, >>578
ごめんstrlenでやったんだった。

> $str = str_replace("\r\n", "\n", $_POST['test']);
> じゃなくて
> $str = str_replace("\r\n", "\n", $str);
に関しては、$_POST['test']に前ページのデータがくるの。

$_POST['test'] = "hoge\r\nhoge";
から
$str = "hoge\nhoge";
です。

素直にこぴぺすればよかったのに。
0580nobodyさん2006/03/28(火) 16:56:51ID:???
>>579
プロスラムは作った通りにしか動作しない
<?php
$_POST['test'] = "hoge\r\nhoge";
$str = str_replace("\r\n", "\n", $_POST['test']);
$n = strlen($str);
for ($i=0; $i<$n; $i++){
printf("%s 0x%02X\n", $str{$i}, ord($str{$i}));
}
?>
普通に表示される
0581nobodyさん2006/03/28(火) 16:57:40ID:???
プロスラムってなんだよ
orz
05825762006/03/28(火) 17:00:13ID:???
e-to,よくわからんけどstr_replace()がうまく通りました。
また文字についてもord()で見れました。
でも改行コードのアスキーが出てこなかったので残念でした。
0A NL 0D CR
この辺出てくるかと思ったんだけどなぁ・・・、なぁ・・・・('A`)
05835762006/03/28(火) 17:02:45ID:???
>>580
ちゃんとでてきますた。thx
0584nobodyさん2006/03/28(火) 17:05:28ID:???
>>582
元々の文字列に改行が含まれてないとかじゃなく?
こっちでやったら0x0Aってちゃんと出たぞ。
0585nobodyさん2006/03/28(火) 17:14:10ID:???
>>584
"%s", 0x0A でNLとか表示されると思っていたようだぞ

05863842006/03/28(火) 19:06:57ID:???
おかげさまでログインphpが完成しました。ありがとうございました。

また質問なのですが、phpにデータベースの内容を読み込みたいのですが、
test.dat(DB)に

aaa,123,xxx,xxx
bbb,234,xxx,xxx
ccc,345,xxx,xxx
…

と複数行にデータがある場合で「234」だけを表示するために、
「printする行と列を指定する」にはどうすればいいですか?

もしくは、IDが「bbb」と入力されていた場合は「$idがbbbならその次のデータ(234)を表示」とするのでしょうか?
0587nobodyさん2006/03/28(火) 19:22:51ID:???
現在複数行書き込める掲示板を作っているのですが、一行で表示されてしまいます。
str_replace を使うところまではわかったのですが
$comment = str_replace();なかんじで()内はどのように書けばいいのでしょうか?
05885842006/03/28(火) 19:25:56ID:???
すいません。大きく勘違いしていました。
簡単にできました。
すいませんでした。
0589nobodyさん2006/03/28(火) 19:42:10ID:???
>>587
その質問にはどのようなかんじで回答すればいいのでしょうか?
0590nobodyさん2006/03/28(火) 19:48:55ID:???
>>587
なんとなく言いたいことはわかるが、よくわからずに答えても混乱させるだけなので
もっと詳しく状況説明汁
0591nobodyさん2006/03/28(火) 19:53:07ID:???
>>587
つ[nl2br]
0592nobodyさん2006/03/28(火) 19:57:03ID:???
>>589,>>590
申し訳ありません。説明不足でした。
現在複数書き込める掲示板をPHPで作成しています。
保存方法はテキストを利用して
$write_data = $name."<>".$title."<>".$color."<>".$comment."<>".$pass."<>".date("Y/m/d H:i:s")."\r\n";
こんな感じで書き込みをしています。しかし、複数行書き込めるTEXTAREAに複数行(エンターで改行)で書き込むと
スレッドがいくつも作成されて、$passデータが題名のところにでてしまったり変になってしまいます。

そこで、対応策にstr_replaceというものを使うと言う事まではわかったのですが、
str_replaceの使い方がよくわかりません。どのように使えば複数行で表示することができるのでしょうか?

ファイル書き込みは一行ずつで。
0593nobodyさん2006/03/28(火) 20:01:20ID:y7+D/qxU
>>558
THANKSです。ビンゴでした。
当方の5.0.3を使っており、readfileを使うとダウンロードが途切れてしまっていたようです。
freadに置き換えて、正常に動くようになりました。
どうもありがとうございました。

本当に困って質問したのに、「マニュアルよめ」とか、「質問厨」とか言われて
ちょっと悲しかったです・・。
0594nobodyさん2006/03/28(火) 20:06:25ID:???
それに懲りたならもう2chで質問なんてするのはやめることだ。
0595nobodyさん2006/03/28(火) 20:06:57ID:???
>>592
データを保存する前にnl2brしましょう。

>>593
まじめに質問するなら本スレへ。
ここは下らねぇ質問で雑談するところ。
自分の意にそぐわない回答をもらったからといっていちいちヘコまない。
0596nobodyさん2006/03/28(火) 20:08:16ID:???
雑談するところでは無いんだが。
0597nobodyさん2006/03/28(火) 20:13:24ID:???
なんでそんな部分につっかかるの?
0598nobodyさん2006/03/28(火) 20:35:26ID:???
>>592
うまくできました。
ありがとうございました。
0599nobodyさん2006/03/28(火) 20:56:09ID:???
>>593
httpdもApacheとIISとで試してるぐらいなんだから
PHPもバージョン変えて色々と試してみれば良かったのに...
0600nobodyさん2006/03/28(火) 20:57:42ID:???
ん、nl2brだけで良かったのかな?
>stringに含まれるすべての改行文字の 前に '<br />' を挿入して返します。
「挿入」なので改行は残ってしまうと思ったんだが・・・。
0601nobodyさん2006/03/28(火) 20:59:12ID:???
改行なんて残ったっていいじゃないか
0602nobodyさん2006/03/28(火) 21:09:03ID:QKqhyHFD
>>600
$comment = str_replace("\r\n", "\r", $comment);
$comment = str_replace("\r", "\n", $comment);
$comment = str_replace("\n", "<br>", $comment);

と
$write_data = $name."<>".$title."<>".$color."<>".nl2br($comment)."<>".$pass."<>".date("Y/m/d H:i:s")."<>".$no."\r\n";

を入れてみました。
0603nobodyさん2006/03/28(火) 21:18:20ID:???
EclipseでPHPを組もうと思ってます。
プラグインなんですが、PHP ECLIPSEとTrustStudioIDEとでは、どちらがお勧めですか?
Trustの方だと、ApacheとPHP入って無くても、Eclipse標準のデバッグ実行で、実行出来ますよね。
ただ、Smartyのライブラリ使ってるのですが、これのインクルードパスを追加する使い方が分からないのがネックです。
可能なんでしょうか?
0604nobodyさん2006/03/28(火) 21:22:44ID:???
>>602
$comment = str_replace("\r\n", "<br>", $comment);
$comment = str_replace("\r", "<br>", $comment);
$comment = str_replace("\n", "<br>", $comment);
じゃダメなのか?
0605nobodyさん2006/03/28(火) 21:40:07ID:???
>>602
それだと冗長すぎ
nl2brは不要だし
0606nobodyさん2006/03/28(火) 21:54:19ID:iO8KuNQe
array("\r\n", "\r", "\n")
0607nobodyさん2006/03/28(火) 21:54:55ID:???
>>603
あきらかにスレ違いっていうのには気付こうや。
http://pc8.2ch.net/test/read.cgi/php/1123912762/
0608nobodyさん2006/03/28(火) 22:22:34ID:???
金払ってPHPの相談に乗ってくれる会社って無いの?
無料のにちゃんで、馬鹿丁寧な対応は無い。
0609nobodyさん2006/03/29(水) 00:20:54ID:???
自分が作った結構大規模なPHP検索システムがあるのですが、
個人でやるには限界に思ってきたので、希望とする会社にソースや販売権を
含めてすべて譲与したいと思っています。

個人で切り売りしていた時は、割と問い合わせや購入希望もあったので、
需要もあるかと思います。要はサポートをするには辛いという事で・・。

そういう価値を見てシステムごと買い取ってくれる会社ってあるのでしょうか?
もしくは販売サイトなどご存じないでしょうか?
0610nobodyさん2006/03/29(水) 00:40:07ID:???
>>609
>個人で切り売りしていた時は、割と問い合わせや購入希望もあったので、

だったら、まずはそこに売り込めば?
0611nobodyさん2006/03/29(水) 01:09:38ID:???
後々のサポート含めて、もう全部会社に売っちゃう
後のことはもう無関係だからね!
会社にどうして欲しいとかサポート求められてもしらねぇ

って事でしょ。
06126092006/03/29(水) 01:10:52ID:???
>>611
そういうことです。
0613nobodyさん2006/03/29(水) 01:17:43ID:???
夢見がちなニートがいるスレはここですか?
0614nobodyさん2006/03/29(水) 02:07:46ID:???
夢見がちなニートしかいません。
0615nobodyさん2006/03/29(水) 06:02:32ID:???
>>609
> そういう価値を見てシステムごと買い取ってくれる会社ってあるのでしょうか?
世間に山ほどある会社に頑張って足を運んで価値を力説して売り込む。
営業ってのはそういうもんだ。

> もしくは販売サイトなどご存じないでしょうか?
無サポートで、ってことだと、オープンソースで公開して、無料で
使いたいやつは使っていーよーってばら撒くくらい?
0616nobodyさん2006/03/29(水) 07:21:45ID:ARuclu74
てかスレ違い。
0617nobodyさん2006/03/29(水) 10:32:03ID:???
このスレにスレ違いはない
0618nobodyさん2006/03/29(水) 10:46:38ID:???
PHPに関係なければさすがにスレ違いだけど…
0619nobodyさん2006/03/29(水) 13:21:47ID:???
ちょっと教えてください

$hoge=0;
if($hoge=='あ'){echo " 工エ(´д`)ェェエ";}

↑のように0を入れた変数を適当な文字列と==すると全部trueになるのですが
これはどうしてなのでしょうか?
0620nobodyさん2006/03/29(水) 13:26:33ID:???
>>619
文字列が数値変換されて0として扱われるから。
0621nobodyさん2006/03/29(水) 13:29:26ID:???
こういう場合は===を使うべきって事か。
0622nobodyさん2006/03/29(水) 13:29:59ID:???
>>619
===
06236192006/03/29(水) 13:30:57ID:???
>>620
へーそうなんですか。どうもありがとうございました。
0624nobodyさん2006/03/29(水) 13:32:13ID:???
>>619
文字列の比較は、
===
!==
を使おうな。
0625nobodyさん2006/03/29(水) 13:32:27ID:???
もしくは
if("$hoge" == 'あ')
とする手もある。
06266192006/03/29(水) 13:37:48ID:???
>>621-625
サンクス。 == != ばっか使ってました・・orz
0627nobodyさん2006/03/29(水) 14:29:22ID:???
>>619の人気に便乗して俺も人気になってもいいですか?
0628nobodyさん2006/03/29(水) 14:40:30ID:???
>>627
スレ違い。回線切れ
0629nobodyさん2006/03/29(水) 14:56:24ID:???
>>628
ごめんなさい。
0630nobodyさん2006/03/29(水) 20:43:43ID:???
オープンソースビジネスだもんなあ。
PHP使ってようがスレ違い。
0631nobodyさん2006/03/30(木) 06:21:53ID:Jn5NDcrv
リソースイメージを<IMG SRC="">でブラウザに表示させる方法って無いでしょうか?
imagejpeg()だと文字列だとかと一緒に表示できず画像が化けた文字列で出てきてしまいます
0632nobodyさん2006/03/30(木) 08:39:59ID:???
マニュアルに書いてあるけどね。わからんなら永遠にできないだろうけど
http://jp.php.net/manual/ja/function.imagejpeg.php
0633nobodyさん2006/03/30(木) 09:09:54ID:???
リソースイメージをHTMLコンテンツと一緒には表示できないよ。
一度鯖のディレクトリーに落としてそれを正規(?)のイメージとしてしか
<IMG SRC="">では表示できないと思うよ。
0634nobodyさん2006/03/30(木) 10:03:02ID:???
>>633
別にわざわざファイル保存する必要はないぞ?
0635nobodyさん2006/03/30(木) 12:48:33ID:X8Czu4HD
header("Location: http://" . $_SERVER["SERVER_NAME"] . "/hoge/");

今こういう感じで別ページへ飛ばしてるのですが、
これだと、https でのアクセスでも http へ飛ばしてしまうので

http → http
https → https

これをする方法(環境変数)はありますでしょうか?
0636nobodyさん2006/03/30(木) 13:07:09ID:???
>>635
_$SERVER 変数の解説見れば分かる。
0637nobodyさん2006/03/30(木) 13:09:02ID:???
>>635
試してないけど
(($_SERVER['HTTPS'] == 'on')? 'https': 'http')
でいけるらしい
0638nobodyさん2006/03/30(木) 13:09:06ID:???
>>636
俺もhttps取得できるかなぁって思ってマニュアルの_SERVER見てたんだけど、見あたらないんだよね。
何入れたら取得できるん?
0639nobodyさん2006/03/30(木) 13:09:31ID:???
>>635
httpsで環境変数見たことないけど
SERVER_PROTOCOL
SERVER_PORT
はどうかな
0640nobodyさん2006/03/30(木) 13:10:37ID:???
httpsかどうか判定して条件分岐すりゃいいだろ
0641nobodyさん2006/03/30(木) 13:12:56ID:???
自己解決しました。

$_SERVER['HTTPS'] を使用するのがよさそうです。
ttp://jp.xoops.org/modules/newbb/viewtopic.php?topic_id=1536&forum=11&viewmode=flat&order=ASC&start=40
ttp://q.hatena.ne.jp/1101709304

リロードしたら沢山のレスありがとんです。
0642nobodyさん2006/03/30(木) 13:15:41ID:???
>>639
SERVER_PROTOCOLはhttpでもhttpsでもどっちでもHTTP/*.*が返る
SERVER_PORTはhttpの標準が80または8080というだけで固定ではないため基準がない
>>638
$_SERVER['HTTPS']の説明は本家php.netのマニュアルには記載されているが、
それ以外の日本語翻訳版ではことごとく抜け落ちているらしい。
0643nobodyさん2006/03/30(木) 13:16:11ID:???
$request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL';
0644nobodyさん2006/03/30(木) 13:25:55ID:???
>>643
getenv()は使える場面が限られる
0645nobodyさん2006/03/30(木) 14:42:39ID:???
'on'が (o'n')みたいな感じに見えて萌えてしまった
0646nobodyさん2006/03/30(木) 15:30:47ID:???
すいません、正規表現教えてください。
$hogeの値が 空白 or "hello"という文字を含む 場合っていうのは
どうすればよいのでしょうか?
06476462006/03/30(木) 15:37:35ID:???
自己レスです。
preg_match("/(^$|hello)/i",$hoge)
でいけました多分。失礼しました。
0648( |hello)2006/03/30(木) 15:38:38ID:???
だから正規表現スレいけよ
0649nobodyさん2006/03/30(木) 15:39:40ID:???
空白(スペース)じゃなくて null かよ!!
0650nobodyさん2006/03/30(木) 15:44:22ID:???
いまごろ気づいたんだけど、WebProgの正規表現道場ってなくなっちゃったの?
06516462006/03/30(木) 16:06:17ID:???
正規表現スレってあるんですか?
すいません知りませんでした。
もいっこ質問でてきたのですが調べてそっちへ逝ってきます。
0652nobodyさん2006/03/30(木) 16:09:32ID:???
(1). mysql_query
(2). mysql_db_query

この2つの関数では(1)のほうが推奨になったと思いますが、
明確な理由はありますでしょうか?

予めデータベース指定してサーバにクエリを送信することで、実行速度面がいいとか?

3年ほど前のソース群を修正しようかどうか迷ってます。
まあ mysql_select_db 加えて mysql_db_query を mysql_query に置換する単純作業ですが
ファイル数が多いので、便利なフリーの置換(grep)ソフトなどありましたら宜しくおながいします
0653nobodyさん2006/03/30(木) 16:39:19ID:???
つttp://www.vector.co.jp/vpack/filearea/win/util/text/conv/index.html
0654nobodyさん2006/03/30(木) 16:44:28ID:???
>>652
それこそphpでディレクトリさらって全て置換させろよw
0655nobodyさん2006/03/30(木) 16:54:04ID:???
>>652
> ファイル数が多いので、便利なフリーの置換(grep)ソフトなどありましたら宜しくおながいします
sed
0656nobodyさん2006/03/30(木) 17:12:35ID:???
>明確な理由はありますでしょうか?

文字数が少ない
0657nobodyさん2006/03/30(木) 17:43:57ID:???
>>652
>この2つの関数では(1)のほうが推奨になったと思いますが、
特にそういうこともなかったと思うけど?
mysql_db*がmysql_db_*になったのは名称統一性のため。

>予めデータベース指定してサーバにクエリを送信することで、実行速度面がいいとか
やってることは、データベースを切り替え(共通)た後、クエリーを送信(共通)してるだけなので
他の単体機能の関数を組みせた場合と速度面で劇的な違いはない。

>ソフトなどありましたら
自分の開発環境(OS等)に合った別板スレにて。
0658nobodyさん2006/03/30(木) 19:07:12ID:hmhd9dG6
助けて〜
アパッチ入れたのはいいけどポートの設定ができません。80ではな8080にしたいのですけど教えてください。
0659nobodyさん2006/03/30(木) 19:14:38ID:???
>>658
httpd.conf => [Listen] & [ServerName]
判ったら、スレ違いだからカエレ!
0660nobodyさん2006/03/30(木) 19:17:59ID:???
>>658
氏ね〜
0661nobodyさん2006/03/30(木) 19:30:10ID:hmhd9dG6
>>659
ありがとう。
>>658
師にます。
0662nobodyさん2006/03/31(金) 04:46:38ID:???
PHPの組み込まれた標準関数には
is_alpha()やis_digit()のような文字・文字列の英数かどうかをシェックスる関数はないのでしょうか?
0663nobodyさん2006/03/31(金) 04:58:50ID:???
>>662
ctype_alpha ctype_digit
0664nobodyさん2006/03/31(金) 05:37:58ID:???
$str=" str";//全角スペースだけど半角ね。
$len1=strlen($str);
$str=trim($str);
$len2=strlen($str);
ってすると、$len1と$len2の長さが同じになってしまいます。
単純に確保されたバイトサイズを返してるのかと思い。
$str2=trim($str);
unset($str);
$str=$str2;
unset($str2);
$len2=strlen($str);
ってやって、領域を確保しなおしても同じ結果です。
どうにかして空白スペース文きちんと減るようにしたいのですが・・・。
0665nobodyさん2006/03/31(金) 05:57:36ID:???
$str=" str";
$len1=strlen($str);
print "<br>$len1";
$str=trim($str);
$len2=strlen($str);
print "<br>$len2";

何の問題も無く
4
3
って出るんだけど?

実は提示してるコードだけじゃない?
06666642006/03/31(金) 06:01:26ID:???
すみません・・・。勘違いでした・・・。
その上の部分のコードが悪さしてました。
スレ汚しスマソ・・・
0667nobodyさん2006/03/31(金) 06:03:41ID:???
そうか、素直だから許してやる
0668nobodyさんNGNG
ファイルのアップロードについてなんですが、
register_globalsをオフにしたら「$_FILES〜」に値が代入されなくなりました。
register_globalsがオンなら動作するんですが、オフのままではアップロードは不可能なんでしょうか?
PHPのバージョンは4.23です。
0669nobodyさん2006/03/31(金) 08:00:28ID:???
>>657
マニュアル読め
mysql_db_query
この関数は廃止予定です。使用しないでください。かわりに mysql_select_db() あるいは mysql_query() を使用してください。
0670nobodyさん2006/03/31(金) 08:18:37ID:???
>>668
そんな話は聞いたことがない
お前のスクリプトのバグ
0671nobodyさん2006/03/31(金) 08:47:54ID:???
>>634
ファイルを生成せずにってどうやるの?
0672nobodyさん2006/03/31(金) 09:41:19ID:???
>>671
hogehoge.html.phpに出力されるhtmlタグが
<img src="hogeimage.php">
になってればokでは
0673nobodyさん2006/03/31(金) 10:50:46ID:???
ややこしいんですけど
$array=array("a","b","c");等の配列があり
この配列の前2つの値が"a"と"b"ならtrueを返すにはどうしたらよいでしょうか?
array("a","c","e")は偽 array("a","b","d")は真
0674nobodyさん2006/03/31(金) 10:59:42ID:???
reset($a);
return list($k,$v) = each($a) && $v='a' && list($k,$v) = $each($b) && $v='b';
0675nobodyさん2006/03/31(金) 11:35:31ID:???
>>674
ありがとうございました。
0676nobodyさん2006/03/31(金) 12:54:04ID:???
>>662
is_numeric()
■ このスレッドは過去ログ倉庫に格納されています