Mazani jednotlivyh radku v souboru – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Mazani jednotlivyh radku v souboru – PHP – Fórum – Programujte.comMazani jednotlivyh radku v souboru – PHP – Fórum – Programujte.com

 

Pepa Rohlik0
Newbie
16. 10. 2006   #1
-
0
-

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

Nahlásit jako SPAM
IP: ...–
Gentoo 4ever...
Michal Vrábel0
Návštěvník
16. 10. 2006   #2
-
0
-

Použij funkciu str_replace()

$novy_obsah_suboru=str_replace("text na vymazanie","",$subor);

:mno:

Nahlásit jako SPAM
IP: ...–
Sunmay píše : Při čtení tohoto příspěvku povstaňte. Ja hovorím : Pri čítaní tohoto príspevku si radšej sadnite.
Pepa Rohlik0
Newbie
16. 10. 2006   #3
-
0
-

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...

Nahlásit jako SPAM
IP: ...–
Gentoo 4ever...
Jakub0
Super člen
16. 10. 2006   #4
-
0
-

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.

Nahlásit jako SPAM
IP: ...–
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 TOPlist
Pepa Rohlik0
Newbie
16. 10. 2006   #5
-
0
-

Thx to je presne to co jsem potreboval. Moc jsi mi pomohl :mno:

Nahlásit jako SPAM
IP: ...–
Gentoo 4ever...
Pepa Rohlik0
Newbie
18. 10. 2006   #6
-
0
-



<?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 ??

Nahlásit jako SPAM
IP: ...–
Gentoo 4ever...
Jakub0
Super člen
18. 10. 2006   #7
-
0
-

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);
?

Nahlásit jako SPAM
IP: ...–
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 TOPlist
Pepa Rohlik0
Newbie
19. 10. 2006   #8
-
0
-

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.

Nahlásit jako SPAM
IP: ...–
Gentoo 4ever...
Jakub0
Super člen
19. 10. 2006   #9
-
0
-

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ěží :) .

Nahlásit jako SPAM
IP: ...–
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 TOPlist
Jan Škrášek
~ Redaktor
+1
Boss
20. 10. 2006   #10
-
0
-

já myslím, že nejjednoduší by bylo použít databázi :))

Nahlásit jako SPAM
IP: ...–
http://jan.skrasek.com@hrachcz – webdeveloper
Zjistit počet nových příspěvků

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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 47 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý