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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2007/06/26(火) 03:03:40ID:ox2uyHLd
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45 (※実質48)
http://pc11.2ch.net/test/read.cgi/php/1180181033/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0966nobodyさん2007/07/10(火) 23:15:54ID:???
デリミタのつもりなんじゃね?
0967nobodyさん2007/07/10(火) 23:32:00ID:???
まさか/だけがdelimiterだと思ってるんじゃないだろうなお前ら
0968nobodyさん2007/07/10(火) 23:35:53ID:QKw5baye
PHPで文字のUTF-16の値を取得する方法はあるでしょうか? 
0969nobodyさん2007/07/10(火) 23:49:47ID:???
>>967
そりゃそうだけど、限度ってもんがあんだろうよ
0970nobodyさん2007/07/10(火) 23:53:39ID:???
デリミッタで |、!、,#あたりは普通だろ。
むしろスラッシュはurl、パス系でバッティングしていちいちエスケープするのめんどいから使わないよ。
0971nobodyさん2007/07/10(火) 23:57:45ID:???
スラッシュ使わないのは普通だろ
別に威張って言われても困る
|はメタ文字として普通に良く使うから使わない
0972nobodyさん2007/07/10(火) 23:59:25ID:1F2Ht5WN
着いていけない俺がいる
0973nobodyさん2007/07/11(水) 00:03:56ID:???
| は普通だ
09749702007/07/11(水) 00:05:36ID:???
>>971
?それも好みだろ。別に威張ってないよ。
自分的には#使うと一番見やすいけどURIのアンカーの時に
ひっかかるから普段は!でやってる。
0975nobodyさん2007/07/11(水) 00:06:50ID:???
>>961
先読み言明でmb_splitしてやりゃいいと思うよ

>>968
文字をiconvしてからbin2hexして16進表記の文字列を得るか、
iconvしたものの各バイト部分を、ordを使って数値化して、
一文字目の256倍した値と二文字目を足し合わせればいいと思うよ。
0976nobodyさん2007/07/11(水) 00:11:18ID:???
笑いどころはデリミタじゃなくて、アルファベット部分と言われて
本当にアルファベット一文字だけで区切ってるところじゃね
0977nobodyさん2007/07/11(水) 00:18:45ID:???
わらえるコードだなw
09789612007/07/11(水) 00:20:29ID:YtVM4RER
なんか論争になってるようで申し訳ない・・・。
0979nobodyさん2007/07/11(水) 00:27:18ID:???
>>963
なんで:がデータに含めてるんだ。
まったくセンスがないね。
0980nobodyさん2007/07/11(水) 00:28:27ID:???
>>950
マニュアルのそんなとこよんだことねーよ
つかお前はマニュアル一字一句記憶してるおバカさんか天才様であらせられるのか?

正直phpのエラー表示は初心者には便利だけど
機能そのものがなくていんじゃない、てのが俺の感想
09819612007/07/11(水) 00:38:07ID:YtVM4RER
素人目には皆さんが何を非難されているのかすらも
良くわからないので混乱しています・・・。
>>963さんの案はだめなのでしょうか?
具体例として挙げて頂いて非常にありがたいのですが、
もっと的確な方法があるのでしょうか?

「先読み言明」というのも難解そうなので、
他にも方法があればご教授お願いします。
0982nobodyさん2007/07/11(水) 00:43:27ID:???
>>975
ordとかbin2hexで大丈夫なん?
サンクス 試してみます
0983nobodyさん2007/07/11(水) 01:42:10ID:hjtLLu8n
>>981
IDが出ないのをいいことにWebProgに粘着しているのがいるんで、気にしないでOK

デリミタについては何でもいいが、俺の場合はvi使ってると / ! : # はよく使う、
マニュアルとかはデフォルトの/が例示されてる。

デリミタについては何でも良いが、文字列中に含まれないもの(エスケープが面倒でないもの)を使う方が良い。

ちなみに、そもそも論だが、文字列自体が
A:2ちゃんねるB:ようつべC:ごーぐる の様なフォーマットで渡ってこないのが一番かと思うが。

汎用的なフォーマット (, "," ',' のようなCSV形式とか、もっと柔軟なJSON形式とか,タブ区切りのTSV形式とか)で渡せるなら
そうしておいた方がよいかと思われ。

0984nobodyさん2007/07/11(水) 03:15:31ID:6lkOIDSn
下記のperlスクリプトをphpで書き直したいのですが、perlはわからないのでどなたかphpに直して頂けないでしょうか。
phpでプログラムを書いていてわからない所があり、参考になるプログラムを探した所perlしか見当たりませんでした。

下記のperlスクリプトは私が必要だと思われるスクリプトの一部を書き出しました。
必要であればスクリプトURL等書きます。宜しくおねがいします。

# IMG タグを変換する(cid方式にまとめる)
my $filelist = {};
$content =~ s#(< (?:IMG|INPUT) \s[^>]*? SRC=)
('[^'>]+'|"[^">]+"|[^">\s]+)
((?:\s+[^>]*)? >)
#&conv_img_tag( $1, $2, $3, $filelist )#gexi;
$content =~ s#(< (?:BODY|TABLE|TR|TD) \s[^>]*? BACKGROUND=)
('[^'>]+'|"[^">]+"|[^">\s]+)
((?:\s+[^>]*)? >)
#&conv_img_tag( $1, $2, $3, $filelist )#gexi;
$DEBUG and print STDERR "[img=",scalar(keys %$filelist)," tags]\n";
09859842007/07/11(水) 03:19:32ID:6lkOIDSn
これも必要でした。

sub conv_img_tag {
my( $prefix, $src, $suffix, $imghash ) = @_;
return unless ref $imghash;

# "" で囲まれていたら
$src = $1 if ( $src =~ /^["'](.*)["']$/s );

# cid は img01 からカウントアップ
my $cnt = scalar keys %$imghash;
my $cid = sprintf( "cid%02d", $cnt + 1 );

# 既に同じ画像を使っていたら同じ cid とする
foreach my $prev ( sort keys %$imghash ) {
if ( $imghash->{$prev} eq $src ) {
$cid = $prev;
last;
}
}

$imghash->{$cid} = $src;

my $ret = sprintf( '%s"cid:%s"%s', $prefix, $cid, $suffix );
$ret;
}

phpに書き直してくれる方がいれば嬉しいんですが、それは厚かましいので
ヒントや参考URLでもありがたいです。宜しくおねがいします。
0986nobodyさん2007/07/11(水) 04:00:44ID:???
引用元を載せるのは作者に対しての配慮だと思いませんか?
0987nobodyさん2007/07/11(水) 06:12:43ID:???
というかスレ違い

perlスクリプト⇒phpスクリプト移植要望スレ
http://pc11.2ch.net/test/read.cgi/php/1035700861/
0988nobodyさん2007/07/11(水) 08:53:53ID:6GQbuCRJ
shift_jisで作成したファイルをlinuxサーバにわたすとき、
改行コードは\nで保存するのでしょうか?
それとも\r\nで保存するのでしょうか?
0989nobodyさん2007/07/11(水) 11:01:51ID:???
>>988
それは、ファイルを転送するときのftpクライアントのソフトによる。
もっといえば、ファイルの設定による。
むかしホームページを始めて作成したころ画像を転送したら、
どうしても画像だけが表示されずに四苦八苦した思い出が有る。
画像のところが赤の×印が表示されたままだった。
何もしらない俺はこういう画像に加工してしまったのかと、
ftpクライアントソフトの設定を疑わず、むしろ画像加工ソフトの
取扱説明書を何回も読み返してしまった。
画像加工ソフトは、paintshopだったのだが、やはりphotoshopと
違って安い画像加工ソフトは駄目なのか、と最後はソフトのせいにしてしまいった。
今では、その買えなかったphotoshopを使いこなす何ちゃってデザイナーとして
飯を食っているけど。今ではいい思い出です。

0990nobodyさん2007/07/11(水) 11:02:07ID:???
Windowsで作成したファイルなら、改行コードは\r\nになってるだろうから、
Linuxに上げて動かしたかったら\nに変換しないといけない。
文字コードの話ではない。
まぁFTPクライアント使えば勝手に変換してくれると思うけど。
09919842007/07/11(水) 12:04:37ID:6lkOIDSn
引用元記しておきます。

引用元:Kawa.net xp (http://www.kawa.net/)
http://www.kawa.net/works/perl/i18n-emoji/i18n-emoji.html
0992nobodyさん2007/07/11(水) 13:25:41ID:???
ウィンドウズで作ったのをFFFTP通さないで
直接Linuxにデータを渡したこと思い出した…

なんで実行できなかったのかやっと理解した
0993nobodyさん2007/07/11(水) 13:27:09ID:???
>>992
俺も過去にそれしたことがあって、お手上げだった。
FFFTPとか使わない人はどうしてるんだろう・・・
0994nobodyさん2007/07/11(水) 13:32:19ID:???
来月、php6.0のβ版がリリースされるとのことですが、
この件について熱く語ってください。
0995nobodyさん2007/07/11(水) 13:42:35ID:???
6は素数
0996nobodyさん2007/07/11(水) 13:57:07ID:???
PHPのマニュアルはいつのまにか項目が増えているから病み付きになる
なんだよPHPでoggvorbisって
需要あんのかよ
0997nobodyさん2007/07/11(水) 14:12:14ID:???
>>993

nkfでがばっと変換する

#!/bin/sh
while [ -n "$1" ]; do
if [ -e "$1" ]; then
TMPFILE=nkftmp$$
nkf --utf8 -Lu $1 > $TMPFILE
mv $TMPFILE $1
echo $1
fi
shift
done
0998nobodyさん2007/07/11(水) 14:20:33ID:VJ3pLPWU
配列をhiddenで渡すにはどうしたらいいのでしょうか?
フォーム側:
<FORM action="hoge.php" method="POST">
<input type="hidden" name="list" value="<?php echo $args;?>">
</FORM>

受け取り側:
$list = $_POST["list"];
var_dump($list); 結果→Array
0999nobodyさん2007/07/11(水) 14:34:05ID:???
>>998
http://jp.php.net/faq.html#faq.html.arrays
1000nobodyさん2007/07/11(水) 14:41:08ID:???
age
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。