|
|
|
| Есть такой скриптик
<?php
$arr = file("base/index.txt");
// В цикле обходим массив $arr
foreach($arr as $line)
{
list($msg, $cont) = explode('|',$line);
echo "$msg ---- $cont<br>";
//echo "<a href=$cont>$msg</a><br>";
}
?>
|
Как сделать правильно ссылку
"<a href=$cont>$msg</a><br>";
|
чтобы выводилось содержимое переменной $cont в браузер, после нажатия на ссылку? | |
|
|
|
|
|
|
|
для: zavragnov
(25.10.2005 в 11:59)
| | Либо перезагружаете страницу, передавая значение этой переменной через get, либо передаете положение элемента в массиве. | |
|
|
|
|
|
|
|
для: Loki
(25.10.2005 в 12:09)
| | а как через get | |
|
|
|
|
|
|
|
для: zavragnov
(25.10.2005 в 12:25)
| | Делаю вот так, он выводит только из последний строки, помогите подправьте код.
Я понимаю сам что не правильно, но как правильно не знаю!
<?php
$selfile = "index.txt";
$arr = file("$selfile");
// В цикле обходим массив $arr
foreach($arr as $line)
{
list($msg, $cont) = explode('|',$line);
//echo "$msg ---- $cont<br>";
echo "<a href='show3.php?selfile=$selfile'>$msg</a><br>";
}
?>
<?
if(isset($_GET['selfile'])) {
$filename = $_GET['selfile'];
if(file_exists($filename)) {
$arr = file("$filename");
// В цикле обходим массив $arr
foreach($arr as $line)
{
list($msg, $cont) = explode('|',$line);
}
echo "<br><br>$cont<br>";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: zavragnov
(25.10.2005 в 11:59)
| | А что в переменной $cont? Адрес ссылки или значение?
Для ссылки
<a href=$_SERVER[PHP_SELF]?cont=$cont>$msg</a><br>
|
Получить значение параметра cont можно при помощи следующего кода
<?php
echo $_GET['cont'];
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(25.10.2005 в 13:21)
| | Это скрипт вывода информации из файла в браузер
Вот содержимое файла index.txt
1111111111|11111111111
222222222|2222222222222222
3333333333333|33333333333333333
|
в переменной $cont содержиться то чо стоит после разделителя "|"
И вот что получилось
<?php
$selfile = "index.txt";
$arr = file("$selfile");
// В цикле обходим массив $arr
foreach($arr as $line)
{
list($msg, $cont) = explode('|',$line);
//echo "$msg ---- $cont<br>";
//echo "<a href='show3.php?selfile=$selfile'>$msg</a><br>";
echo "<a href=$_SERVER[PHP_SELF]?cont=$cont>$msg</a><br>";
}
?>
<br><br><br>
<?
if(isset($_GET['cont'])) {
echo $_GET['cont'];
}
?>
|
| |
|
|
|
|
|
|
|
для: zavragnov
(25.10.2005 в 13:34)
| | А как быть, если я хочу передать не только одну переменную $cont
И файл будет выглядеть так
1111111111|ааааааааааааааааааа|1212121212
222222222|вввввввввввввввв|232323232323
3333333333333|ммммммммммммммммм|3434343434343
|
а в скритпе следователно
<?php
$selfile = "index.txt";
$arr = file("$selfile");
// В цикле обходим массив $arr
foreach($arr as $line)
{
list($msg, $cont, $ohter) = explode('|',$line);
echo "<a href=$_SERVER[PHP_SELF]?cont=$cont>$msg</a><br>";
}
?>
<br><br><br>
<?
if(isset($_GET['cont'])) {
echo $_GET['cont'];
}
?>
|
А вот как передать все переменные $msg, $cont, $ohter, чтобы отобразить их в браузере? | |
|
|
|
|
|
|
|
для: zavragnov
(25.10.2005 в 13:58)
| | 1) Если будут русские буквы, то содержимое $cont следует пропускать через urlencode(), так как национальные символы в URL недопустимы.
2) Хм... ну так и делайте
<?php
$selfile = "index.txt";
$arr = file("$selfile");
// В цикле обходим массив $arr
foreach($arr as $line)
{
list($msg, $cont, $ohter) = explode('|',$line);
echo "<a href=$_SERVER[PHP_SELF]?cont=".urlencode($cont)."&ohter=".urlencode($ohter).">$msg</a><br>";
}
?>
<br><br><br>
<?
if(isset($_GET['cont'])) {
echo $_GET['cont'];
}
?>
|
Или у вас в файлах произвольное число столбцов? | |
|
|
|
|
|
|
|
для: cheops
(25.10.2005 в 14:15)
| | А как осуществить такое, изменение выбранной строки
То что я написал сохраняет только одну строку и убивает все остальные
<?php
$selfile = "index.txt";
$arr = file("$selfile");
// В цикле обходим массив $arr
foreach($arr as $line)
{
list($msg, $cont, $ohter) = explode('|',$line);
echo "<a href=$_SERVER[PHP_SELF]?msg=".urlencode($msg)."&cont=".urlencode($cont)."&ohter=".urlencode($ohter).">$msg</a><br>";
}
?>
<br><br><br>
<?
if(isset($_GET['msg']))
{
$a = $_GET['msg'];
$b = $_GET['cont'];
$c = $_GET['ohter'];
}
?>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<br>
<form name="form" method="post" action="addc.php">
<input name="selfile" type="hidden" value="<?php echo $selfile?>">
<label> <br>
<textarea name="q" cols="80"><?php echo $a ?></textarea>
</label>
<p>
<label>
<textarea name="w" cols="80"><?php echo $b ?></textarea>
</label>
</p>
<p>
<label>
<textarea name="e" cols="80"><?php echo $c ?></textarea>
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="Submit">
</label>
</p>
</form>
|
обработчик addc.php
<?php
// Открываем файл
$filename = "$selfile";
$fd = fopen("$filename","w");
// Записываем содержимое текстовых областей
fwrite($fd, $_POST['q']."|".$_POST['w']."|".$_POST['e']);
// Закрываем файл
fclose($fd);
?>
|
| |
|
|
|
|
|
|
|
для: zavragnov
(25.10.2005 в 15:16)
| | Нет, в обработчике addc.php необходимо по-новой открывать файл (file) искать строку которую вы заменяет и заменять эту строку, потом собирать содержимое файла из массива при помощи implode - и перезаписывать всё содержимое файла при помощи описанного вами кода. Для этого в строке файла должен быть уникальный участок, который не подвергается изменению и по которому строку всегда можно найти. | |
|
|
|