プロが教える店舗&オフィスのセキュリティ対策術

お世話になっています。
タイトルにあるように、別ファイルに記述のあるテキスト(改行あり)から、そのテキストを1行で変数に代入したく、以下のようにしています。

$file = "http://~";
$text = file($file);
for($i=0: $i<count($text); $i++){
 $text_data .= $text[$i];
}

#上記スクリプトはコピペじゃなく、今手元で記述したもなので、間違っていたらすみません。

上記スクリプトにより変数に代入された1行テキストを他のスクリプトに利用したいのですが、上手くいかず、色々と試しているなかで、$text_dataを出力してメモ帳にコピペしてみると、何箇所かに改行されているところが確認できました。

改行されているところとは、元のファイルを作成する際、エンターキーにより改行されているところなのですが、改行されている前後をコピペする分には問題ないものの、テキスト全文(文字数は1万文字を数える)をコピペすると、エンターキーによる改行箇所(全てじゃないです)が、メモ帳において改行されてしまいます。(普段使っているterapadでは全てがコピペできていない)

このような状況なのですが、別ファイルからテキストを1行として取得するには、どのようにしたら良いのでしょうか?
勉強不足でfile()を利用していますが、他の方法が思いつかず利用しているので、別の方法でも構いません。ご教示のほど宜しくお願い致します。

A 回答 (3件)

状況がよくわからないのですが


file_get_contents()で受けて、改行をとりのぞいてみては?

<?php
$fname='http://localhost';
$str= file_get_contents($fname,true);
$str=preg_replace("/\n|\r/","",$str);
echo $str;
?>
    • good
    • 0
この回答へのお礼

yambejp様

こんばんは。早速のアドバイスをありがとうございます!
お陰さまで解決することができました。

$str=preg_replace("/\n|\r/","",$str);
これですが、preg_replace()で置き換えるという発想が出てきませんでした。正規表現、もっと勉強したいと思います。
ありがとうございました!

他のスクリプトの兼ね合いもあり、ご挨拶するのが遅れて申し訳ありませんでした。

お礼日時:2009/05/09 01:02

$file=file_get_contents("http://~");


$text_data=explode("\n",$file);
echo $text_data[0];
こんなんでどうですか?
    • good
    • 0
この回答へのお礼

Sylar様

こんばんは。ご親切なアドバイスをありがとうございます!
ご回答して下さった皆様の方法をすべて試したのですが、この方法ではうまくいきませんでした。

呼び出したいファイル内にあるテキストは、多くの改行を含んでおり、改行を省いたテキストを1行として変数に入れたく、そのためfile()を用いて、配列を分解?した際、その都度変数にいれていたのです。
私の説明不足でしたが、ご親切に回答して下さり感謝しております。ありがとうございました。

お礼日時:2009/05/09 01:13

fread ― バイナリセーフなファイルの読み込みです。


<?php
// ファイルの中身を読んで文字列に格納する
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
//読み込んだ後、改行文字を取り除く(正規表現より早い)
$crlf = array("\r\n", "\n", "\r");
$text_data = str_replace($crlf, "", $contents);
$newstr = str_replace($order, $replace, $str);
?>

参考URL:http://www.php.net/manual/ja/function.fread.php
    • good
    • 0
この回答へのお礼

yyr446様

こんばんは。早速のアドバイスをありがとうございます!
勉強不足も手伝ってか、あいにくfread() この部分でエラーとなってしまいましたが、ファイルを読み込むにもいくつかパターンがあるのですね。もう少し幅広い方法が理解できるようになりたいと思います。
勉強になりました。ありがとうございます!

同一ファイル内で、他のスクリプトの兼ね合いもあり、結果が出るのが遅れてしまい、ご挨拶が遅れました。すみません。

お礼日時:2009/05/09 01:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!