Avatar billede martinbk Nybegynder
12. oktober 2003 - 22:16 Der er 16 kommentarer og
1 løsning

holde samme str længde med og uden data

$output = "  Û°        info :".$_POST['info']."              link:".$_POST['link']."                                °Û";

mit problem er jeg har en streng med en bestemt længde fyldt ud af white spaces, nu vil jeg så gerne ændre i denne streng og erstatte nogle whitespaces med noget info fra en form ($_POST['info'] og $_POST['link']) mit problem er så nu at strengen IKKE må ændre længde, altså skal jeg på en eller anden måde have trukket nogle whitespaces ud

håber jeg har forklaret mig tydelig nok, eller bare spørg
Avatar billede erikjacobsen Ekspert
12. oktober 2003 - 22:23 #1
Hvad med at tænke på en anden måde. Denne stump kode

<?


  $a="hej";
  $b="17";
  $c="sure sokker";

  $s = sprintf("%20s%10s%30s",$a,$b,$c);

  print "$s\n";

?>

laver en streng med 3 felter, hvor teksterne er højrestillede, hhv 20,
10 og 30 bred. Sådan ca.:

"                hej        17                  sure sokker"

...var det noget?
Avatar billede martinbk Nybegynder
12. oktober 2003 - 22:26 #2
virker umiddelbart som en måde at løse problemet på, jeg vender lige tilbage når jeg har leget lidt med det
Avatar billede erikjacobsen Ekspert
12. oktober 2003 - 22:27 #3
Du kan evt først pille felterne ud med noget regulært udtryk halløj, hvis
strengen er givet.
Avatar billede martinbk Nybegynder
12. oktober 2003 - 22:29 #4
problemet er ligger i det er et såkaldt ascii art billede, hvor jeg gerne vil udfylde nogle felter, så ikke 2 linier er ens
Avatar billede martinbk Nybegynder
12. oktober 2003 - 22:31 #5
et eksempel kunne være
$output .= "  ÛÛÜ  ÜÜÛÛÛÛ                                                      ÛÛÛÛÜÜ  ÜÛÛ\r\n";

i det store mellemrum ville jeg så gerne have en centret text fra en form sat ind uden at strengen ændre længde
Avatar billede erikjacobsen Ekspert
12. oktober 2003 - 22:34 #6
Jeg skal altså lade være med at gå og tro at alle går rundt og arbejder
med strukturerede data .... ;)

Du ved hvilke linier det er? Og ca. hvor? Og hvor meget plads der er+
Kan du ikke bare indsætte tegn for tegn:


  $s[$start+$i]=$t[$i];    // strenge
Avatar billede martinbk Nybegynder
12. oktober 2003 - 22:38 #7
ja formen ligger helt fast defineret, der kan et sted. lad os sige tegn nr. 40-45 i linie nr. 60 stå link:

så vil jeg så gerne fylde på fra tegn 46 men stadig uden den slutlige krysedulle flytter sig fra plads måske 80

det du foreslog der er jeg ikke helt sikker på jeg forstod en disse af
Avatar billede erikjacobsen Ekspert
12. oktober 2003 - 22:42 #8
$o="Ole sad    en knold og sang";
  $p="paa";

  print "$o\n";

  for ($i=0;$i<strlen($p);$i++) {
    $o[8+$i]=$p[$i];
  }

  print "$o\n";

vil udskrive:

Ole sad    en knold og sang
Ole sad paa en knold og sang
Avatar billede nicklasb Nybegynder
12. oktober 2003 - 22:48 #9
Altså hvis du er lige glad om der står noget i forvejen er det vel bare noget lignende:

<?php
$streng = '01020304050607080910111213141516171819202122223242526272829303132333435363738394041424344454647484950';

$putin = 50;
$putintekst = 'HEJ!';

for ($i = $putin - 1, $j = 0; $i < $putin - 1 + strlen($putintekst); $i++, $j++) {
    $streng[$i] = $putintekst[$j];
}

echo $streng;
?>
Avatar billede nicklasb Nybegynder
12. oktober 2003 - 22:51 #10
erikjacobsen -> Sorry.. så ikke du havde postet.. sådan sker det når man ikke opdatere..

Men det der var hele pointene, var bare at du fra pladsholderen opgivet i $putin til længden af den nye tekst plus $putin skiftede den gamle strenges array-variabler ud med den nye data..
Avatar billede squashguy Nybegynder
12. oktober 2003 - 22:54 #11
prøv evt at glo lidt på denne tråd http://www.eksperten.dk/spm/391650
Avatar billede erikjacobsen Ekspert
12. oktober 2003 - 22:54 #12
Putin? Er han ikke president et sted? Helt i orden Nicklas - i hvert fald
så længe vi er enige ;)
Avatar billede martinbk Nybegynder
13. oktober 2003 - 19:44 #13
tak for jeres kommentarer, jeg lader lige spørgsmålet stå til jeg er helt færdig med mit lille script, i tilfælde af yderligere spørgsmål
Avatar billede martinbk Nybegynder
08. april 2004 - 15:02 #14
erikjacobsen og nicklasb, kunne jeg ikke få jer til at smide nogle svar ? :-)
Avatar billede erikjacobsen Ekspert
08. april 2004 - 15:13 #15
Ellers tak, jeg samler slet ikke på point.
Avatar billede nicklasb Nybegynder
11. april 2004 - 23:06 #16
.. kan jeg da godt, hvis det altså har hjulpet? :S
Avatar billede martinbk Nybegynder
11. april 2004 - 23:36 #17
siden erik nu ikke (af en eller anden mærkelig grund) ikke vil have point, så får du dem bare nicklas
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester