通过php在LocalHost上img的绝对路径

时间:2016-03-22 10:34:14

标签: php html

处理个人项目,与内联php提供的img src attrib有些混淆。我也想问一下,在线php通常看起来是不好的做法吗?

以下是代码片段

<li>
<?php  
    $username = $_SESSION["username"];
    echo($username);
?>
</li>

<li><img 
<?php 
$xml = new DomDocument("1.0");

if(file_exists("data/posts/$username/$username.xml")){
    $xml->load("data/posts/$username/$username.xml");
    $postsArray = $xml->getElementsByTagName('post');
}else{
    echo ("Cannot reach image store");
}

foreach($postsArray as $post){
    $profPic = $post->getElementsByTagName("profpic")[0]->nodeValue;

    if($profPic == 'true'){
        $imgPath = $post->getElementsByTagName("path")[0]->nodeValue;

        $imgPath = str_replace("C:","localhost",$imgPath);
        $imgPath = str_replace("\\","/", $imgPath);
        echo ("src=\"http://".$imgPath."\"");
    }
}
?>
>
</li>

我遇到的问题是它抽出的字符串是

 <li>
 <img src="http://localhost/xampp/htdocs/hobnobv2/data/posts/liar/1.jpg"    >
 </li>

但无法加载图片。该图像存在于目录中。

C:\ XAMPP \ htdocs中\ hobnobv2 \数据\讯息\骗子

您可以给我任何指导吗?我知道str_replace是低效的,我应该在我的xml文件中保存“http://localhost/path/to/image.xml”字符串,但有没有理由不加载图像?

谢谢大家。我的心向你们所有人致敬。

1 个答案:

答案 0 :(得分:0)

这里有一个答案,但它现在已经消失了。

问题是我的网址错误。

<div style="height: 30px; margin: 0; padding: 0">
<table id="tblHeader" class=""
    style="background-color: #336666; color: white; border-collapse: collapse; height: 100%;">
    <tr>
        <td class="col-lg-4" style="text-align:left;width: 50px">
            <span>ID</span>
        </td>
        <td class="col-lg-4" style="text-align:left;width: 150px">
            <span>Employee</span>
        </td>
    </tr>
<tr>
 <td>
   <div style="height: 360px; overflow: auto;">
    <asp:GridView ID="grdEmp" runat="server" AutoGenerateColumns="False"
    OnRowCommand="grdEmp_RowCommand" ShowHeader="false"
    GridLines="None" Font-Size="Small">
    <Columns>

        <asp:BoundField DataField="EmpID" ItemStyle-Width="50px">
        </asp:BoundField>
    </Columns>
    <RowStyle BackColor="White" ForeColor="#333333" />
  </asp:GridView>
  </div>
      </td>
                 <td>
        <div style="height: 360px; overflow: auto;">
    <asp:GridView ID="grdEmp" runat="server" AutoGenerateColumns="False"
    OnRowCommand="grdEmp_RowCommand" ShowHeader="false"
    GridLines="None" Font-Size="Small">
    <Columns>
        <asp:BoundField DataField="EmpName">
            <ItemStyle CssClass="RowStyle150"></ItemStyle>
        </asp:BoundField>
    </Columns>
    <RowStyle BackColor="White" ForeColor="#333333" />
  </asp:GridView>
  </div>
      </td>
</tr>
</table>
</div>

而不是

protected void tv_SelectedNodeChanged(object sender, EventArgs e)
{
    TreeView tv = (TreeView)sender;
    tv.SelectedNodeStyle.ForeColor = System.Drawing.Color.MidnightBlue;
    tv.SelectedNodeStyle.BackColor = System.Drawing.Color.PowderBlue;
    tv.SelectedNodeStyle.Font.Bold = true;
}

感谢最初发布这个帖子的人,感到失去了时间。 希望这有助于某人。