New function : convertBinaryText

This commit is contained in:
Divlo 2019-09-14 17:38:30 +02:00
parent a422b9fa67
commit 22c1524dcf
7 changed files with 95 additions and 4 deletions

View File

@ -22,7 +22,10 @@ Le projet est disponible sur [function.divlo.fr](https://function.divlo.fr/).
| **convertDistance (firstValue, unitFirstValue, unitFinalValue)** | Convertit la longueur (distance) avec les unités allant de picomètre au Téramètre. | - firstValue : Le nombre que vous voulez convertir - unitFirstValue : l'unité du nombre que vous voulez convertir - unitFinalValue : l'unité de votre nombre après la conversion | | **convertDistance (firstValue, unitFirstValue, unitFinalValue)** | Convertit la longueur (distance) avec les unités allant de picomètre au Téramètre. | - firstValue : Le nombre que vous voulez convertir - unitFirstValue : l'unité du nombre que vous voulez convertir - unitFinalValue : l'unité de votre nombre après la conversion |
| **filterStudents(filteredLetter, students)** | Affiche uniquement les prénoms (qui sont dans la liste) qui commence par la lettre souhaitée. | - filteredLetter : la lettre à filtré - students : la liste des prénoms | | **filterStudents(filteredLetter, students)** | Affiche uniquement les prénoms (qui sont dans la liste) qui commence par la lettre souhaitée. | - filteredLetter : la lettre à filtré - students : la liste des prénoms |
| **randomQuote()** | Génère aléatoirement une citation ou un proverbe. | Aucun paramètre | | **randomQuote()** | Génère aléatoirement une citation ou un proverbe. | Aucun paramètre |
| **convertCurrency(urlFixerIO, currency, euroValue)** | Convertis des euros (€) dans une autre devise. | - urlFixerIO : l'url de l'API pour les taux de change - currency : la devise à avoir après conversion - euroValue : le nombre d'euros (€) à convertir | | **convertCurrency(currency, euroValue)** | Convertis des euros (€) dans une autre devise. | - urlFixerIO : l'url de l'API pour les taux de change - currency : la devise à avoir après conversion - euroValue : le nombre d'euros (€) à convertir |
| **utf8ToBin(s)** | UTF-8 vers Binaire | - s : la valeur à convertir |
| **binToUtf8(s)** | Binaire vers UTF-8 | - s : la valeur à convertir |
## La liste des Fonctions Annexes : ## La liste des Fonctions Annexes :
| Nom | Description | Paramètre(s) | | Nom | Description | Paramètre(s) |
@ -35,3 +38,4 @@ Le projet est disponible sur [function.divlo.fr](https://function.divlo.fr/).
| **showDateTime(enteredOffset)** | Affiche la date et l'heure (format : dd/mm/yyyy - 00:00:00). | - enteredOffset : date à formaté | | **showDateTime(enteredOffset)** | Affiche la date et l'heure (format : dd/mm/yyyy - 00:00:00). | - enteredOffset : date à formaté |
| **realDateTime(id)** | Affiche l'heure en temps réel. | - id : l'id de votre span/div où vous voulez afficher l'heure en temps réel | | **realDateTime(id)** | Affiche l'heure en temps réel. | - id : l'id de votre span/div où vous voulez afficher l'heure en temps réel |
| **timeZone(json)** | Récupére le décalage en secondes à partir de l'heure UTC grâce à l'API openweathermap.org. | - json : le json de l'API | | **timeZone(json)** | Récupére le décalage en secondes à partir de l'heure UTC grâce à l'API openweathermap.org. | - json : le json de l'API |
| **isStringBin(s)** | Verifie si une chaîne de caractère c'est du binaire ou non | - s : valeur à testé |

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

View File

@ -63,6 +63,11 @@ switch ($currentpage) {
$description = "Convertis des euros (€) dans une autre devise."; $description = "Convertis des euros (€) dans une autre devise.";
$image = 'https://function.divlo.fr/img/function-image/convertCurrency.png'; $image = 'https://function.divlo.fr/img/function-image/convertCurrency.png';
break; break;
case '/views/function-views/convertBinaryText.php':
$title = "Conversion d'un texte en binaire et vice-versa";
$description = "Convertis du texte (encodé en UTF-8) en binaire et l'inverse aussi.";
$image = 'https://function.divlo.fr/img/function-image/convertBinaryText.png';
break;
default: default:
$title = 'Erreur 404'; $title = 'Erreur 404';
$description = "Cette page n'existe pas!"; $description = "Cette page n'existe pas!";

View File

@ -100,7 +100,7 @@ function calculateAge(birthDateEntered) {
} }
} }
// Convertit des °C en °F et l'inverse aussi // Convertis des °C en °F et l'inverse aussi
function convertTemperature(degree, unit) { function convertTemperature(degree, unit) {
if (!isNaN(degree) && unit === "°C") if (!isNaN(degree) && unit === "°C")
{ {
@ -118,7 +118,7 @@ function convertTemperature(degree, unit) {
} }
} }
// Convertit la longueur (distance) avec les unités allant de picomètre au Téramètre // Convertis la longueur (distance) avec les unités allant de picomètre au Téramètre
function convertDistance (firstValue, unitFirstValue, unitFinalValue) { function convertDistance (firstValue, unitFirstValue, unitFinalValue) {
let reference = ["pm",null,null,"nm",null,null,"µm",null,null,"mm","cm","dm","m","dam","hm","km",null,null,"Mm",null,null,"Gm",null,null,"Tm"]; let reference = ["pm",null,null,"nm",null,null,"µm",null,null,"mm","cm","dm","m","dam","hm","km",null,null,"Mm",null,null,"Gm",null,null,"Tm"];
@ -224,6 +224,27 @@ function convertCurrency(currency, euroValue) {
}); });
} }
// Convertis du texte (encodé en UTF-8) en binaire et l'inverse aussi (source : http://jsfiddle.net/47zwb41o)
// UTF-8 vers Binaire
function utf8ToBin(s) {
s = unescape( encodeURIComponent(s));
var chr, i = 0, l = s.length, out = '';
for( ; i < l; i ++ ){
chr = s.charCodeAt( i ).toString(2);
while(chr.length % 8 != 0 ){ chr = '0' + chr; }
out += chr;
}
return out;
}
// Binaire vers UTF-8
function binToUtf8(s){
var i = 0, l = s.length, chr, out = '';
for( ; i < l; i += 8){
chr = parseInt( s.substr(i, 8 ), 2).toString(16);
out += '%' + ((chr.length % 2 == 0) ? chr : '0' + chr);
}
return decodeURIComponent(out);
}
///////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////
/* Fonctions Annexes */ /* Fonctions Annexes */
@ -408,3 +429,8 @@ function timeZone(json) {
let timeZoneStr = timeZoneValue.toString(); let timeZoneStr = timeZoneValue.toString();
return dateTimeUTC(timeZoneStr); return dateTimeUTC(timeZoneStr);
} }
// Verifie si une chaîne de caractère c'est du binaire ou non
function isStringBin(s) {
return s.match(/^[+\-0-1(). ]+$/g) !== null ? true : false;
}

View File

@ -179,6 +179,32 @@ $(function () {
} }
}); });
$("#submitConvertBinaryText").click(function()
{
let binaryTextValue = $('#binaryTextValue').val();
let isBinaryValue = isStringBin(binaryTextValue);
if(isEmptyValue(binaryTextValue)) {
$('.results').html(emptyMessageError);
}
else if (isBinaryValue === true) {
// Le replace enlève les espaces
let textResult = binToUtf8(binaryTextValue.replace(/\s/g,''));
$('.results').html(textResult);
}
else if (isBinaryValue === false) {
// Les 2 replace permettent de rajouter un espace tout les 8 bits
let binaryResult = utf8ToBin(binaryTextValue);
binaryResult = binaryResult.replace(/(\d{8})/g, '$1 ').replace(/(^\s+|\s+$)/,'');
$('.results').html(binaryResult);
}
else {
$('.results').html(messageError);
}
});
/* Permet d'afficher l'heure en temps réel sur le footer */ /* Permet d'afficher l'heure en temps réel sur le footer */
window.onload = realDateTime('realDateTime'); window.onload = realDateTime('realDateTime');

View File

@ -48,6 +48,10 @@
<td><a href="./function-views/convertCurrency.php">Conversion de devise</a></td> <td><a href="./function-views/convertCurrency.php">Conversion de devise</a></td>
<td>Convertis des euros () dans une autre devise.</td> <td>Convertis des euros () dans une autre devise.</td>
</tr> </tr>
<tr>
<td><a href="./function-views/convertBinaryText.php">Conversion d'un texte en binaire et vice-versa</a></td>
<td>Convertis du texte (encodé en UTF-8) en binaire et l'inverse aussi.</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@ -0,0 +1,26 @@
<!-- Config -->
<?php include("../../php/config.php");?>
<!-- Header -->
<?php include("../../incl/header.php");?>
<!-- Page Content -->
<div class="container">
<h1><span class="important"><?php echo $title?></span> :</h1>
<p class="pt-3 text-center"><?php echo $description?></p>
<div class="form-group">
<label for="binaryTextValue">Entrez votre chaîne de caractères ou du binaire :</label>
<textarea name="binaryTextValue" type="text" id="binaryTextValue" placeholder="(e.g : 'Salut' ou '01010011 01100001')" class="form-control"></textarea>
<br>
<div class="form-row text-center">
<div class="col-12">
<button type="submit" id="submitConvertBinaryText" class="btn btn-dark text-center">Envoyer</button>
</div>
</div>
<br> <br>
<p class="results text-center"></p>
</div>
</div>
<!-- Footer -->
<?php include("../../incl/footer.php");?>