- ベストアンサー
変数の先頭一行を削除するにはどうしたら良いでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
正規表現を使わない方法として list (, $a) = explode("\r\n", $a, 2); というのもできます。 あと $a = "aaaaaaaaaaaaaaaaaaaaaaa\r\n bbbbbbbbbbb\r\n ccccccccccc\r\n "; は $a = "aaaaaaaaaaaaaaaaaaaaaaa\r\nbbbbbbbbbbb\r\nccccccccccc\r\n"; か $a = "aaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbb ccccccccccc "; のどちらかでよいのではないでしょうか(改行が2重になります)。 後者の場合はエディタによって改行コードを設定しないと\nだけになったりする可能性もありますが。
その他の回答 (3)
- satoh
- ベストアンサー率77% (17/22)
echo ereg_replace("^[^\r\n]+\r\n", '', $a); でいけそうです(文字列中に単独の\rや\nが無い場合)。一番の違いは'でなく"なところでしょうか。 あと、正規表現は最長一致(出来るだけ長い文字列と一致するようにする)が基本なので、.+だと途中に改行があっても最後の改行の手前まで全部、になってしまいます。 それと少し気になったのですが $a = "aaaaaaaaaaaaaaaaaaaaaaa\r\n bbbbbbbbbbb\r\n ccccccccccc\r\n "; ではなく $a = "aaaaaaaaaaaaaaaaaaaaaaa\r\nbbbbbbbbbbb\r\nccccccccccc\r\n"; ではないでしょうか。 ""の中で\r\nを指定するなら途中で改行しちゃダメではありませんか?(もしくは改行して\r\nを書かない) ちなみに、改行はWindows(DOS)では\r\nですが、Macは\r(最近は\nかも)、LinuxなどのUnix系は\nだったりしますので、一般向けに公開されるなら注意が必要かと思います。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
echo preg_replace("/^.*?\r\n/", "", $a); とか
- fire--
- ベストアンサー率49% (146/293)
echo ereg_replace("^[^\r\n]+\r\n", "", $a); で、どうでしょう? '=>" .=>[^\r\n] です。
関連するQ&A
- 複数行の一発辞書登録
どなたかご存知の方教えてください。 例えば aと変換して aaaaaaaaaaa bbbbbbbbbbb ccccccccccc ddddddddddd と全体を出す方法はないですか? 言い方を変えれば、aに対して 複数行に渡る絵文字がでてもいいです。 よろしくおねがいいたします。
- ベストアンサー
- その他(ソフトウェア)
- セッション変数の受け渡しができない
a.php: <?php session_start(); $_SESSION['test'] = "ok"; echo "<html><body>\n"; echo "<pre>\n"; var_dump($_SESSION); echo "</pre>\n"; echo "<a href=\"./b.php\">結果ページへ</a>"; echo "</body></html>\n"; ?> b.php: <?php session_start(); echo "<html><body>\n"; echo "<pre>\n"; var_dump($_SESSION); echo "</pre>\n"; echo "</body></html>\n"; ?> a.php の表示: array(1) { ["test"]=> string(2) "ok" } 結果ページへ b.php の表示: array(0) { } 再読込みでも同様です。 php.ini の Session 関係の項目は書籍やウェブサイトを参考にしておかしなものはないと自己判断していますが、指摘されるものを掲載します。
- 締切済み
- PHP
- join関数について
phpのjoin関数について教えてもらえないでしょうか? $temp = ereg_replace("[\r\n]", "", join( ",", $CsvData[ $i ] ) ). "\n"; アドバイスお願いします。
- 締切済み
- PHP
- 半角¥を全角¥に変換するために
<?PHP mb_language('ja'); mb_internal_encoding('utf-8'); $str="ok\\ok<br/>"; echo$str; mb_ereg_replace('\\','¥',$str); echo$str; ?> としましたがエラーになりうまくいきません どう修正したらいいでしょうか?
- ベストアンサー
- PHP
- mb_eregについて
初歩的な質問かもしれませんが、 DB内の1つのカラムに 「a1,a3,a5,a7,a9」という値が格納されてる時、 if(ereg("a9",$str)){ echo "ok"; } という「ereg」を使った条件式でしたら、正常に値が返るのですが、 if(mb_ereg("a9",$str)){ echo "ok"; } と、「mb_ereg」を使用した時には 「Call to undefined function: mb_ereg()」 というエラーが返ってくるのですが これは何が原因なのか、お分かりになる方はいらっしゃいますでしょうか?
- ベストアンサー
- PHP
- エスケープ文字そのものにマッチさせる正規表現
お世話になっております。 PHPの正規表現でエスケープ文字\そのものにマッチさせる正規表現がなかなか作れません。Perl互換のpreg_replaceなども試してみましたがダメでした。エスケープ文字そのものを削除したいのですが、どうしたらよいでしょうか? $value = ereg_replace ('\\', '', $value);//ダメでした。 $value = preg_replace ('/\\/', '', $value);//同様にダメでした。 $value = preg_replace ('/[\\]/', '', $value);//同様にダメでした。 文字列中に\が入っていたり、単独で\があった場合は必要ないので削除するといった感じです。 $value = ereg_replace ('[][}}{)(!"#$%&\\~|*+,/\^\'<>`;:?\\=]', '', $value); これでいけるかと思ったのですが、\だけ残ってしまいます。最後辺りの\\で\文字それ自体にマッチするかと思うんですが…。 わかる方がいらしたらおしえてください。よろしくお願いします。
- ベストアンサー
- PHP
- キーワード検索ほ作成したけど実行するとできないのは何故!?
<SCRIPT LANGUAGE="PHP"> // 検索用関数 Function Search_Pattern($record,$pattern) { for($loop = 0;$loop < count($pattern);$loop++) { if($pattern[$loop] == "") continue; if(!ereg($pattern[$loop],$record)) return 0; } return 1; } // メインプログラム if($search) { if(!$keyword) { $error = "キーワードが入力されていません"; $search = ""; } } if($search) { $fp = @fopen("search_csv.csv","r"); if(!$fp) { $error = "該当ファイルを参照できません"; $search = ""; } } </SCRIPT> <HTML> <HEAD> <META Http-Equiv="Content-Type" Content="text/html;charset=SHIFT-JIS"> <TITLE>ファイル簡易検索</TITLE> </HEAD> <BODY> <B>ファイル簡易検索</B> <BR> <CENTER> <FORM ACTION="search_csv.php" METHOD="post"> <INPUT TYPE="hidden" NAME="search" VALUE="検索する"> キーワード: <INPUT TYPE="text" NAME="keyword" VALUE="<? echo $keyword; ?>" SIZE="30"> <INPUT TYPE="submit" NAME="search" VALUE="検索する"> </FORM> <FONT COLOR="#FF0000"><? echo $error; ?></FONT> <HR> <P> <SCRIPT LANGUAGE="PHP"> if($search) { echo "<TABLE BORDER=1>\n"; while(!feof($fp)) { $buff = fgets($fp,255); $title .= $buff; if(ereg("\n",$buff)) break; } $title = ereg_replace("\x0A","",$title); $column = split(",",$title); echo "<TR>\n"; for($loop = 0;$loop < count($column);$loop++) { echo '<TD BGCOLOR="#00FFFF" NOWRAP>',$column[$loop],"</TD>\n"; } echo '<TD BGCOLOR="#00FFFF" NOWRAP>'; echo '詳細'; echo "</TD>\n"; echo "</TR>\n"; $keyword = ereg_replace(" "," ",$keyword); $pattern = split(" ",$keyword); while(1) { $line = ""; while(!feof($fp)) { $buff = fgets($fp,255); $line .= $buff; if(ereg("\n",$buff)) break; } if($line == "") break; if(!Search_Pattern($line,$pattern)) continue; $line = ereg_replace("\x0A","",$line); $column = split(",",$line); echo "<TR>\n"; echo "<FORM method=\"post\" action=\"./formdb_modify.php\">\n"; echo "<INPUT type=\"hidden\" name=\"data_no\" value=\"".$column[0]."\">\n"; for($loop =0; $loop< count($column);$loop++) { echo "<TD nowrap><FONT size=-1>" . $column[$loop] . "</FONT></TD>\n"; //echo "<TD nowrap><FONT size=-1>" . $column[1] . "</FONT></TD>\n"; //echo "<TD nowrap><FONT size=-1>" . $column[2] . "</FONT></TD>\n"; //echo "<TD nowrap><FONT size=-1>" . $column[3] . "</FONT></TD>\n"; } echo "<TD nowrap><INPUT type=\"submit\" value=\" 詳細\"></TD>\n"; echo "</FORM>\n"; echo "</TR>\n"; } fclose($fp); echo "</TABLE>\n"; } else { echo "キーワードを入力し、検索ボタンを押すと検索結果がここに表示されます。\n"; } </SCRIPT> 実行すると何も検索されないのだけど... localhostでは、実行されます。 どこがおかしいのでしょうか!?
- 締切済み
- PHP
- 硬貨の表がr回以上出る確率・・・
表と裏の出る確率がそれぞれ1/2である硬貨を2n回投げるとき、表がr回以上出る確率をa_r、表がs回以下出る確率をb_rとする。 (1)n=1のときa_1、b_1を求めよ (2)a_n=b_nを示せ (3)a_n+1=1/2[1-{(2n)!/ (2^n*n!)^2}]を示せ この問題を解いています (1)は3/4となりました (2)は帰納法みたいにして示してはダメでしょうか? (3)はいったいどこからこんな複雑な式を導くのか見当もつきませんでした。 回答いただければ幸いです。 ぜひよろしくお願いします
- ベストアンサー
- 数学・算数