Arrays duplicates verwijderen case sensitive

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lead C++ Developer

De rol van Lead C++ Developer Als Lead C++ developer bij KUBUS word je verantwoordelijk voor het implementatie design van requirements en de software architectuur van de desktop applicaties van BIMcollab, ons platform voor 3D model-validatie en issue-management bedoeld om de kwaliteit van 3D design-modellen voor gebouwen te verbeteren. Betere 3D modellen leiden tot betere gebouwen, dus zo draag je bij aan verduurzaming van de gebouwde omgeving met slimmer gebruik van materialen, minder verspilling en energie-efficiënte gebouwen. Een goede gebruikerservaring staat bij ons hoog in het vaandel; we gaan in onze ontwikkeling voor innovatie en kwaliteit. In je rol als

Bekijk vacature »

Full Stack Software Developer C#.NET

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Testen en valideren van de ontwikkelde software. Actief deelnemen aan code reviews en bijdragen aan het verbeteren van de kwaliteit van de software. Je gaat aan

Bekijk vacature »

Python (Django) developer - Remote in The Netherla

Functie Together with your team, consisting of a senior, 2 mediors and one junior developer, you will work on their software in an Agile-based approach. You have an eye for quality, risk, and customer interest. Communication with your colleagues and, where necessary, with customers, plays an important role in achieving a successful result. As a person, you are smart, get things done, and are result-oriented. There is a lot of independence within the development team, apart from the stand-up (10:00 am) and occasional pair-programming sessions. Techniques they use include Python, Django, MySQL, Mercurial, Ubuntu Linux, Nginx. In terms of front-end

Bekijk vacature »

.NET developer

Functie The position we have for you As a .NET developer you will work for one of our customers active in the High Tech Industry. Our customers are mainly located in the Eindhoven area. We are very selective when it comes to the projects we accept and therefore only focus on innovative and complex projects. Because our customers are mainly specialized in machine construction, you often work close to the machines. Our team currently consists of Embedded engineers, IOT developers and Cloud engineers. We mainly work on Microsoft projects where WPF, UWP, .NET Core and Microsoft Azure are used. Eisen

Bekijk vacature »

Back-end developer

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een gemotiveerde SQL Developer/ functioneel consultant. Jij wordt verantwoordelijk voor zowel het ontwerpen en implementeren van SQL-databases als voor het in kaart brengen van de bedrijfsprocessen van een organisatie en het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt als volgt uit te zien: Ontwerp en implementatie van SQL-databases: Je ontwerpt, ontwikkelt en implementeert SQL-databases om de data behoeften van de organisatie te ondersteunen; Analyse van bedrijfsprocessen: Je analyseert de bedrijfsprocessen van de organisatie om de behoeften van de klant te begrijpen en te vertalen naar

Bekijk vacature »

(Lead) PHP Software Developer

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een PHP software developer met een aantal jaar werkervaring. Je krijgt een plek in een klein team met 2 andere software developers. Wil jij graag werken met de nieuwste technieken bij een bedrijf waar jij de lead gaat nemen in de verder ontwikkeling en modernisering van een eigen software pakket? Dan ben je hier aan het juiste adres! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "in-house" ontwikkelde multimedia platform. Je neemt de lead in

Bekijk vacature »

Productontwikkelaar Food

Wat ga je doen Als Productontwikkelaar Food ga je nieuwe producten ontwikkelen en bestaande producten verbeteren. Je bent hierbij betrokken bij het gehele proces: van productconcept naar proefreceptuur, het realiseren va het product (op kleine schaal) en het testen van producten in een productieomgeving. Verder: Bewaak je de status van verschillende fases van productontwikkeling en lever je tijdig de benodigde data aan Ben je bezig met de optimalisatie van oude en nieuwe recepturen Begeleid of organiseer je proefsessies (sensorisch onderzoek) in het team en/of bij klanten Onderhoud je contacten met de klanten, leveranciers van grondstoffen e.a. externe partijen Houd je

Bekijk vacature »

Senior PHP Developer

As a Senior PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible and you choach other colleagues on the hard and soft skills. How do I become a Senior PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little TypeScript or other technologies that might be used. Would you also like to become a PHP Developer at Coolblue? Read below if the

Bekijk vacature »

Java Developer

Java Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

Back end developer PHP, Laravel

Functie Jij komt te werken in ons webdevelopment team, wat bestaat uit 8 ervaren collega’s. Hiernaast hebben wij nog een team van 2 ontwikkelaars die aan native applicaties werken. Bij ons zijn er korte lijntjes en er hangt een gezellige informele werksfeer. Maar het belangrijkste is natuurlijk dat je aan geweldige applicaties zult gaan werken! Wij willen als organisatie niet te groot worden, we willen gewoon toffe dingen maken. Onze techstack bestaat momenteel uit: PHP, Laravel, Javascript, Typescript, Git, MySQL, Java, Kotlin, Xamarin. Samen met ons ga jij zorgen dat we puik werk leveren! Waarbij je bij elke fase in

Bekijk vacature »

Applicatieontwikkelaar Java EE

Bedrijfsomschrijving De IV- organisatie van de Belastingdienst is verantwoordelijk voor en verzorgt de ICT- voorzieningen. Het merendeel van de applicaties wordt op dit moment door de IV- organisatie zelf ontwikkeld, onderhouden en beheerd in het eigen data center. Naast de zorg voor continuïteit op de massale heffing- en inningsprocessen die plaatsvinden binnen een degelijke, stabiele omgeving, wordt er tevens volop gewerkt aan modernisering van het IV- landschap. Dit gebeurt deels intern door gebruik te maken van de expertise die intern aanwezig is, maar ook door het aantrekken van (kant-en-klaar) oplossingen en expertise uit de markt. Functieomschrijving De afdeling IV –

Bekijk vacature »

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

Gezocht: .Net ontwikkelaars met een maatschappelij

Bedrijfsomschrijving Zoek jij als medior .Net ontwikkelaar een inspirerende werkplek bij een bedrijf met maatschappelijk verantwoordelijkheidsgevoel? Dan is deze vacature je op het lijf geschreven. De organisatie bestaat ruim 20 jaar en ze ontwikkelen in house applicaties waarmee de zorgsector enorm mee gebaat is. Jouw applicaties worden gebruikt door duizenden gebruikers waardoor je echt een waardevolle bijdrage kan leveren aan de maatschappij. Het bedrijf is zeer innovatief en vindt een goede werk/privé balans belangrijk. Je krijgt alle mogelijkheden om jezelf verder te ontwikkelen, je werktijden in te delen en daarnaast is het ook mogelijk om deels thuis te werken. Het

Bekijk vacature »

Low Code Ontwikkelaar

In het kort Als Low Code Developer werk je aan projecten bij en voor onze klanten, waarbij je voor het ontwikkelen van de oplossingen een technisch low-code platform gebruikt. Samen met het team streef je naar de beste oplossing en bepalen jullie de juiste aanpak. Je rol is divers en je bent van begin tot eind betrokken bij de ontwikkeling zowel de back-end en de front-end van de applicatie. Naast de ontwikkeling en oplevering, breng je ook advies uit aan de klant waarom bepaalde keuzes worden gemaakt. Je bent dan ook communicatief sterk en kunt je keuzes goed (inhoudelijk) onderbouwen.

Bekijk vacature »

Java Developer

Functie Wat ga je doen als Java developer? Jij komt terecht binnen een informeel team waarin je verantwoordelijk bent voor de backend systemen voor grote klanten als Ziggo en KPN. Als Medior Java developer werk je in teamverband en soms individueel. Gedurende de werkweek zal je veelvuldig sparren met je collega’s voor een goede implementatie van de software. Ben jij een echte Java developer? Ben je geïnteresseerd in de nieuwste technieken en de laatste ontwikkelingen? Dan ben je hier aan het juiste adres! Eisen Wat wordt er van jou verwacht? • Minimaal HBO/WO denk- en werkniveau; • Analytisch sterk, open

Bekijk vacature »
Hans De Ridder

Hans De Ridder

25/09/2017 23:29:49
Quote Anchor link
Idee:
Ik geef mijn leden de mogelijkheid om een persoonlijke youtube top 20 samen te stellen.
Daarvoor moet ik uit de samengestelde lijsten eerst de duplicate items te verwijderen.
Het lukt wel, maar als de lege plekken verwijderen, dan wordt niet meer gekeken naar de case sensitive.
Dat komt door het toepassen van array_splice.
Iemand een mogelijkheid om een bruikbare array te produceren, die ik weer verder kan gebruiken?
Dit was een testje:
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
$arr0 =  array("TIjE6RIAv2s","Q4xyiJkX4vw","_5BzyInFf5M","q4xyiJkX4vw","91EbIgyFA1Y");
$arr1 =  array("tIjE6RIAv2s","Q4xyiJkX4vw","_5BzyInFf5M","vdufteeVZyo","CqkpWByCzL4");
$arr2 =  array("Bn1rdYzv4qM","Q4xyiJkX4vw","_5BzyInFf5M","vdufteeVZyo","-dY3s415TP0");
$arr3 =  array("Bn1rdYzv4qM","tIjE6RIAv2s","Q4xyiJkX4vw","vdufteeVZyo","s9bXNR9hdIk");

$arr= array_unique(array_merge($arr0,$arr1,$arr2, $arr3));

if ($arr[$i] =='')
{
array_splice($arr, $i, 1);
}

//$arr_length = count($arr);
$arr_length = 20;

for($i=0;$i<$arr_length;$i++)
{
echo $arr[$i].'<br>';
}    

Zonder splice (11 stuks):

TIjE6RIAv2s
Q4xyiJkX4vw
_5BzyInFf5M
q4xyiJkX4vw
91EbIgyFA1Y
tIjE6RIAv2s


vdufteeVZyo
CqkpWByCzL4
Bn1rdYzv4qM



-dY3s415TP0




s9bXNR9hdIk

Met splice (10 stuks):

Q4xyiJkX4vw
_5BzyInFf5M
q4xyiJkX4vw
91EbIgyFA1Y
tIjE6RIAv2s
vdufteeVZyo
CqkpWByCzL4
Bn1rdYzv4qM
-dY3s415TP0
s9bXNR9hdIk
Gewijzigd op 25/09/2017 23:31:12 door Hans De Ridder
 
PHP hulp

PHP hulp

26/11/2024 19:21:19
 
Ben van Velzen

Ben van Velzen

26/09/2017 00:20:10
Quote Anchor link
Waarom gebruik je niet gewoon unset ipv array_splice om lege plekken uit de array te verwijderen?
 
Hans De Ridder

Hans De Ridder

26/09/2017 00:32:02
Quote Anchor link
Bedankt voor de snelle response Ben.
Ik heb unset geprobeerd, maar had dezelfde uitwerking als de lijst met de gaten.
Tenzij ik wat verkeerd heb gedaan natuurlijk.
 
- SanThe -

- SanThe -

26/09/2017 00:41:07
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$arr0
=  array("TIjE6RIAv2s","Q4xyiJkX4vw","_5BzyInFf5M","q4xyiJkX4vw","91EbIgyFA1Y");
$arr1 =  array("tIjE6RIAv2s","Q4xyiJkX4vw","_5BzyInFf5M","vdufteeVZyo","CqkpWByCzL4");
$arr2 =  array("Bn1rdYzv4qM","Q4xyiJkX4vw","_5BzyInFf5M","vdufteeVZyo","-dY3s415TP0");
$arr3 =  array("Bn1rdYzv4qM","tIjE6RIAv2s","Q4xyiJkX4vw","vdufteeVZyo","s9bXNR9hdIk");

$arr= array_unique(array_merge($arr0,$arr1,$arr2, $arr3));

foreach($arr as $k=>$v)
{

echo $k.' - '.$v.'<br>';
}

?>

0 - TIjE6RIAv2s
1 - Q4xyiJkX4vw
2 - _5BzyInFf5M
3 - q4xyiJkX4vw
4 - 91EbIgyFA1Y
5 - tIjE6RIAv2s
8 - vdufteeVZyo
9 - CqkpWByCzL4
10 - Bn1rdYzv4qM
14 - -dY3s415TP0
19 - s9bXNR9hdIk
Gewijzigd op 26/09/2017 00:41:40 door - SanThe -
 
Ben van Velzen

Ben van Velzen

26/09/2017 00:44:52
Quote Anchor link
Het enige probleem dat je krijgt is dat je keys niet meer corresponderen met de lengte. Kortgezegd kun je op deze manier niet langer met for door de array gaan. Dan zul je foreach moeten gebruiken.
Je kunt eventueel rond regel 12 dit toevoegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$arr
= array_values($arr);
?>


Ook zou ik gewoon array_filter() gebruiken om je lege elementen uit je array te verwijderen.
Gewijzigd op 26/09/2017 00:47:53 door Ben van Velzen
 
Willem vp

Willem vp

26/09/2017 00:53:16
Quote Anchor link
Het probleem is niet dat array_splice de case vermangelt, maar dat je eerste element wordt genegeerd.

Wat ik zo machtig interessant vind, is regel 8 van je script. Je test daar $arr[$i], maar waar komt $i vandaan? Waarschijnlijk moet er nog een for-loopje omheen...
Gewijzigd op 26/09/2017 00:55:59 door Willem vp
 
Hans De Ridder

Hans De Ridder

26/09/2017 01:05:30
Quote Anchor link
Willem, je hebt gelijk...
Ik had het geplakt, maar verkeerd neergezet.
Het stond in de for loop.
 
Willem vp

Willem vp

26/09/2017 01:46:41
Quote Anchor link
Zelfs met een for-loop mis je een element, alleen dan een andere: vdufteeVZyo. Niet geheel toevallig het eerste element na het eerste gat.

Dat komt door de manier waarop array_splice werkt. Numerieke indices worden niet behouden. Sterker nog: wanneer je array_splice aanroept, hernummert hij de indices en dán pas gaat hij splicen. Dat verklaart dus waarom je een element kwijtraakt.

Maar nu we dit hebben ontdekt, kunnen we ook ge/misbruik maken van die eigenschap: als je array_splice aanroept en aangeeft dat je *niets* wilt verwijderen, krijg je een keurig nette array terug.
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
print_r($arr);
array_splice($arr, 0, 0);
print_r($arr);

Voor:
Array
(
    [0] => TIjE6RIAv2s
    [1] => Q4xyiJkX4vw
    [2] => _5BzyInFf5M
    [3] => q4xyiJkX4vw
    [4] => 91EbIgyFA1Y
    [5] => tIjE6RIAv2s
    [8] => vdufteeVZyo
    [9] => CqkpWByCzL4
    [10] => Bn1rdYzv4qM
    [14] => -dY3s415TP0
    [19] => s9bXNR9hdIk
)

Na:
Array
(
    [0] => TIjE6RIAv2s
    [1] => Q4xyiJkX4vw
    [2] => _5BzyInFf5M
    [3] => q4xyiJkX4vw
    [4] => 91EbIgyFA1Y
    [5] => tIjE6RIAv2s
    [6] => vdufteeVZyo
    [7] => CqkpWByCzL4
    [8] => Bn1rdYzv4qM
    [9] => -dY3s415TP0
    [10] => s9bXNR9hdIk
)
 
Hans De Ridder

Hans De Ridder

26/09/2017 14:24:21
Quote Anchor link
Bedankt voor de reacties en oplossingen.
Ik werk met data opslag via IPTC (opslag in image)
Het is een experimentele website.
Met nadruk op promotie voor personen die iets met de artiestenwereld te maken hebben.

Ik heb voor dit probleem de oplossing gevonden in een groeiende string.
Hierbij wordt de groeistring bekeken op nieuwe in toe te voegen items van een string.
Uitsluitend nieuwe items worden toegevoegd aan de groeistring.
In de images staan de youtubes als volgt opgeslagen op locatie 2#115.
Opmerkingen en verbeteringen blijven uiteraard welkom...


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
16
17
18
19
20
21
22
23
24
25
26
27
TIjE6RIAv2s,Q4xyiJkX4vw,_5BzyInFf5M,q4xyiJkX4vw,91EbIgyFA1Y

tIjE6RIAv2s,Q4xyiJkX4vw,_5BzyInFf5M,vdufteeVZyo,CqkpWByCzL4

Bn1rdYzv4qM,Q4xyiJkX4vw,_5BzyInFf5M,vdufteeVZyo,-dY3s415TP0

Bn1rdYzv4qM,tIjE6RIAv2s,Q4xyiJkX4vw,vdufteeVZyo,s9bXNR9hdIk


$files = glob(realpath($_SERVER[ 'DOCUMENT_ROOT' ]) . "fotomap/*.{jpg}", GLOB_BRACE);

$dataT ='';

foreach($files as $file)
{
$r = output_iptc_data($file,'2#115');
if ($r !="")
{
$dataT = $dataT.','.$r;
$str = implode(',',array_unique(explode(',', $dataT)));
}
}

// verwijderen eerste komma
$str = substr($str, 1);

echo $str;
 
Thomas van den Heuvel

Thomas van den Heuvel

26/09/2017 16:55:04
Quote Anchor link
Ayyy.

Waarom splits je dit probleem niet op in deelproblemen?

Probleem #1: het (eenmalig) bijhouden van (unieke) video-id's.

Probleem #2: afspeellijsten van deze items in een specifieke volgorde (mogelijk gekoppeld aan personen).

En waarom ben je aan het modderen met arrays? Waarom sla je dit niet op in een database? Dan was je vrij snel tot een constructie gekomen waarbij je video's, gebruikers en afspeellijsten organiseert in (koppel)tabellen.

Het opslaan van data in afbeeldingen is een beetje vergezocht? Als je gestructureerd data wilt opslaan en je niet de beschikking hebt over een database lijken mij JSON of XML veel betere alternatieven? Maar niet een of andere zelf gebreide standaard :/.
 
Hans De Ridder

Hans De Ridder

26/09/2017 23:31:17
Quote Anchor link
Het is een experimentele site.
Dus zoek ook niet altijd vanzelfsprekende oplossingen.
Ik heb de beschikking over een database. (Gedeelde server).
Maar heb wat geexperimenteerd met opslag van gegevens in images.
Dat voldoet prima.
Makkelijk op te slaan en elke output is eenvoudig op te roepen.
Met een paar regels PHP heb ik het nu zo,
dat de positie op de individuele lijst bepalend is voor het aantal toegekende punten.
Die worden dan bij elkaar opgeteld.
En dat bepaalt weer uiteindelijk hoe de site stemlijst eruit ziet.
Er zijn al heel wat blokken gemaakt.
Website onderdelen, registratie/inlog,/wijzigingen, googlemaps,
Maar soms wel leuk om als afleiding even een optie te proberen.
Er zit geen druk op.
Gewoon hobby. Over poosje wellicht online.

De verschillende blokken van de website zijn zo goed als klaar.
Maar soms als afleiding is het wel leuk wat mogelijke opties te bestuderen.
En vast stuk uit te werken.
Er zit geen druk op.
Is gewoon voor mezelf.
En als ik het zinnig vind dan komt het online.
Vandaar dat ik ook als thema heb 'promotie artiestenwereld'.
Dat doel geeft genoeg creativiteit.

Ik creeer geen nieuwe standaard.
IPTC is gewoon opgenomen in PHP.
Maar vooral bedoeld om fotogegevens op te slaan.
Ik gebruik het wat anders.
Gewijzigd op 26/09/2017 23:35:57 door Hans De Ridder
 
Thomas van den Heuvel

Thomas van den Heuvel

27/09/2017 16:56:42
Quote Anchor link
Experimenteren en verkennen is goed, maar enig reflecteren op zijn tijd kan ook geen kwaad.

Er zullen momenten zijn (of komen) waarin je heroverweegt hoe je deze data gaat gebruiken.

Met de gekozen oplossing ben je nu al meteen je eigen informatie aan het repareren (wegfilteren van duplicaten), nog voordat je hier wat dan ook mee doet. Dit lijkt mij een indicatie dat dit anders en mogelijk beter kan. De data is niet direct "gebruiksklaar".

Nu zijn dit mogelijk nog persoonlijke top 20 afspeellijsten, maar misschien wil je op den duur wat statistieken introduceren (X gebruikers hebben video Y in hun afspeellijst staan), lijsten kunnen delen et cetera. Met de huidige opzet is dit een hels karwei, eerst moet je *alle* data uitpakken (en opschonen) voordat je uberhaupt kunt gaan meten en rekenen. Met de data valt niet (of in ieder geval niet makkelijk) te werken.

Andere programmeurs die je deze oplossing laat zien zullen waarschijnlijk hun wenkbrauwen fronsen, of het gemiddeld aantal wtf's per minuut doen laten stijgen. Bovenstaande code is ook niet voorzien van commentaarregels (geen annotatie). Meestal staat er in een verhaaltje kort uitgelegd wat alles doet en motiveert zijdelings ook WAAROM het op die manier gedaan is. Je zult dit op zijn minst naar jezelf toe moeten motiveren maar op dit moment is de code vanwege het ontbreken van commentaar niet erg leesbaar. Als iemand anders jouw werk om wat voor reden dan ook zou moeten inzien of zal moeten gebruiken heeft deze een dagtaak aan het reverse engineeren van wat er nu concreet gebeurt. Omgekeerd zou jij mogelijk ook ooit met code van anderen aan de slag moeten. Als er geen letter geannoteerd is is daar eigenlijk geen beginnen aan. Wat gij niet wilt dat u geschiedt... De code is niet transparant.

Even los van het feit dat IPTC bedoeld is voor het opslaan van metadata van afbeeldingen heeft deze waarschijnlijk limieten qua opslagruimte en/of de lengte van individuele velden. En mogelijk zul je ook character encoderingen in overweging moeten nemen. Deze dingen spelen nu mogelijk niet, maar wat als je iedereen een persoonlijke top 50 geeft en het dan niet past? Of dat je mogelijk exotische karakters gaat opslaan die vervolgens door de vleesmolen gaan. Mogelijk kom je dus in de knoei als je deze oplossing uitbouwt.

Bottom line is dat wat je gebruikt naar alle waarschijnlijkheid geen geschikt medium is voor wat je probeert te doen. Het is mede de verantwoordelijkheid van gebruikers van deze site ("vakgenoten") om je hier op te wijzen. Wat je hier vervolgens mee doet mag je zelf weten :).
 
Hans De Ridder

Hans De Ridder

27/09/2017 21:46:57
Quote Anchor link
Bedankt voor je reacties.

Het zijn niet mijn lijsten, maar van leden.
Die kunnen ook afgespeeld worden op de website.
De website top 20 wordt samengesteld uit deze lijsten.
Voor mij is het straks van belang bij hoeveel leden
ik beter weer kan overgaan naar de database.
Dat is in principe niet zo'n probleem.
De opdrachten zijn niet zo verschillend tov database.
Een image is 1 x 1 pixel in jpg. Ongeveer 400b.
Met alle persoonlijke info wordt het ongeveer 1,5kb.

Elk lid heeft een eigen image.
Daar staat alle persoonlijke data opgeslagen.

Alle documenten in pdf worden images van gemaakt.
Meeste is tijdelijk.
Daarom worden die gegevens voor de layout in de image geplaatst.
Wordt de image verwijderd, dan is de data ook weg.
Mag/moet ook.
Youtube kent een eigen mogelijkheid om images te plaatsen.
Originelen worden pas bekeken/beluisterd als er geklikt wordt.

De images zelf hebben 31 posities om data te plaatsen.
Dat mag ook komma gescheiden zijn.
Ik ben nog geen problemen tegen gekomen bij data tot 2000 characters per regel.

Is voor mij helemaal nieuw.
En er is naast de eenvoudige oproep- en plaatsen script weinig gedocumenteerd bij PHP.
Er zijn wel classes gemaakt.

Het heeft zeker ook nadelen.
Bij een wijziging moet alle data van een image worden gevraagd.
De wijziging(en) doorvoeren, en alles weer terugplaatsen.
Het vraagt ook oplettendheid mbt veiligheid.
Maar ik vind het leuk om die grenzen allemaal op te zoeken.
Ook benieuwd hoe dit doorwerkt op verwerkings snelheden.
En op het dataverkeer.
Gewijzigd op 27/09/2017 22:55:17 door Hans De Ridder
 
Willem vp

Willem vp

27/09/2017 23:50:21
Quote Anchor link
> Ook benieuwd hoe dit doorwerkt op verwerkings snelheden.
> En op het dataverkeer.

Als de gegevens op de server worden verwerkt, zal het dataverkeer niet hoger of lager zijn dan wanneer je de gegevens in een database hebt.

De verwerkingssnelheid zal allicht lager zijn dan bij een database, maar wanneer het om een beperkt aantal bestanden gaat, zul je dat niet echt merken. Vanaf een paar honderd bestanden (zo te zien staat alles in 1 directory) worden de toegangstijden wel steeds langer en ik verwacht dat je vanaf een paar duizend bestanden serieus rekening moet gaan houden met timeouts. Afhankelijk van je hardware misschien al eerder.

Een ander punt om in het achterhoofd te houden is concurrency. Wanneer een plaatje wordt herschreven, is het even niet beschikbaar. Als precies op dat moment een andere worker het plaatje wil inlezen, kan het misgaan. Onder meer om die reden slaan we op mijn werk bepaalde plaatjes op in een database. Dat zou in jouw geval ook nog een oplossing kunnen zijn: dan heb je én de voordelen van een database én je gegevens in IPTC. ;-)
 
Hans De Ridder

Hans De Ridder

28/09/2017 01:25:19
Quote Anchor link
Dank voor je opmerkingen.
Het grootste deel van het herschrijven zijn wijzigingen in de persoonlijke gegevens.
Dus dat is prive. En niet beschikbaar voor andere leden.
Dat geldt in principe ook voor flyers (jpg) en documenten (pdf).
In principe laat ik van elke soort document er telkens maar 1 toe.
Die kan dan onder dezelfde naam vervangen worden of aangevuld.
Daar kan inderdaad het probleem optreden van wijzigen en bekijken tegelijk.
Maar uitsluitend de eigenaar van de image/document kan wijzigingen aanbrengen.
Zijn documenten als aangeboden, gevraagd, gestolen.
Zal in principe niet veel meer aan gewijzigd worden.
Wel goed om me er op te attenderen.
Dat zijn bovendien documenten en flyers,, die een beperkte levensduur hebben (2 weken?)
Ik maak me meer zorgen over het opslaan van de originele documenten.
Dat gaat wellicht bij meer leden een opslagprobleem geven.
Ik zoek naar opslag op een cloud, waar vanaf de website, of rechstreeks via
de leden, bestanden op gezet kunnen worden.
Ben nog niks zinnigs tegen gekomen. Ook niet met API.
Maar het is allemaal uit te breiden.
Dus eerst vrolijk verder borduren op idee....
Gewijzigd op 28/09/2017 01:27:41 door Hans De Ridder
 



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.