Lägg in tecken på förbestämda platser i sträng?

PHPportalen Forum Index » PHP
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
caffo



Medlem i: 2280 dagar

Status: Offline



#741825
Inlägg Skrivet: 2017-08-16 13:18      Ämne: Lägg in tecken på förbestämda platser i sträng? Citera

Kanske lite dumt formulerad rubrik.

Jag behöver förvandla en sträng till en däckdimension. Min kod undertill fungerar som den ska, men det känns som det måste finnas ett "snyggare/bättre" sätt att gå tillväga?

För er som inte orkar köra scriptet, eller redan innantill kan se vad den gör, så ändrar den t.ex "1956515" till 195/65-15

PHP:
1:
 $dim = array('1956515''2055516''2254517''2354018');
2:
   for($i 0$i count($dim); $i++){
3:
   echo substr($dim[$i], 03)."/".substr($dim[$i], 32)."-".substr($dim[$i], 52)."<br />";
4:
   


Tack på förhand!
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Skicka e-post Besök användarens hemsida MSN Messenger
harald_b
Moderator



Medlem i: 4141 dagar
Från: Tavesta
Status: Offline



#741842
Inlägg Skrivet: 2017-08-21 12:15      Ämne: Citera

Här är ett annat sätt att få samma resultat:
PHP:
1:
 $dim = array('1956515''2055516''2254517''2354018');
2:
foreach($dim as $d) {
3:
   echo preg_replace('/(...)(..)(..)/''$1/$2-$3',  $d).'<br />';
4:


Om någon av siffergrupperna kan innehålla olika många siffror kan man ändra till (.*) i den siffergruppen:
PHP:
1:
 echo preg_replace('/(.*)(..)(..)/''$1/$2-$3',  $d).'<br />'


Om $dim riskerar att innehålla variabelt data så bör man även använda htmlspecialchars och kanske u-flaggan i det här fallet:
PHP:
1:
 echo htmlspecialchars(preg_replace('/(.*)(..)(..)/u''$1/$2-$3',  $d)).'<br />'
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
blaff



Medlem i: 4016 dagar

Status: Offline



#741865
Inlägg Skrivet: 2017-09-18 14:26      Ämne: Citera

För att slippa köra preg-metoder kan du köra substr_replace istället

PHP:
1:
 
2:
$dim = ['1956515''2055516''2254517''2354018'];
3:
 
4:
foreach ($dim as $d) {
5:
   echo substr_replace(
6:
      substr_replace(
7:
         $d,
8:
         '-',
9:
         5,
10:
         0
11:
      ),
12:
      '/',
13:
      3,
14:
      0
15:
   );
16:
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic