Een directory aflopen .??

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Berta Pappens

Berta Pappens

29/01/2023 15:52:11
Quote Anchor link
Hallo,

Kan iemand mij zeggen hoe ik het volgende kan doen in php.

1. Ik heb een directory waarin vele text files staan.

2. Ik wil deze directory aflopen en telkens de naam van de text file doorgeven aan een variable.

Momenteel doe ik dit nu stuk voor stuk via html
<input type="file" id="avatar" name="zoekterm" accept=".txt"><br><br>

Ik zou het dus willen automatiseren .

Dank bij voorbaat.
 
PHP hulp

PHP hulp

19/04/2024 22:34:17
 
Adoptive Solution

Adoptive Solution

29/01/2023 16:00:20
 
Berta Pappens

Berta Pappens

29/01/2023 17:01:58
Quote Anchor link
Hallo,

Bedankt voor deze reactie maar blijkbaar wordt dit niet stuk voor stuk opgeslagen in een variable.

Ik zal eens verder zoeken.
 
- Ariën  -
Beheerder

- Ariën -

29/01/2023 17:12:42
Quote Anchor link
Wat doet $file dan?
 
Ivo P

Ivo P

29/01/2023 23:01:03
Quote Anchor link
gaat het om een map op de server of op de pc van de bezoeker?
 
Ad Fundum

Ad Fundum

30/01/2023 09:08:05
Quote Anchor link
Om te beginnen moet je begrijpen dat er een grote muur zit tussen PHP wat op de servercomputer draait, en de browser die op de client computer draait. Die muur is er niet voor niets, het zorgt voor veiligheid van beide partijen. Er wordt geen uitzondering gemaakt wanneer zowel PHP als de browser op dezelfde computer draaien.

Bestanden op de servercomputer langslopen is heel eenvoudig, daarvoor gebruik je scandir().

Bestanden op de client langslopen kan op de volgende manieren:

1.) Je stuurt eerst alle bestanden naar PHP, waarna je ze afloopt. Dat doe je met een HTML-attribuut multiple op een enkele input tag in een HTML form dat de gegevens opstuurt via HTTP POST (<form method="post" ..>), vervolgens krijg je meerdere bestanden in het globale $_FILES array in PHP, dat je kunt gebruiken.

2.) Als 1, maar je loopt de bestanden meteen na het selecteren na via JavaScript. Je kunt die (eventueel alvast gefilterde) lijst vervolgens op de achtergrond (dus zonder het hele formulier te versturen) versturen via een XmlHttpRequest of Fetch., en de invoer daarvan verwerken in PHP.

3.) Misschien is het niet nodig om de verwerking in PHP te doen, en is JavaScript genoeg. Je kunt in veel browsers (helaas nog niet in Firefox) echt een directory kiezen, en de bestanden langslopen via JavaScript. Eventueel kan je dan altijd nog informatie toesturen naar PHP via XmlHttpRequest of Fetch.
 
Berta Pappens

Berta Pappens

30/01/2023 10:48:30
Quote Anchor link
Hallo,

Iedereen hartelijk bedankt met deze tips, het is mij dan ook gelukt om de bestanden stuk voor stuk uit te lezen en ze te importeren in mijn mysql database.

Ik stuit juist op het volgende probleem :
Aangezien er een key staat op de code kan er maar 1 van dezelfde code ingegeven worden.
Maar komt er een file aan met dezelfde code dan krijg ik een error en stopt het met verder doen.
Terwijl ik deze error opvang met :

if (mysqli_query($con,$sql))
{
echo "<span style=\"color: #D2691E;\"> De Code : " ."</span>" ."<span style=\"color: white;\">" .$code ." Is geimporteerd" ."</span>";
echo "<br />";
}

if(mysqli_errno($con) == 1062)
{


echo "<span style=\"color: Green;\"> De Code : " ."</span>" ."<span style=\"color: red;\">" .$deel ."<span style=\"color: Green;\"> bestaat reeds" ."</span>";
//echo "Error: " . $sql . "<br>" . $con->error;

}

Tot hier komt het progje niet want geeft direkt
Fatal error: Uncaught mysqli_sql_exception: Duplicate entry

wat is de juiste oplossing om deze error op te vangen en verder de directory af te lopen.

Dank bij voorbaat
 
- Ariën  -
Beheerder

- Ariën -

30/01/2023 11:02:29
Quote Anchor link
Dit heeft niet direct wat met een directory te maken.

Maar heb je de error al opgezocht?
 
Adoptive Solution

Adoptive Solution

30/01/2023 12:40:03
Quote Anchor link
Code 1062 is een MySQL foutmelding dat een unieke waarde bestaat.

Die moet je of afvangen of eerst kijken of die unieke waarde bestaat.

Dit is een Stored Procedure waarmee je dat kunt testen. Wel de veldnaam en tabel aanpassen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DELIMITER ;;

DROP PROCEDURE IF EXISTS `spBestaatAccount`;;
CREATE PROCEDURE `spBestaatAccount`(IN `accountnum` char(15))
BEGIN
SET @x = (SELECT 1 FROM users WHERE account = accountnum);
#SELECT @x ;
SELECT COALESCE(@x, 0) AS bestaat;
END;;

DELIMITER ;

CALL spBestaatAccount('DE UNIEKE WAARDE DIE JE WILT CONTROLEREN');

# retourwaarde is een 1 of een 0. bestaat wel of niet
 
Berta Pappens

Berta Pappens

30/01/2023 14:36:45
Quote Anchor link
Hallo,

Iedereen hartelijk bedankt voor de vele tips, ondertussen is alles in orde.
Ik lees een directory uit file per file en input deze gegevens in mijn DB.
Hierdoor is mijn manuele overgeschakeld naar automatisch.

Nogmaals bedankt iedereen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.