Potrebuju poradit. V PHP umim skutecne jen zaklady (podmiky, cykly, promenne) a na vetsinu veci mi to staci... ale ted potrebuju neco jineho na co nestacim. O PHP se moc nezjimam takze me omluvte ze se to radsi nenaucim a ze pisu sem. Mam treba soubor neco.txt, ten chci precist a vypst jeho jednotlivy radky a vedle nich tlacitko (odkazh) smazat. Vypsat ty radky este umim ale s tim mazanim jednotlyvych radku mam problem. Thx
Fórum › PHP
Mazani jednotlivyh radku v souboru
![](img/forum_vlakno_help_vyreseno.png)
Použij funkciu str_replace()
$novy_obsah_suboru=str_replace("text na vymazanie","",$subor);
:mno:
no tim nahradim urcitej retezec prazdnou hodnotou... potrebuju zjistit jakej retecez mam nahradit. treba chci nahradit 5tej radek tak to bude "jsem patej" z nekolikaradkovyho textu...
MI@SO napsal:
Pou?i funkciu str_replace()
$novy_obsah_suboru=str_replace("text na vymazanie","",$subor);
:mno:
To ma?e v?echny v?skyty ?et?zce, n? ur?it? ??dek(co kdy? by tam bylo v?c ??dk? s tat?? obsahem). Mnohem lep?? by bylo si ty ??dky o??slovat a dle toho mazat:
<?php
if(isset($_POST['index']) && is_array($_POST['index'])) {
$radky = file('soubor.txt');
foreach($_POST['index'] as $klic => $hodnota) {
$radky[$hodnota] = '';
}
$text = join('', $radky);
file_put_contents('soubor.txt', $text);//Od php5
//jinak
//$fp = fopen('soubor.txt', 'w');
//fwrite($fp, $text);
//fclose($fp);
}
$radky = file('soubor.txt');
?>
<form name="smaz" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
<?php
for($i = 0; $i != count($radky); ++$i) {
echo ' '.$radky[$i].' <input type="checkbox" name="index[]" value="'.$i.'">'."n";
}
?>
<input type="submit" name="sub" value="Smaz oznacene radky">
</form>
Ale ?pln? nejlep?? by bylo povolit p??mou editaci souboru:
<?php
if(isset($_POST['text'])) {
if(get_magic_quotes_gpc()) {
$_POST['text'] = stripslashes($_POST['text']);
}
file_put_contents('soubor.txt', $_POST['text']);
}
$text = file_get_contents('soubor.txt');
?>
<form name="edit" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
<textarea name="text"><?php echo $text; ?></textarea>
<input type="submit" name="sub" value="Edituj">
</form>
Pokud by k takov?to editaci m?lo m?t p??stup v?c lid?, bylo by dobr? zajistit u ka?d?ho p??kla atomicitu operac? - http://www.dgx.cz/trine/item/atomicke-operace-se-soubory/category/php.
PS: K?dy jsem psal z hlavy, tak nevylu?uji p??padn? chyby :) . Kdyby se p?eci jenom n?jak? vyskytly, nev?hejte to sem napsat.
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar
Thx to je presne to co jsem potreboval. Moc jsi mi pomohl :mno:
<?php
if(isset($_POST['index']) && is_array($_POST['index'])) {
$radky = file('soubor.txt');
foreach($_POST['index'] as $klic => $hodnota) {
$radky[$hodnota] = '';
}
$text = join('', $radky);
jinak
$fp = fopen('soubor.txt', 'w');
fwrite($fp, $text);
fclose($fp);
}
$radky = file('soubor.txt');
?>
<form name="smaz" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
<?php
for($i = 0; $i != count($radky); ++$i) {
echo ' '.$radky[$i].' <input type="checkbox" name="index[]" value="'.$i.'">'."n";
}
?>
<input type="submit" name="sub" value="Smaz oznacene radky">
</form>
Nevíš jak ještě k tomu udělat stránkováni ??
Jako?e by se t?eba zobrazovalo jen 10 ??dk? na str?nku?
function get_url_s() {
if(empty($_GET)) {
return '?';
}
else {
return '';
}
}
function paging_s($count, $limit, $act_page, $str_overview="Celkem z?znam?: ", $str_next="N?sleduj?c? <big>></big>", $str_prev="<big><</big> P?edchoz?") {
if($count <= $limit)
return '';
$pages_count = ceil($count/$limit);
//prvni stranka
if($act_page != 1)
$page_list = " <a href="".preg_replace("/?*(&|&)pg=d*/i", "", $_SERVER["REQUEST_URI"])."">1</a>n";
else
$page_list = " <b>1</b>n";
for($i = 2; $i != $pages_count+1; ++$i)
$page_list .= " <a href="".preg_replace("/?*(&|&)pg=d*/i", "", $_SERVER["REQUEST_URI"]).get_url_s()."&pg=$i"."">$i</a>n";
if(!$act_page)
$act_page = 1;
//Prvni stranka
$page_list = str_replace("<a href="".preg_replace("/?*(&|&)pg=d*/i", "", $_SERVER["REQUEST_URI"]).get_url_s()."&pg=$act_page"."">$act_page</a>", " <b>$act_page</b>", $page_list);
echo "<div class="paging">$str_overview$count<br>n";
echo "Str?nky: ";
if($act_page > 2)
echo " <a href="".preg_replace("/?*(&|&)pg=d*/i", "", $_SERVER["REQUEST_URI"]).get_url_s()."&pg=".($act_page-1)."">$str_prev</a> ";
elseif($act_page == 2)
echo " <a href="".preg_replace("/?*(&|&)pg=d*/i", "", $_SERVER["REQUEST_URI"])."">$str_prev</a>n";
echo $page_list;
if($pages_count > $act_page)
echo " <a href="".preg_replace("/?*(&|&)pg=d*/i", "", $_SERVER["REQUEST_URI"]).get_url_s()."&pg=".($act_page+1)."">$str_next</a> ";
echo "</div>n";
}
if(isset($_GET['pg'])) {
if(is_numeric($_GET['pg'])) {
$PAGE = $_GET['pg'];
}
else {
$PAGE = 1;
}
}
else {
$PAGE = 1;
}
$LIMIT = 10;
$rows = file('soubor.txt');
for($i = (($PAGE - 1) * $LIMIT); $i != ($PAGE * $LIMIT); ++$i) {
echo $rows[$i]."n";
}
paging_s(count($rows), $LIMIT, $PAGE);
?Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar
No, to je stránkování, ale já se ptám, jak to mazání jednotlivých řádků skloubit ještě se stránkovaným výpisem.
To je sakra tak těžké to zkombinovat? Příště trochu vlastní snahy prosím! :grr:
<?php
function get_url_s() {
if(empty($_GET)) {
return '?';
}
else {
return '';
}
}
function paging_s($count, $limit, $act_page, $str_overview="Celkem záznamů: ", $str_next="Následující <big>></big>", $str_prev="<big><</big> Předchozí") {
if($count <= $limit)
return '';
$pages_count = ceil($count/$limit);
//prvni stranka
if($act_page != 1)
$page_list = " <a href="".preg_replace("/?*(&|&)pg=d*/i", "", $_SERVER["REQUEST_URI"])."">1</a>n";
else
$page_list = " <b>1</b>n";
for($i = 2; $i != $pages_count+1; ++$i)
$page_list .= " <a href="".preg_replace("/?*(&|&)pg=d*/i", "", $_SERVER["REQUEST_URI"]).get_url_s()."&pg=$i"."">$i</a>n";
if(!$act_page)
$act_page = 1;
//Prvni stranka
$page_list = str_replace("<a href="".preg_replace("/?*(&|&)pg=d*/i", "", $_SERVER["REQUEST_URI"]).get_url_s()."&pg=$act_page"."">$act_page</a>", " <b>$act_page</b>", $page_list);
echo "<div class="paging">$str_overview$count<br>n";
echo "Stránky: ";
if($act_page > 2)
echo " <a href="".preg_replace("/?*(&|&)pg=d*/i", "", $_SERVER["REQUEST_URI"]).get_url_s()."&pg=".($act_page-1)."">$str_prev</a> ";
elseif($act_page == 2)
echo " <a href="".preg_replace("/?*(&|&)pg=d*/i", "", $_SERVER["REQUEST_URI"])."">$str_prev</a>n";
echo $page_list;
if($pages_count > $act_page)
echo " <a href="".preg_replace("/?*(&|&)pg=d*/i", "", $_SERVER["REQUEST_URI"]).get_url_s()."&pg=".($act_page+1)."">$str_next</a> ";
echo "</div>n";
}
if(isset($_POST['index']) && is_array($_POST['index'])) {
$radky = file('soubor.txt');
foreach($_POST['index'] as $klic => $hodnota) {
$radky[$hodnota] = '';
}
$text = join('', $radky);
$fp = fopen('soubor.txt', 'w');
fwrite($fp, $text);
fclose($fp);
}
if(isset($_GET['pg'])) {
if(is_numeric($_GET['pg'])) {
$PAGE = $_GET['pg'];
}
else {
$PAGE = 1;
}
}
else {
$PAGE = 1;
}
$LIMIT = 10;
$rows = file('soubor.txt');
?>
<form name="smaz" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
<?php
for($i = (($PAGE - 1) * $LIMIT); $i != ($PAGE * $LIMIT); ++$i) {
echo ' '.$rows[$i].' <input type="checkbox" name="index[]" value="'.$i.'">'."n";
}
?>
<input type="submit" name="sub" value="Smaz oznacene radky">
</form>
<?php
paging_s(count($rows), $LIMIT, $PAGE);
?>
Snad to konečně poběží :) .
Věřím, že můžete v životě získat všechno, co budete chtít, když budete pomáhat druhým lidem, aby dostali to, co si přejí oni. - Zig Ziglar
já myslím, že nejjednoduší by bylo použít databázi :))
http://jan.skrasek.com – @hrachcz – webdeveloper
![](img/forum_nove_psp_new.png)
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/1.gif)
![](/img/smile/2.gif)
![](/img/smile/3.gif)
![](/img/smile/4.gif)
![](/img/smile/5.gif)
![](/img/smile/6.gif)
![](/img/smile/7.gif)
![](/img/smile/8.gif)
![](/img/smile/9.gif)
![](/img/smile/10.gif)
![](/img/smile/11.gif)
![](/img/smile/12.gif)
![](/img/smile/13.gif)
![](/img/smile/14.gif)
![](/img/smile/15.gif)
![](/img/smile/16.gif)
![](/img/smile/17.gif)
![](/img/smile/18.gif)
![](/img/smile/19.gif)
![](/img/smile/20.gif)
![](/img/smile/21.gif)
![](/img/smile/22.gif)
![](/img/smile/23.gif)
![](/img/smile/24.gif)
![](/img/smile/25.gif)
![](/img/smile/26.gif)
![](/img/smile/27.gif)
![](/img/smile/28.gif)
![](/img/smile/29.gif)
![](/img/smile/30.gif)
![](/img/smile/31.gif)
![](/img/smile/32.gif)
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 8 hostů
Podobná vlákna
Mazání řádků v souboru — založil Ghost
Mazání podle řádku — založil pawlik
Mazání řádků v tabulce -> databázi — založil Ondřej Škvor
Mazání rozepsaného řádku u datagridview — založil juiCZe
UpdateAll chyba při mazání řádku v databázi — založil juiCZe
Moderátoři diskuze