我想将php数组的字符串转换为html。我的php和html代码在同一页面中。
我有$myvar
来保存我的字符串数组。我使用$myvar
传递POST
并将其插入$ba
。
我的代码需要在html第3页行上打印(在while循环中)。
但是当我通过$be
时,它会给我写错误信息:"注意:未定义的索引:myvar" (在PHP代码中)
我需要修复什么才能让我的代码在我的屏幕上打印出从php获得的所有3行?
我的代码:(php)
foreach ($docres as $key=>$filename) {
$counter = 0;
$file = $filename +1;
$handle = fopen($dir."/".$file.'.txt',"r");
if($handle)
{
while($counter < 3)
{
$myvar[]=fgets($handle);
$counter++;
}
}
}
$ ba = implode(&#34;
&#34;,$ myvar);
我的HTML代码:
<form action="" method="POST">
<center>
<h1> My Search Engine </h1>
<input type = 'text' size='90' value='' name = 'search' > <br>
<input type = 'submit' name = 'submit' value = 'Search source code'>
</center>
</form >
<p> <?php echo $ba ?> </p>
答案 0 :(得分:1)
只需在函数上回显mysql查询,并在HTML上调用它,如下所示: 更新:第3列将是一个图像,其路径存储在数据库中,第4列将是一个图像,只有名称存储在数据库中(因为我们知道完整路径),例如:
<?php
function printOnHtml(){
include ("connection.php");
$sql = "SELECT * FROM foo;"
if ($result = connection()->query($sql)){
$rs = $result->fetch_array(MYSQLI_NUM);
while ($rs[0] != ''){
echo "first column: ".$rs[0]." second column: ".$rs[1]." image with full route on database: <img src='".$rs[2]."' alt=''> <br> if only the img name is stored cuz we know the route: <img src='img_route/".$rs[3]."' alt=''>";
$rs = $result->fetch_array(MYSQLI_NUM);
}
}
}
然后在HTML上
<html>
blablabla
<body>
blablabla
<?php
printOnHtml();
?>
blablabla
</body>
</html>
注意它必须是一个.php文件来调用php函数(例如index.php)
如果您需要,我会按顺序粘贴我使用的连接php脚本:
<?php
function connection(){
if($mysqli = new MySQLi("localhost","user","password","database_name")) echo "OK"; else echo "KO";
mysqli_set_charset($mysqli, "utf8");
return $mysqli;
}
?>
我用mysqli fetch数组做了,但你可以使用fetch assoc做同样的事情。
UPDATE2:如果您使用txt来跟踪存储数据(如果获得数千行txt时增加会失败),请在代码中修改:
$myvar='';
foreach ($docres as $key=>$filename) {
$counter = 0;
$file = $filename +1;
$handle = fopen($dir."/".$file.'.txt',"r");
if($handle)
{
while($counter < 3)
{
if(isset($myvar)){
$myvar=fgets($handle);
}
$counter++;
}
}
}
我假设您正确地声明了$ dir,$ file和其他变量。 你永远不必使用变量而不声明它(至少为NULL)。如果您确保100%此var将在此时获得值,则只能执行此操作。
答案 1 :(得分:0)
您必须使用implode和<br>
作为分隔符,以正确的方式将数组转换为字符串
然后只需使用php标签打印它(因为您在同一页面使用它们),您可以直接访问变量并使用<?= $ba ?>
或<?php echo $ba ; ?>
打印它
代码将是:
<?php
foreach ($docres as $key=>$filename) {
$counter = 0;
$file = $filename +1;
$handle = fopen($dir."/".$file.'.txt',"r");
if($handle)
{
while($counter < 3)
{
$myvar[]=fgets($handle);
$counter++;
}
}
}
$ba = implode("<br>", $myvar);
?>
<form action="" method="POST">
<center>
<h1> My Search Engine </h1>
<input type = 'text' size='90' value='' name = 'search' > <br>
<input type = 'submit' name = 'submit' value = 'Search source code'>
</center>
</form >
<p id="deatiles"> <?= $ba ?> </p>