Protocol Class

Door Nicoow Unknown, 13 jaar geleden, 2.412x bekeken

Nu nog een kleine klasse om simpel een protocol te strippen en te bouwen.
Kan handig zijn als je dingen via Sockets o.i.d. verstuurt.

Je kan er array ingooien, en dan krijg je het protocol terug.
Of je gooit er een protocol in, en dan rolt een array eruit, waarvan de actie de naam is, en het resultaat ervan dus de waarde.

Voorbeeld:

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

/**
 * @author Nico Kaag
 * @copyright 2009
 */

error_reporting(E_ALL);

require_once('protocol.php');

$test = "<#time>12-03-09<#/time><#action>send<#/action><#message>Halloow, dit is een test<#/message>";

$protocol = new protocol('time|action|message|from|to');
$return = $protocol->stripAndReturn($test);
if (!$return) {
    echo 'Error!!';
}

else {
    echo '<pre>', print_r($return, TRUE), '</pre>';
}

echo $protocol->createFromArray($return);
?>


Als je er nog een functie bij wilt, hoor ik dat graag.

Overigens hoor ik ook graag alle op en aanmerkingen.

Gesponsorde koppelingen

PHP script bestanden

  1. protocol-class

 

Er zijn 16 reacties op 'Protocol class'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Iltar van der berg
iltar van der berg
13 jaar geleden
 
0 +1 -0 -1
Volgens mij is een protocol wat anders...
Toby hinloopen
toby hinloopen
13 jaar geleden
 
0 +1 -0 -1
Owke... de bedoeling van dit script is mij weer eens volledig onduidelijk.
Wat doet het...? waar kan je het voor gebruiken?
Nicoow Unknown
Nicoow Unknown
13 jaar geleden
 
0 +1 -0 -1
@Iltar, een protocol kan heel veel zijn,
Een protocol is gewoon een afspraak die je maakt met jezelf of je team over hoe je je gegevens doorspeelt,
Als je iets over een socket verstuurt, moet je dus ook een protocol hebben om aan te geven wat wat is, omdat je maar 1 ding wilt versturen.
Zo kan je dus een string bouwen om te versturen.
M Ypma
M Ypma
13 jaar geleden
 
0 +1 -0 -1
Je scriptnaam doet overkomen alsof dit voor elk protocol is te gebruiken. Kan ik hier ook JSON in gooien?
Vreemd genoeg vereist jouw protocol dat er hekjes in mijn xml tags moeten staan, anders werkt het niet. Vind ik erg raar...
Nicoow Unknown
Nicoow Unknown
13 jaar geleden
 
0 +1 -0 -1
De tags die ik gebruik (<#..> en <#/..>) zijn geen xml tags,, zijn gewoon identifiers waartussen je dingen komen te staan.
of je er JSON in kan gooien, geen idee, probeer het zou ik zeggen =P
Misschien wel een idee om te zorgen dat je ook kan kiezen wat de <# moet worden.
Als iemand daar belang bij heb,, zeg het maar, dan regel ik dat even.
Iltar van der berg
iltar van der berg
13 jaar geleden
 
0 +1 -0 -1
Nico, deze class gebruikt geen protocol. Het is ook geen afspraak over hoe je je gegevens doorspeelt met je team.
http://nl.wikipedia.org/wiki/Protocol

Overigens heb je niks aan deze class. Waarom zou je een eigen (best slecht door gedachte) protocol gaan bedenken, als er al velen zijn die goed (beter) werken.

Je zou een protocol kunnen zien als een verzameling regels. Een protocol object is dus nutteloos. Een object dat kijkt of hij aan waardes voldoet kan daar en tegen weer wel.
Nicoow Unknown
Nicoow Unknown
13 jaar geleden
 
0 +1 -0 -1
Bestaande protocollen als HTTP en FTP of SMTP of wat dan ook, heb je niks aan, als je je eigen data over een poort wilt sturen.

En je hebt opzich wel gelijk dat dit niet een protocol opzich is, maar als jij een goed protocol maakt, dan kan je dit wel gebruiken om jou protocol op te bouwen en te versturen, zonder tig keer een nieuw iets te versturen met weer nieuwe data.

Een validator is wel handig ja,, ben nu bezig om dat te maken.
Iltar van der berg
iltar van der berg
13 jaar geleden
 
0 +1 -0 -1
Nico, wat is jou protocol dan?
Nicoow Unknown
Nicoow Unknown
13 jaar geleden
 
0 +1 -0 -1
Gaat jou dat wat aan?
Het protocol wat hij nu weergeeft zou je kunnen gebruiken voor een chat systeem,
En dan moet je dus afspraken maken wat je met welke gegevens gaat doen.

Ik zelf gebruik dit voor een mp poker, dus dat protocol ziet er even iets anders uit.
Iltar van der berg
iltar van der berg
13 jaar geleden
 
0 +1 -0 -1
Wat is er dan mis met het gebruik van JSON om data te verzenden, of XML? Waarom zelf een trage parser maken als er al iets is wat het voor je doet?
Nicoow Unknown
Nicoow Unknown
13 jaar geleden
 
0 +1 -0 -1
Dus ik mag nu aan nemen dat jij nooit iets zelfs schrijft, tenzij het echt nog nooit eerder is gemaakt?

Ik heb ook nooit gezegd dat er iets mis is met JSON en XML.
Arian Stolwijk
Arian Stolwijk
13 jaar geleden
 
0 +1 -0 -1
Hoezo zou je geen xml of JSON gebruiken. Het is breed ondersteund, ideaal bij AJAX en andere communicatie tussen bepaalde systemen. Het is grondig getest en zitten eindeloze denktijd in. Het is zo te gebruiken, php heeft er ingebouwde parsers voor, dus makkelijker/beter kan bijna niet.

Je mag best zelf je ding verzinnen, maar in dit geval is het nog tamelijk doelloos. ;)
Nicoow Unknown
Nicoow Unknown
13 jaar geleden
 
0 +1 -0 -1
en sockets zijn dat dus niet?
Iltar van der berg
iltar van der berg
13 jaar geleden
 
0 +1 -0 -1
Zijn wat niet?
Nicoow Unknown
Nicoow Unknown
13 jaar geleden
 
0 +1 -0 -1
lees arian z'n stukje over JSON via AJAX (waar dit ook duidelijk niet voor bedoeld is)
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jelmer -
Jelmer -
13 jaar geleden
 
0 +1 -0 -1
Een goede taal heeft geen problemen met zichzelf versturen. Met jouw class kan dat nog niet, want er is nog geen mogelijkheid om een bepaalde tag/delimiter-achtig-iets te escapen.

In HTML & XML heb je bijvoorbeeld de entities, &gt; om < te kunnen versturen. Bij JSON hoef je het alleen maar tussen quotes te zetten, en ervoor te zorgen dat alle quotes die er al in stonden worden ge-escaped met een ". Er zijn ook varianten die aan het begin de lengte van een bepaald stukje vermelden, zodat alles wat daartussen staat als content wordt gezien, en pas weer verder interpreteren na het genoemde aantal bytes.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. protocol-class

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

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.