【问题标题】:Can I add an image path from a .txt file in a webpage using PHP?我可以使用 PHP 从网页中的 .txt 文件添加图像路径吗?
【发布时间】:2013-09-16 12:38:50
【问题描述】:

我需要将 img src 完整文件路径动态添加到 .txt 文件中的文件。到目前为止,我一直在使用下面的代码来填充标题和描述:

< ?php

    $myFile = "film_music/feature1.txt";
$lines = file($myFile);//file in to an array<br />
echo $lines[0]; //line 1

    ? >

功能文件包含最终将在此处显示的电影的所有详细信息:

http://www.londonosophy.com/film_music2.php

目前该文件包含以下行:

观光客 (2012)
由 Alice Lowe 主演的黑色喜剧
图片/Sightseers-TinaPencil.jpg

有谁知道可以读取第 X 行(或本例中的第 3 行)并动态填充 img src="" 文件路径的 php 代码?

非常感谢您的建议!

【问题讨论】:

  • 使用 CSV 代替文本文件会更好。
  • 你的问题是什么?您不知道如何遍历文件行?或者你不知道如何检查每一行以检查它是否是文件名?
  • 嗨 Sanja,我不知道如何遍历文件行,所以我想简单地将文件路径图像 URL 从 .txt/ CSV 文件添加到我的 html - 但需要 PHP知道 PHP 可以做到这一点,谢谢
  • *但是需要知道 PHP 才能做到这一点

标签: php html text


【解决方案1】:

如果您需要遍历行并需要检查行是否包含文件路径(例如,如果块之间有时有白线,有时它们会丢失),那么:

<?php
$myFile = 'film_music/feature1.txt';
$lines = file($myFile);
$needle = 'images/';
$needleLen = strlen($needle);
foreach ($lines AS $line) {
  $line = trim($line);
  if (substr($line, 0, $needleLen) == $needle) {
    echo '<img src="' . $line . '" alt="" />';
  }
}
?>

【讨论】:

  • 有了这个脚本有没有办法在同一个文件中指向不同的 img 路径?例如。我将在一个 .txt 文件中拥有多达 19 个 img 路径,所以如果可能的话,我希望能够从特定行中提取一个 img 路径。干杯
【解决方案2】:

您每次都需要获取文件的第 3 行,因为它包含图像的路径。

<?php
global var $raw;
$myFile = "film_music/feature1.txt";
// open file...
$lines = file($myFile);//file in to an array<br />
for($i=2;$i<=no_of_lines;$i+3){
    $raw = $lines[$i];
}
// Populate $raw variable where you need.
?>

【讨论】:

    【解决方案3】:

    使用$fh = fopen(...) 并循环每一行。

    while (!feof($fh)) {
    $line = fgets($fh);
      if ($line === false) {
        throw new Exception("File read error");
      }
      [do your things.]
    }
    

    http://www.php.net/manual/en/function.fopen.php

    【讨论】:

      【解决方案4】:

      您可以将文本行的每一行读取为:

      $lines=file('file.txt');
      
      
          $lines=array();
          $fp=fopen('file.txt', 'r');
          while (!feof($fp))
          {
              $line=fgets($fp);
      
              //process line however you like
              $line=trim($line);
      
              //add to array
              $lines[]=$line;
      
          }
          fclose($fp);
      

      如果您不需要任何特殊处理,这应该可以满足您的需求

      $lines = file($lines, FILE_IGNORE_NEW_LINES);
      

      这对你有帮助吗... :)

      您可以根据需要使用in_array("you want", $lines) 检查文本文件的所有行...如果不是动态...

      【讨论】:

      • 谢谢,我可以只添加文件路径的文本吗? - 因为我不想动态添加图像,而是指向不同位置的文件路径。
      • 看,这段代码将文本文件的所有行都还原为数组,所以在这里你可以按数组检查你想要比较的结果并执行你愿意的任务......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多