Autor Zpráva
Martinse
Profil
Zdravim potrebuju pomoct mam potrebuju pomoct mam tady jednoduchej skript jenze potrebuju udelat pojistku ze pokud to bude zacinat treba STEAM_0: tak aby se to prepsalo na STEAM_1: a pokud to nebude zacinat ani jednou z techto forem tak to vyhodi chybu presneji text ze je to neplatne steamid

if(isset($_POST['steamid64'])) {
    $steamid64 = $_POST['steamid64'];
echo $steamid64;
}
?>
<form method="POST" action="">
<center>Tvoje SteamID:    <input id="steamid64" type="text" name="steamid64" placeholder="SteamID">
<input type="submit" id="submit" value="INFO">
</form></center>

<?
RastyAmateur
Profil
Martinse:
Možná by šel i lepší zápis, ale i tam se pokusím poradit:
<?php
  function steamidvalidator($id){
    if(preg_match("#STEAM_(0|1):.+#",$id) === 1){ # V případě, začíná na "STEAM_1:cokoliv_dalsiho" nebo "STEAM_0:cokoliv_dalsiho", pustí to dál
      $b1 = preg_replace("#STEAM_(0|1):(.+)#","STEAM_1:$2",$id); # Nahradí 0 za 1
      return $b1;
      }
    else return "Nesprávný steam id";
    }
    
  $str1 = "STEAM_0:5651165441";
  $str2 = "STEAM_1:5651165441";
  $str3 = "STEAM_3:5651165441";
  echo steamidvalidator($str1); # Vypíše STEAM_1:5651165441
  echo steamidvalidator($str2); # Vypíše STEAM_1:5651165441
  echo steamidvalidator($str3); # Vypíše Nasprávný steam id
?>
Keeehi
Profil
RastyAmateur:
Možná by šel i lepší zápis
No chybí ti v reguláru ta podmínka, že to tím řetězcem začíná. A taky vůbec není nutné do toho reguláry tahat. Stačí primitivní funkce na práci s řetězci.
RastyAmateur
Profil
Keeehi:
Stačí primitivní funkce na práci s řetězci.
Taky pravda. Se divím, že mě to nenapadlo...
Martinse
Profil
Diky RastyAmateur predelal jsem to jak jsem potreboval

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: