【PHP】下らねぇ質問はID出して書き込みやがれ 94
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/03/17(水) 23:17:41ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 93
http://pc11.2ch.net/test/read.cgi/php/1266229386/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0554nobodyさん
2010/04/02(金) 12:46:44ID:???ダメだorz・・・
chownもchmodも効かない・・・
最初にchownでファイル所有者を自分に変更して、そのあとにchmodで0646に変えてやろうと思ったんだが・・・
たぶんレンタルサーバーの管理人以外はchownできないような仕組みになってるんじゃないかな?
そしてchownできない限りchmodも無力化されてしまうと・・・
0555nobodyさん
2010/04/02(金) 12:51:24ID:???超能力者なら分かるかもしれないけど。
0556nobodyさん
2010/04/02(金) 12:57:28ID:???0557nobodyさん
2010/04/02(金) 13:01:17ID:???0558nobodyさん
2010/04/02(金) 13:18:04ID:H+Jv7Iis【PHPのバージョン】php5.26
全文の中から、最初の一致分「あいうえお」だけ削除したいのです。
$hoge = "あいうえお、かきくけこ、さしすせそ、たちつてと、あいうえお、かきくけこ";
$aiueo = "あいうえお";
$date = str_replace($aiueo,"",$hoge);
これだと、全ての「あいうえお」が消えてしまいますので、
$aiueo = "あいうえお";
$sakujo = "^.*?$aiueo";
このような最短マッチみたいなのを使って削除したらいんだと思いますが、
どうやればいいのか分かりません。教えて下さい。お願い致します。
0559nobodyさん
2010/04/02(金) 13:24:43ID:???0560nobodyさん
2010/04/02(金) 13:27:11ID:???0561nobodyさん
2010/04/02(金) 13:51:33ID:???【PHPのバージョン】php5.26
【PHPのバージョン】php5.26
【PHPのバージョン】php5.26
【PHPのバージョン】php5.26
【PHPのバージョン】php5.26
【PHPのバージョン】php5.26
0562nobodyさん
2010/04/02(金) 15:39:52ID:H+Jv7Iis僕がやりたいパターンの場合だとうまくいきません。
$hoge = "あいうえお---かきくけこ---さしすせそ---あいうえお---かきくけこ---さしすせそ"
みたいなランダムな文章になってて、
$pattern = "^.*?---";
mb_ereg($pattern,$hoge,$honbun);
を使って、最初の「---」までを抽出しています。
この抜き出した文章を使って
$hoge = preg_replace("/$honbun[0]/","",$hoge,1);
というプロセスを経ると、全く抜けなくなります。
forの中で実行してるので、無限ループに陥って困ってます(汗)
原因を教えて頂けませんでしょうか。
0563nobodyさん
2010/04/02(金) 15:43:09ID:???0564nobodyさん
2010/04/02(金) 15:48:48ID:H+Jv7Iis吐き出すものがずっと同じものなので、抜けないのです。
例を上げますと
hoge ="あえ@えれ---れれあえ@れ---あえ@えれ---あえい@れえれ---えあら@れえ"
のようになってて、@マークがなくなるとwhileを抜けるようにしてるのですが、
最初の「---」までが抜けていないので、@マークが減らずに無限ループに陥るのです。
上の例の$honbun[0]は確実に、抜き出したい文章を抜き出しているのですが、
教えて頂いた構文に入れると、その該当する文章が抜けないのです。
0565nobodyさん
2010/04/02(金) 16:07:46ID:???テストしてるソース張り付けられない?
0566nobodyさん
2010/04/02(金) 16:31:04ID:H+Jv7Iisこんな感じです。
メールアドレスを「---」で区切って格納しているものがあって、
それを上から1つずつ抜き取りたいのだけれども、全部の羅列の中に
同じアドレスが2つ以上あった場合でも、上から1つずつ抜き取りたいのです。
で、一番上のメールアドレスを「---」までで抜き取ったやつを、
$hoge = preg_replace("/$honbun[0]/","",$hoge,1);
教えて頂いた↑で抜き取ると、抜き出せないのです。
ちなみに最初は
$hoge = str_replace($honbun[0],"",$hoge);
これでうまくいっていたのですが、複数ある場合に
全部が抜き出されてしまって、困ってしまって、質問させて頂いたわけです。
0567nobodyさん
2010/04/02(金) 16:35:17ID:???0568nobodyさん
2010/04/02(金) 16:40:04ID:???というか文字列を --- で区切ればいいんじゃないの?
explode使って。
0569nobodyさん
2010/04/02(金) 16:41:37ID:???0570nobodyさん
2010/04/02(金) 16:48:58ID:H+Jv7Iisとりあえずこれを入れると、簡単なソースでは成功しました。
ありがとうございました。
これから実際に使ってるプログラムの方に導入してみて、
ちゃんと動くか実験してみます。ありがとうございました。
0571nobodyさん
2010/04/02(金) 17:07:28ID:???> PHPでファイル生成時に最初から rw-r--rw- というパーミションのファイルを
> 生成できれば悩まずに済むんだけどそういう方法って無い?
umask
でも大抵はchmod。
0573nobodyさん
2010/04/02(金) 20:09:21ID:???> umask
> でも大抵はchmod。
ありがとう、できたわ(゚∀゚)
http://www.phppro.jp/phpmanual/php/function.umask.html
↑のサイトを参考にして
$old = umask(0);
chmod("file.log", 0646);
umask($old);
でできたわ。所有者が99だったりnobadyであってもumaskつかえばchmod出来ちゃうんだね。
強力なコマンドなぶん、使い方誤るとセキュリティ的にやばそう・・・
ところで冒頭の umask(0) の引数"0"って何を意味してるんだろう?
0574nobodyさん
2010/04/02(金) 20:58:12ID:peh3ZVn3phpスクリプト以外からアクセスすると(正確にはサーバ外のファイルから)
アクセスが弾かれるようにするにはどうすればいいんでしょうか?
0575nobodyさん
2010/04/03(土) 00:10:03ID:???ファイルへのURLを直接入れたら表示したくないってことかな?
権限を上手いこと設定するか、.htaccessあるいはapacheの設定ファイルで
その特定ファイルへのアクセスを禁止する
詳しくは「htaccess アクセス制御」等で検索するかApacheスレへ
0576nobodyさん
2010/04/03(土) 10:14:00ID:dm+pMn6c..
...
....
return $str;
}
この戻り値を
print <<<HTML
hogehoge{returnstr($a['test'])}hogehoge
hogehoge
HTML;
のように出力の中に書きたいのですがどのように書くのが正しいのでしょうか?
0577nobodyさん
2010/04/03(土) 10:17:07ID:???0578nobodyさん
2010/04/03(土) 10:18:58ID:dm+pMn6cとしてそれを入れるしかないってことですね。
ありがとうございます。
0580nobodyさん
2010/04/03(土) 13:31:38ID:???($hoge == "foo") で $hoge に 0 が入って true になってた。
比較演算子の問題はちゃんと把握してるつもりだったけど
やっぱりよく注意してコーディングしてないとハマるね
0582nobodyさん
2010/04/03(土) 16:17:13ID:???0583nobodyさん
2010/04/03(土) 18:45:24ID:???"hoge" は数字にすると0(数値に相当するものが入ってない)だから。
$hogeに数字が入ってると、自動的に数値で比較してくれる便利機能がついてる。
警告の一つも出してくれりゃいいのになぁ。
0584nobodyさん
2010/04/03(土) 22:10:28ID:???のように画像を開くときは画像ファイルへのパスを指定する必要があるわけですが
絶対パス(realpath()で得られるパス)は受け付けてくれません。
代わりにドキュメントルートからのパス(多くの場合はpublic_htmlから)を指定する必要があるわけですが
/zettai/path/public_html/pic/1.gif
のように絶対パスで与えられているファイル名をドキュメントルートからのファイル名
/pic/1.gif
に変えるにはどういう方法を使えばいいでしょうか?
0585nobodyさん
2010/04/03(土) 23:17:14ID:???0586nobodyさん
2010/04/04(日) 01:01:02ID:???しかも>>55でもうやってるしwせっかく作ったんだし公開しておこう
http://ideone.com/QMVoQhKL
0587nobodyさん
2010/04/04(日) 11:32:33ID:VKZUtm2V【PHPのバージョン】PHP 5.2.12
【連携ソフトウェア】
【質問内容】
(sakuraレン鯖使用です)
ttp://www.abe-tatsuya.com/web_prog/php/mail2php.phpのサイトを参考にして
メールを受信してtwitterに投稿するPHPを作っています。
受信したものをそのまま投稿するのは上手くいくのですが、
アドレスに応じて名前を追加しようとするとうまくいきません。
(というより別関数で本文に内容を付加するのがうまくいかないです。)
原因は何でしょうか?
(使用しているファイルを次に投稿します)
0588nobodyさん
2010/04/04(日) 11:40:00ID:VKZUtm2V[.mailfilter]
to "| /usr/local/bin/php -q /home/user/www/tweet/mail.php"
[mail.php]
<?php
#-- PEAR の Mail/mimeDecode.php を読み込む
require_once '../../pear/php/Mail/mimeDecode.php';
require_once("post.php");
require_once("xml.php");
#-- メールデータ取得
省略:参考サイト通りstdinで取得
#-- From フィールドの取得
$from = $mail_data->headers['from'];
#-- To フィールドの取得
$ToAddress = $mail_data->headers['to'];
#-- Subject フィールドの取得
$Subject = $mail_data->headers['subject'];
$Subject = mb_convert_encoding($Subject,"UTF-8","JIS");
#-- 本文の取得
$MailBody = $mail_data->body;
$MailBody = mb_convert_encoding($MailBody,"UTF-8","JIS");
//アドレス処理はあとでやる
$fff = "mail";
$aaa = add_name($fff,$MailBody);
$MailBody = $MailBody.$aaa;
//twitter投稿
Post($MailBody);
?>
0589nobodyさん
2010/04/04(日) 11:44:58ID:VKZUtm2V連投スミマセン;;
改行が多すぎるって怒られました><
[xml.php]
<?php
function add_name($from,$body){
$xml = simplexml_load_file('document.xml');
foreach($xml->person as $person){
if($person->mail == $from ){
$body = $person->name . $body;
return $body;
}
}
}
?>
[document.xml]
<?xml version='1.0'?>
<data>
<person>
<mail>mail</mail>
<name>たろう</name>
</person>
</data>
0590nobodyさん
2010/04/04(日) 18:50:22ID:z61eZwKM0591nobodyさん
2010/04/04(日) 19:51:07ID:???0592nobodyさん
2010/04/04(日) 20:06:00ID:???本当に JIS なのか?
mb_language('uni'); // unicode
とかになってないかい?
ちなみに、mb_detect_encoding では正しく JIS が判断できないよ。
バグじゃないけどね。
0593587
2010/04/04(日) 21:40:37ID:VKZUtm2V>>590
質問内容が悪かったですね(汗
メール送信したときに、add_name()など関数を使うと値が返ってきません。
mail.phpをブラウザで叩いたときは値が返ってきます(echoで確認しました)
>>592
文字コードはとりあえず文字化けしなかったのであんまり気にしていませんでした><
コンバートしなくても良いといいことですか??
0594nobodyさん
2010/04/05(月) 06:07:53ID:uTolPHHQ【PHPのバージョン】php5.2.13
【連携ソフトウェア】Apache2.2.15
【質問内容】
a.htmlからa.phpを呼び出しています。
a.htmlには、
<input type="checkbox" name="cb_op3" value="1">
とデフォルトでチェックがされていません。
a.phpでは、
$cb_op3 = $_POST['cb_op3'];
の様に参照しています。
チェックボックスがチェックされていない場合、
PHP Notice: Undefined index: cb_op3 in D:\htdocs\a.php on line XX
のようにPHP Noticeが出力されます。
これが出ないようにするには、どうすれば良いですか?
よろしくお願い致します。
0595nobodyさん
2010/04/05(月) 06:53:11ID:???$cb_op3 = (isset($_POST['cb_op3'])) ? $_POST['cb_op3'] : "";
0596nobodyさん
2010/04/05(月) 06:58:11ID:uTolPHHQご回答、ありがとうございます。
$cb_op3 = htmlspecialchars(@$_POST['cb_op3']);
とすることで、自己解決しました。
0597nobodyさん
2010/04/05(月) 07:06:44ID:uTolPHHQ【PHPのバージョン】php5.2.13
【連携ソフトウェア】Apache2.2.15
【質問内容】
phpのエラーをapacheのエラーログに出力したいのですが、
出来ません。
php.iniのerror_logには何も指定していません。
phpinfo()で確認すると、C:\WINDOWS\temp\php-errors.logとなっています。
試しに、
error_log = "L:\logs\php.log"
error_log = "L:\\logs\\php.log"
等を指定しても、
phpinfo()で確認すると、C:\WINDOWS\temp\php-errors.logと変わりません。
知っている方、よろしくお願い致します。
0598nobodyさん
2010/04/05(月) 07:37:57ID:???phpinfo() の Loaded Configuration File と別の php.ini を書き換えたりしてない?
0599nobodyさん
2010/04/05(月) 07:51:41ID:uTolPHHQ;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;
の項に
error_log="C:\WINDOWS\temp\php-errors.log"
の記述が。。。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
の項の
error_log = filename
ばかり変更していました。
でも、紛らわしいよ。。。
ありがとうございました。
0600nobodyさん
2010/04/05(月) 22:18:52ID:afFcX18l【PHPのバージョン】php5.10
【連携ソフトウェア】なし
【質問内容】
csvでやっていた処理を、拡張性を見据えてxmlにしようと思って実験中ですが、疑問ができたので質問させて頂きます。
SimpleXMLElementを使っているのですが、
これは読み出し及び項目追加には便利だとは思います。
しかし、<data></data><data></data>などの配列化した項目を消したりしようとすると途端に不便になりました。
こういうものなのでしょうか?
popやshiftに相当するものを使用し、最後にasXMLで書き出せるというのが理想なのですが、
一度全部読み出し、もう一つオブジェクトを生成し、そちらにプロパティを移して新しいオブジェクトから書き出す
というのはどうも違和感があります。
0601nobodyさん
2010/04/05(月) 22:23:23ID:???foreach($xml->hoge as $foo){
if ($foo->updatedate+(24*60*60) < time()){
$foo = null;
}
}
$xml->asXML($filepath);
例えばこういった組み方をすると、空のゴミタグが残ってしまいますが、ゴミタグも消したいのです。
何か代換手段は無いものでしょうか
0602nobodyさん
2010/04/05(月) 22:29:17ID:afFcX18l現在はこうやっていますが、最初のnewxmlの定義が面倒です
$xml = simplexml_load_file($filepath);
$newxml = new SimpleXMLElement("<?xml version='1.0' ?>\n<root></root>");
$newxml->addChild("bar1",$xml->bar1);
$newxml->addChild("bar2",$xml->bar2);
$newxml->addChild("bar3",$xml->bar3);
foreach($xml->hoge as $foo){
if ($foo->updatedate+(24*60*60) >= time()){
$newxml->addChild("hoge",$foo);
}
}
$newxml->asXML($filepath);
0603nobodyさん
2010/04/05(月) 22:30:47ID:afFcX18l0604nobodyさん
2010/04/05(月) 22:36:54ID:???【PHPのバージョン】php5.3
【連携ソフトウェア】sqlite3
PHP5に標準搭載されているSQLite3 拡張モジュールで質問です。
close()は必須なのでしょうか? たとえば
$db = new SQLite3("hoge.sqlite");
try {
$result = $db->query("select ...");
$row = $result->fetchArray();
return $row["hoge"];
} catch (Exception $e){
die();
}
$db->close();
なんていうサンプルを時々見かけますが、これって僕のPHP文法の
理解が正しければclose();は通りませんよね?また
$db = new SQLite3("hoge.sqlite");
try {
$result = $db->query("select ...");
$row = $result->fetchArray();
$hoge = $row["hoge"];
$db->close();
return $hoge;
} catch (Exception $e){
die();
}
だったとしても例外時にはclose()されませんよね? これは
} catch (Exception $e){
$db->close();
die();
}
とかいちいちやるものなんでしょうか?
0605nobodyさん
2010/04/05(月) 22:58:06ID:???不要になったときに自動で解放される
0606nobodyさん
2010/04/05(月) 23:08:13ID:???ということは明示的にcloseしたい理由がなければ放置でもOKってことですか?
上記の例では1番は論外としても2番か、それか記述せずでもOKと?
0607nobodyさん
2010/04/06(火) 00:32:21ID:???$db = new SQLite3("hoge.sqlite");
たとえばこの変数に
$db = null; とか
$db = array(); とか
$db = new SQLite3("hoge.sqlite"); とか
のように上書きしてしまってもう使えなくなってもデストラクタが動く
0608nobodyさん
2010/04/06(火) 00:34:24ID:???サンクス。
0609nobodyさん
2010/04/07(水) 02:22:36ID:DRQlFq+Murldecodeは必要ですか?
$_GET[] の時点で既にurldecodeされてるのでしょうか?
0610nobodyさん
2010/04/07(水) 02:59:21ID:???echo print_r($GET);
?>
してみなよ
0611nobodyさん
2010/04/07(水) 03:12:56ID:???0612nobodyさん
2010/04/07(水) 06:13:24ID:dfs6oC5Wif($_COOKIE['checkCookie']){return 1;}
else{
$expire = time() + 86400*14;
if(setcookie("checkCookie",time(),$expire)){return 1;}
else{return 0;}
}
}
このような関数を作ってクッキーが有効かチェックしたいのですが、オフにしても0が帰ってこないようです。
原因わかりますか?
0613nobodyさん
2010/04/07(水) 06:17:39ID:???if(setcookie("checkCookie",time(),$expire)){return 1;}
ブラウザの設定でOFFにしてもサーバから送信は可能だから
ここがとりあえず成功しちゃうんだと思われる
0614nobodyさん
2010/04/07(水) 06:27:00ID:dfs6oC5Wありがとうございます。
ということは、
セットする→セットしたクッキーが存在するか否か
という処理だと行けるってことですよね?
0615nobodyさん
2010/04/07(水) 06:32:37ID:???一度の処理中での確認はできない
一回送信して次回のリクエストで帰ってくるかどうかでのチェックが必要。
俺がたまにやるのは、ページでセットして、JSでチェックする
index.php
<?php
setcookie("checkCookie",time(),$expire);
?>
<html>
<head>
<script type="text/javascript" src="check_cookie.php"></script>
</head>
</html>
check_cookie.php
<?php
if (!isset($_COOKIE['checkCookie'])) print "alert('no cookie!')";
?>
0616nobodyさん
2010/04/07(水) 06:39:12ID:dfs6oC5Wわかりました。
さんくすです
0617nobodyさん
2010/04/07(水) 07:56:30ID:3KWYoUnh【PHPのバージョン】php5.2.13
【連携ソフトウェア】Apache2.2.15
【質問内容】
php5.2.13に対応しているeAcceleratorのバイナリを配布しているサイトはありますか?
0618nobodyさん
2010/04/07(水) 08:03:06ID:???http://www.sitebuddy.com/PHP/Accelerators/eAccelerator_windows_binaries_builds
「eAccelerator 0953 for PHP 5.2.10」とかでいいんじゃないかな
0619nobodyさん
2010/04/07(水) 12:05:21ID:qoBEK7gJ0620nobodyさん
2010/04/07(水) 12:12:46ID:???5秒後にnext.htmlへ飛ばす
header( 'refresh: 5; url=next.html' );
ちなみにHTMLのタグでも可能
<head>
<meta http-equiv="refresh" content="5;URL=next.html">
</head>
0621nobodyさん
2010/04/07(水) 12:28:57ID:???0622nobodyさん
2010/04/07(水) 12:37:23ID:qoBEK7gJ0623nobodyさん
2010/04/07(水) 13:29:34ID:3KWYoUnh5.2.13に対応していますか?
0625nobodyさん
2010/04/07(水) 14:33:07ID:W7cZb24v同意して書き込む際に、hiddenで送る内容ですが、仕様上<br>などのタグをhiddenに含めるとエラーに成ります。
なので、hiddenには<br>などで置換していない状態の書き込みを入れたいのですが、この場合、改行文字がhtmlソースで働いてhtmlソースが乱れてしまいます。
何かで改行文字を置換したいのですが何がいいでしょうか?2chの場合「?」で置換されているようです。
0626nobodyさん
2010/04/07(水) 14:47:15ID:???bbb">
みたいな感じでそのままでもいいと思うけど、どうしても変えるなら
<input type="hidden" value="aaa\n\nbbb">
とかかな
0627nobodyさん
2010/04/07(水) 14:50:15ID:W7cZb24v2chの改行文字の&#10;は全角のはてな。
全角のはてなだったら問題ないですね!
これでいきます。
0628nobodyさん
2010/04/07(水) 14:52:19ID:???0629nobodyさん
2010/04/07(水) 15:06:59ID:W7cZb24v↓
&#10;を<br>に置換する。
全角のはてなを「&#10;」の実体表記で書かれる、それは&amp;#10になるはず・・・
0630nobodyさん
2010/04/07(水) 15:45:55ID:OLVUqXLtで飛ばす時に一緒にPOSTで値などを渡したりする方法はありますか?
0631nobodyさん
2010/04/07(水) 15:46:59ID:???0632630
2010/04/07(水) 16:04:23ID:OLVUqXLtありがとうございます。
携帯でもセッション使えるかどうか試してみます。
0633630
2010/04/07(水) 17:11:09ID:OLVUqXLt#index.php
session_start();
$_SESSION['riremito']='ばしるーら';
header("Location: ./test.php");
#test.php
session_start();
echo $_SESSION['riremito'];
としているのに表示されないのですが、書き方間違ってますでしょうか?
0634nobodyさん
2010/04/07(水) 17:16:17ID:3KWYoUnhいいえ、ありがとうございます。
0636nobodyさん
2010/04/07(水) 17:33:46ID:3GsFBU25if(mb_ereg( "[a-z]*",$string))
てすると全部TRUE返ってくるんですが
アルファベットのみの文だけ拾いたいのです
NoEditorというエディタだと拾ってるんですが
どういう事なんでしょうか?
0638nobodyさん
2010/04/07(水) 18:01:53ID:???0639nobodyさん
2010/04/08(木) 01:08:32ID:bQ9+sypi外部サイトの画像をリサイズしてキャッシュして表示する
スクリプトかAPIのようなものを探してるんですが、
探してる途中にgoogle app engineで作ったと思われる
以下のようなもの(image-resize.appspot.com)を発見いたしました。
ttp://groups.google.co.jp/group/google-appengine/browse_thread/thread/56ba9c4e8fa23d4a
これを画像URLを入れ替えて勝手に自分のサイトで使うと怒られたりしますか?
ちなみに当方英語は読めません
0640sage
2010/04/08(木) 09:23:03ID:???0641625
2010/04/08(木) 09:41:24ID:L4uu4ArYなにか他の考え方がある方はいますでしょうか?
0643nobodyさん
2010/04/08(木) 09:59:22ID:L4uu4ArY調べてみたら「&#10;」って改行文字だったんですね。
2chに書くと全角のはてなになったので勘違いしてました。
2chのように、
フォームから入力してPOSTで送信
↓
確認画面
↓
書き込み
という仕組みなんですが、確認画面で表示するのは改行文字を<br>に置換しますが、書き込み用にhiddenに入れるのを
<br>で置換するとサーバー側の仕様(タグの受信がNGなのです)でエラーを吐いてしまいます。
0645nobodyさん
2010/04/08(木) 10:08:00ID:???0646nobodyさん
2010/04/08(木) 10:09:44ID:L4uu4ArYhiddenにいれるのが\nのままだとhtmlソースに変な改行が入ってしまうのが気になってるからです。
0647nobodyさん
2010/04/08(木) 10:13:24ID:???0648nobodyさん
2010/04/08(木) 10:59:42ID:???試してないけど\nを\\nに置き換えればいけるかも
//変換
$text = strtr($text, array("\\" => "\\\\", "\n" => "\\n"));
print $text;
//復元
$text = strtr($text, array("\\\\" => "\\", "\\n" => "\n"));
print $text;
ただ置き換えたい理由を未だ理解できない・・
0649nobodyさん
2010/04/08(木) 11:30:09ID:???0650nobodyさん
2010/04/08(木) 12:07:50ID:???0651nobodyさん
2010/04/08(木) 12:12:27ID:bQ9+sypi翻訳ぐらいしてるわボケ
お前はコードまで一緒に訳される機械翻訳で意味分かったのか?
0652nobodyさん
2010/04/08(木) 12:22:38ID:???htmlに余計な改行が入ってソースが気になるなら、そもそもがhiddenなんかに持たせずにphpのsessionに保存すれば?
どうせ、確認画面で表示だけだと値をpost出来ないからhiddenに持たせようとかそんな程度の話でしょう?(勝手な妄想だから、違っても気にするな)
textareaタグを使って、見た目をただの表示っぽく調整するとか、方法はいろいろあると思うけどね。
やりたい事の実現方法案を自分で決めてしまって、その案に対しての技術的な質問をしてもなかなか解決しない場合があるよ。
何のためにhiddenで値を保持しようとしているのか、まずはそこから話さないとアドバイスしにくいんじゃね?
0653nobodyさん
2010/04/08(木) 12:25:35ID:???たぶんやりたいのは投稿内容の確認画面ではないかとエスパー。
0654nobodyさん
2010/04/08(木) 12:27:24ID:???640じゃないが、機械翻訳したうえで、オリジナルサイトと両方見ながら読む努力しろよ。
コンピュータ用語なんてまともに翻訳できなくて当たり前なんだから。
そもそも、コードが翻訳された部分なんて、
>これを画像URLを入れ替えて勝手に自分のサイトで使うと怒られたりしますか?
こんなことを知るうえでは無関係な場所だから読む必要ないだろ。
■ このスレッドは過去ログ倉庫に格納されています