2

私はphpを初めて使用し、Webの.txtファイル内にある文字列を表示する次のコードを持っています:

<?php
$file = "file.txt";
$f = fopen($file, "r");
while ( $line = fgets($f, 1000) ) {
    print $line;
}
?>

非表示にする単語を選択する方法を知りたいです。私の場合、行の数字 (01,02,03,04,05,1,2,3,4,5) を非表示にしたいと考えています。また、特定の単語で始まる場合に備えて、行全体を別の行に置き換えたいと考えています。たとえば、行が「example」という単語で始まる場合、行全体を置き換えて「hello world」という単語のみを表示します。

4

3 に答える 3

4

番号を削除するには:

$str = preg_replace("/\d/", "", "This 1 is 01 2 a 2 test 4 45 aaa");
echo $str;

出力:
これはテストです aaa

フィドラーへのリンク


行全体 ("example" で始まる場合のみ) を "hello world" に置き換えるには:

$str =  "example This 1 is 01 2 a 2 test 4 45 aaa";
echo preg_replace("/^example.*/", "hello world", $str);

出力:

hello world

フィドラーへのリンク


両方を組み合わせると、次のようになります。

   $file = "file.txt";
   $f = fopen($file, "r");
   while ( $line = fgets($f, 1000) ) {
      $line = preg_replace("/^example.*/", "hello world", $line);
      $line = preg_replace("/\d/", "", $line);
     print $line;

   }
于 2012-10-17T03:07:18.723 に答える
2
<?php
   $hideStartWith = "example";
   $replaceWith = "hello world";
   $hideText = array("01","02","03","04","05","1","2","3","4","5");

   $file = "file.txt";
   $f = fopen($file, "r");
   while ( $line = fgets($f, 1000) ) {
      if(substr($line, 0, strlen($hideStartWith)) === $hideStartWith){
         $line = $replaceWith;  //print "hello world" if the line starts with "example"
     } else {
         foreach($hideText as $h)
             $line = str_replace($h, "", $line); //filtering the numbers
     }

     print $line;

   }
?>

お役に立てれば。

于 2012-10-17T03:10:55.887 に答える
1

行全体を置き換えるには、次のことを試してください。

if (stripos($my_line, "example")===0){
     $my_line = "example";
}

http://php.net/manual/en/function.str-replace.php

于 2012-10-17T03:02:51.040 に答える