Advertisement
Guest User

Untitled

a guest
May 25th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. <?php
  2.  
  3. class iButton {
  4.  
  5. /**
  6. * Convertit le format du numéro de série iButton dans un format acceptable pour Loxone
  7. *
  8. * Input : ABCDEFGHIJKLMNOP
  9. * Output : OP.MN.KL.IJ.GH.EF.CD.AB
  10. *
  11. * @param String $serialNumber
  12. *
  13. * @return String
  14. * @throws Exception
  15. */
  16. public static function convert(String $serialNumber): String
  17. {
  18. $length = strlen($serialNumber);
  19. if ($length % 2 != 0) {
  20. throw new \Exception(sprintf('Wrong format: serialNumber should have an even string length. Length = %d (serialNumber: %s)', $length, $serialNumber));
  21. }
  22.  
  23. $return = '';
  24. for($i = $length - 2; $i >= 0; $i = $i - 2) {
  25. $return .= substr($serialNumber, $i, 2);
  26. $return .= ($i > 0) ? '.' : '';
  27. }
  28.  
  29. return $return;
  30. }
  31. }
  32.  
  33. $serialNumber = $_POST['serialNumber'];
  34.  
  35. ?>
  36. <!DOCTYPE html>
  37. <html>
  38. <head>
  39. <title>Formatter un numéro de série iButton</title>
  40. <meta charset="utf-8">
  41. <style type="text/css">
  42. body {
  43. font-family: Arial, Verdana, sans-serif;
  44. }
  45. label {
  46. display: inline-block;
  47. width: 300px;
  48. }
  49. input[type=text] {
  50. width: 200px;
  51. }
  52. textarea {
  53. display: inline-block;
  54. width: 400px;
  55. height: 100px;
  56. }
  57. </style>
  58. </head>
  59. <body>
  60. <form method="post" autocomplete="false">
  61. <p>
  62. <input type="text" id="serialNumber" name="serialNumber" placeholder="Numéro de série" value="<?php echo (isset($serialNumber)) ? $serialNumber : '' ?>" required="required">
  63. </p>
  64. <p>
  65. <input type="submit" value="Formater">
  66. </p>
  67. <input type="text" id="serialNumberFormatted" name="serialNumberFormatted" placeholder="Numéro de série formaté" value="<?php echo (isset($serialNumber)) ? iButton::convert($serialNumber) : '' ?>">
  68. </p>
  69. </form>
  70. <p>
  71. </p>
  72. <script type="text/javascript">
  73. document.getElementById('serialNumber').select();
  74. </script>
  75. </body>
  76. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement