Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak usunąć konkretny ciąg znaków w danym pliku!?
xrayPL
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 19.07.2010

Ostrzeżenie: (0%)
-----


Witam!

w pliku bazy danych; np. bazadanych.php
umieszczam coś takiego


<?
$tablica[login] = hasło
?>

gdzie login i hasło pobrane są z formularza. Kiedy user będzię chciał usunąć swoje "konto" czyli swój kawałek tablicy (jeden login i przyporządkowane mu hasło) skrypt powinien mu to umożliwić.
User bedzie musiał podać login haslo i je powtórzyć w formularzu i z tym i całą walidacją danych sobie poradziłem.
Ale teraz mam pytanie jak wyszukać wiersz (nieważne czy ciąg znaków czy rozpoznając dablice) z tego pliku?
można linijkę "$tablica[login] = hasło" potraktowac jako zwykły tekst wyszukać go i zastąpić np spacją albo w ogóle ten wiersz usunąć. Nie gra roli.
Mógłby ktoś powiedzieć czy i jak to jest możliwe, bo szukam po googlach i forum i znajduje coś bliskiego, ale nie dokonca to o co mi chodzi!

I DRUGIE PYTANIE
mam tablice $tablica[nazwa] = wartość, jak wyświetlić (odczytać) same nazwy bez pokazywania i ujawniania wartości...

Z góry dzięki!
Pozdrawiam!

Ten post edytował xrayPL 5.08.2010, 18:41:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. $file = file('text.txt');
  4.  
  5. $users = array();
  6.  
  7. for ($i=0; $i < count($file); $i++) {
  8. $temp = explode('=', $file[$i]);
  9. $users[trim($temp[0])] = trim($temp[1]);
  10. }
  11.  
  12. $user = 'hjk';
  13. $pass = 6;
  14.  
  15. echo '<pre>';
  16. print_r($users);
  17. echo '</pre>';
  18.  
  19. foreach ($users as $key => $val) {
  20. if ($key == $user && $val == $pass) {
  21. unset($users[$key]);
  22. }
  23. }
  24.  
  25. echo '<pre>';
  26. print_r($users);
  27.  
  28. ?>


Plik text.txt
Kod
qwe = 1
rty = 2
uio = 3
pas = 4
dfg = 5
hjk = 6
lzx = 7
cvb = 8


Z zapisem sobie raczej poradzisz...

Źle przeczytałem, a to że w pliku .php ma raczej znaczenie ;p

[PHP] dane.php - pobierz, plaintext
  1. <?php
  2.  
  3. $tablica['qwe'] = 1;
  4. $tablica['rty'] = 2;
  5. $tablica['uio'] = 3;
  6. $tablica['pas'] = 4;
  7. $tablica['dfg'] = 5;
  8. $tablica['hjk'] = 6;
  9. $tablica['lzx'] = 7;
  10. $tablica['cvb'] = 8;
  11.  
  12. ?>
[PHP] dane.php - pobierz, plaintext


A teraz czytanie i usuwanie:
  1. <?php
  2.  
  3. $file = file_get_contents('dane.php');
  4.  
  5. preg_match_all('#\$[a-z]+\[\'([a-z]+)\'\] = (.*?);#', $file, $matches);
  6.  
  7. $users = array();
  8. for ($i=0; $i < count($matches[0]); $i++) {
  9. $users[$matches[1][$i]] = $matches[2][$i];
  10. }
  11.  
  12.  
  13. $user = 'hjk';
  14. $pass = 6;
  15.  
  16. echo '<pre>';
  17. print_r($users);
  18. echo '</pre>';
  19.  
  20. foreach ($users as $key => $val) {
  21. if ($key == $user && $val == $pass) {
  22. unset($users[$key]);
  23. }
  24. }
  25.  
  26. echo '<pre>';
  27. print_r($users);
  28.  
  29. ?>


Ten post edytował fifi209 5.08.2010, 22:18:54
Go to the top of the page
+Quote Post
xrayPL
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 19.07.2010

Ostrzeżenie: (0%)
-----


Cytat(fifi209 @ 5.08.2010, 23:25:15 ) *
  1. <?php
  2.  
  3. $file = file('text.txt');
  4.  
  5. $users = array();
  6.  
  7. for ($i=0; $i < count($file); $i++) {
  8. $temp = explode('=', $file[$i]);
  9. $users[trim($temp[0])] = trim($temp[1]);
  10. }
  11.  
  12. $user = 'hjk';
  13. $pass = 6;
  14.  
  15. echo '<pre>';
  16. print_r($users);
  17. echo '</pre>';
  18.  
  19. foreach ($users as $key => $val) {
  20. if ($key == $user && $val == $pass) {
  21. unset($users[$key]);
  22. }
  23. }
  24.  
  25. echo '<pre>';
  26. print_r($users);
  27.  
  28. ?>


Plik text.txt
Kod
qwe = 1
rty = 2
uio = 3
pas = 4
dfg = 5
hjk = 6
lzx = 7
cvb = 8


Z zapisem sobie raczej poradzisz...

Źle przeczytałem, a to że w pliku .php ma raczej znaczenie ;p

[PHP] dane.php - pobierz, plaintext
  1. <?php
  2.  
  3. $tablica['qwe'] = 1;
  4. $tablica['rty'] = 2;
  5. $tablica['uio'] = 3;
  6. $tablica['pas'] = 4;
  7. $tablica['dfg'] = 5;
  8. $tablica['hjk'] = 6;
  9. $tablica['lzx'] = 7;
  10. $tablica['cvb'] = 8;
  11.  
  12. ?>
[PHP] dane.php - pobierz, plaintext


A teraz czytanie i usuwanie:
  1. <?php
  2.  
  3. $file = file_get_contents('dane.php');
  4.  
  5. preg_match_all('#\$[a-z]+\[\'([a-z]+)\'\] = (.*?);#', $file, $matches);
  6.  
  7. $users = array();
  8. for ($i=0; $i < count($matches[0]); $i++) {
  9. $users[$matches[1][$i]] = $matches[2][$i];
  10. }
  11.  
  12.  
  13. $user = 'hjk';
  14. $pass = 6;
  15.  
  16. echo '<pre>';
  17. print_r($users);
  18. echo '</pre>';
  19.  
  20. foreach ($users as $key => $val) {
  21. if ($key == $user && $val == $pass) {
  22. unset($users[$key]);
  23. }
  24. }
  25.  
  26. echo '<pre>';
  27. print_r($users);
  28.  
  29. ?>


czyli teraz zapisać tylko users i tyle? i rozumiem ze skrypt ten usuwa podany $user i $pass??
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 05:27