• ベストアンサー

シングルクォートでテキストファイルが読み込めない

cucsnaの回答

  • ベストアンサー
  • cucsna
  • ベストアンサー率23% (12/51)
回答No.2

全く実行環境がないところで回答しているので、 間違っているかもしれませんが・・・、 PHPでは、「'」(シングルコーテーション)と、 「\」(バックスラッシュ)は特別な文字のようで、 これらは、エスケープしてあげないといけない場合があります。 (設定にもよるのでしょうか?その辺の詳しいことは分からないのですが・・・) 違っていたら申し訳ないのですが、 echo pg_escape_string($file[i]); でやってみたら表示できないでしょうか。

rheda
質問者

お礼

回答ありがとうございます。 HTMLソースをみると、 <input ...value='I don't...'> と、なっていました。 別のところで、問題があったようです。 echo "....value=\"".$file[i]."\">";で、 解決しました。

関連するQ&A

  • テキストファイルを作成するとき...

    ASPとVBScriptでテキストファイルを書き出す場合なのですが、ダブルクォーテーションをそのまま書き出す方法を教えて下さい。例えば moji="あいうえお" という文章をそのままテキストファイルに書き出したいのです。( シングルクォーテーションではダメです。) よろしくお願いします。

  • textファイルについて

    あるディレクトリーに test.txt aaa.txt があるのですが、 二つのテキストを開いて もし text.txtの3行目に http://www.goo.ne.jp/ があり aaa.txtの10行目にも http://www.goo.ne.jp/ があるとすれば aaa.txtの10行目を消したいのですが、 そんな事って可能ですか?? 色々考えたのですが、aaa.txtの10行目を消す時に 10行目を空にすると言う指定が出来なくて困ってます。 どうしてもaaa.txtの削除が出来ません。 参考までにスクリプトを載せておきます <?php $file_name = array("aaa.txt", "test.txt"); $list = fopen($file_name[0], "a+"); $delete_list = fopen($file_name[1], "r"); $listfile = file($file_name[0]); $listmax = count($listfile); $listfile = file($file_name[1]); $delete_listmax = count($listfile); if ($delete_listmax > 0){ for ($delete_line = 1; !feof($delete_list); $delete_line++){ $delete_lines = fgets($delete_list); $delete_lines = trim($delete_lines); if ($delete_lines){ if (is_file($file_name[0])){ for ($line = 1; !feof($list); $line++){ $lines = fgets($list); $lines = trim($lines); if ($lines){ if ($delete_lines == $lines){ //ここの部分がわからないです fputs($list, "あああ"); echo "O,K\n"; } } } } } } } fclose($delete_list); fclose($list); echo "\n終了\n"; ?> 詳しい方がいましたら宜しくお願いします

    • ベストアンサー
    • PHP
  • ワークシートの内容をテキストファイルに書き込む際に、テキストファイルでは改行が”↑”と表示されるだけで困っています

    エクセルのデータをテキストファイルに出力させたいのですが、テキスト出力の際に"↑"が表示されるだけで改行がうまくできません。 マクロの組み方でアドバイスをいただけないでしょうか? ------------------------------ <↓具体的に、、、、。> ・エクセルデータは、同一セル内に改行させたデータがあります。      列A   列B   行1 No,1  1-111111              1-1111       行2 No,2  2-2222    ←セル"B1"と"B2"のデータを     2-22222    テキストでも改行させて表示したい。 ・テキストでは、下記のように出力させたい ◆No,1 1-111111 1-1111 ◆No,2 2-2222 2-22222 ---------------------- <↓私が試しているコードです。> 'Test.txt 開く Open "C:\Test.txt" For Output As #File_Number '列Aのセルに空白文字列が入るまで、処理を繰り返す i = "3" Do While Worksheets("sheet1").Cells(i, 1) <> "" Print #File_Number, "◆" & Cells(i, 1) Print #File_Number, Cells(i, 2) i = i + 1 Loop 'Test.txt を閉じる Close #File_Number このマクロだとテキストでは ◆No,1 1-111111↑1-1111 ◆No,2 2-2222↑2-22222 となります。 アドバイスの程、よろしくおねがいします。

  • ファイルにコーテーション類を書き込む方法

    HTMLのフォーム(Textarea)で入力したテキストを そのまま、ファイルに書き込みたいです。 (正式にはHTMLエディタのようにしたいです) 以下のソースのように作成しましたが、 シングルコーテーションやダブルコーテーションが ファイルに書き込まれる時に¥がついてしまいます。 ================== 入力フォーム =================== <html> <body> <form name='fm' action='fsave.php' method='post'> <textarea name='txt' rows='20' cols='40'> </textarea> <input type='submit' value='ファイル保存'> </body> </html> ================== fsave.php =================== <?php $txt = $_REQUEST["txt"]; $fp = fopen("sample.html","w"); fwrite($fp,$txt); echo "ファイル書き込み完了"; ?> =============== TEXTAREAへの入力値 =================== <a href='aaa.html'>LINK </a> =============== sample.htmlの中身 =================== <a href=\'aaa.html\'>LINK </a> シングルコーテーションやダブルコーテーションを フォームからPHPに渡して、ファイルに書き込むには どうすればよろしのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • バッチファイルでテキストファイル読込

    バッチファイルにてテキストファイルを一行読込みたいのですが、 「,」までの位置しか取得できません。 現状の該当箇所のコマンドと読込むテキストは以下になります。 [実行するコマンド] For /F "delims=" %%i in (read.txt) Do Call :Sub %%i :Sub set DATA=%1 echo %DATA% [読込むテキスト read.txt] "111","222","333","444" "111","222","333","444" [結果] "111" 結果の通り、カンマまでしか取得できていない状態です。 どなたかご教授の方、よろしくお願い致します。

  • EXCELにテキストファイルを読込むマクロ作成

    EXCELにテキストファイルを「カンマ区切り」で読み込みしたいのですが、 下記マクロの内容ではカンマ区切りで正しくインポートされないのですが 作成方法ご伝授お願いいたします。 sub macro1()  dim myFile as string  myfile = application.getopenfilename(filefilter:="テキストファイル(*.txt),*.txt")  if myfile = "False" then exit sub  workbooks.opentext _   filename:=myfile, _   datatype:=xldelimited, _   textqualifier:=xltextqualifierdoublequote, _   tab:=true, _   comma:=true, _   space:=true ’予備  activeworkbook.worksheets(1).move before:=thisworkbook.worksheets(1) end sub

  • csvファイルを統合する

    あるディレクトリにtest1.txtとtest2.txtというカンマ区切り(拡張子はcsvではないですけど)があったとして、それらのファイルを1行ずつ読み込み、それを追加書き出しで1つのファイルに収めていこうとしています。 そこで以下のようなコードを書いてみたのですが、どうやらtest1.txtしか読み込んで書き出せていないようなのです。その原因が分からずに困っています。 $dir = 'C:/Perl/workdir'; # 対象ディレクトリ名 open MYHANDLE, ">>out.txt"; # 追加書き出しモードでファイルハンドルをオープン opendir DH, $dir or die "$dir:$!"; # ディレクトリを開く while ($file = readdir DH) { # ディレクトリにあるファイル名を取得し、$fileに格納 next if $file =~ /^\.{1,2}$/; # '.'や'..'も取れるので、スキップする open MYFILE, "$file"; # 取得したファイルを開く while (<MYFILE>) { chomp; @dat = split /,/; # 読み込むファイルは「カンマ区切り」としてレコードを読み込む。 $n = @dat; for($i=0; $i<$n; $i++){ print MYHANDLE $dat[$i]; # ファイルに追加書き出し(ファイルがなければ新規作成される) print MYHANDLE ","; # カンマ区切りで書き出していく } print MYHANDLE "\n"; # 1行読み終えるごとに改行 } close MYFILE; # i番目のファイルを読み終えたら閉じる print $file, "\n"; # 読み込み・書き出しをしたファイル名を表示する } closedir DH; close MYHANDLE;

    • ベストアンサー
    • Perl
  • スクリプトファイル編集について

    ファイル編集について勉強なのですがどうしてもできません。 複数ファイル内よりIF構文を見つけてFILE_A.txtのIF書式へ変換する。 ※編集前にFILE_B.txtの変更箇所をコメント化して編集後に変換、 FILE_A.txtの書式であれば編集しない処理を作りたいと思うのですが・・・ FILE_A.txt if [ $? != 0 ] ; then   echo "てすと" fi 編集前 FILE_B.txt -- if [ -f $file ] then   echo "てすと" fi 編集後 FILE_B.txt -- #if [ -f $file ] #then if [ -f $file ] ; then   echo "てすと" fi 以上よろしくおねがいします。

  • 【DOSコマンド】for の デリミタにダブルクォーテーションを使うには

    下記のような1行だけ書かれたテキストファイルがあり、その中からダブルクォーテーションで囲まれた部分を抜き出そうとしています。 --【abc.txt】----------------------------------------------------------- Command Line: "C:\Program Files\test\test.exe" ---ここまで------------------------------------------------------------- (C:\Program Files\test\test.exe を抜き出したい) DOSコマンドのfor文を使って抜き出そうとしたのですがダブルクォーテーションをどうやってデリミタに指定したらいいのかわかりません。   for /f 'delims=" tokens=2' %i in (test.txt) do @echo %i  とか   for /f "delims="" tokens=2" %i in (test.txt) do @echo %i など いろいろやってみたのですがエラーが出ました。 試しにテキストファイルのダブルクォーテーションを”+”に置き換えて試したところうまく出来たので、デリミタの指定の仕方だけだと思うのですが、どうしてもわかりません。 Command Line: +C:\Program Files\test\test.exe+   に対して for /f "delims=+ tokens=2" %i in (test.txt) do @echo %i はうまく出来ました。 どなたかご享受願えませんでしょうか。 よろしくお願いします。

  • バッチファイル テキスト読込

    バッチファイルの中で、テキストを読み込んで、その中から 10文字分抽出する処理を行いたいのですが、テキストを変数に格納できません。 ヘルプ・ネットも見たのですが、やりかたが悪いのかできてない状況です。 何が悪いのかご教授お願いします。。 ↓ソース set testFile=test.txt For /F "delims=" %%i in (%testFile%) Do ( set readTxt=%%i set str=%readTxt:~10,10% echo %readTxt% echo %str% )