[PHP] String inkorten

Pagina: 1
Acties:

  • _.Luke._
  • Registratie: September 2001
  • Laatst online: 26-07-2021
hoe kan ik een string inkorten van voren en achter?
als ik $blup heb met daarin de waarde t_Image1_9.jpg.
Hoe kan ik dan de string zo afkappen dat ik de 1 die achter image staat overhoud..
Let wel de 1 kan ook een 10 zijn dus $blup[7] is eigenlijk niet de bedoeling, ik wil gewoon een hele string overhouden.
Ik heb het geprobeerd met $blup[0]="";$blup[1]="" enz maar das niet de bedoeling...
pliez hellup

Trying is the first step towards faillure...


  • bras
  • Registratie: Oktober 2000
  • Laatst online: 11-09 16:22
als je t_Image standaard is, kun je misschien met sscanf de 1 eruit vissen:
PHP:
1
2
3
<?
sscanf($blub, "t_Image%d_%d.jpg", &amp;$blub, &amp;$blub2);
?>

als ik het goed heb :)

edit:

$blub2 bevat nu het 2e nummer

"When you find yourself in the company of a halfling and an ill-tempered Dragon, remember, you do not have to outrun the Dragon...you just have to outrun the halfling."


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 15-09 19:11

Crazy D

I think we should take a look.

Geen php oplossing, want mijn php is wat *kuch*roestig*kuch*, maar benader het eens heel simpel. Als jij kijkt welk getalletje er staat, kijk je eigenlijk heel snel naar de hele string. t_Image en daarachter komt een getalletje wat je wilt weten. En vervolgens staat er daarna een _ met nog een getalletje, en .jpg.
Probeer die gedachte eens in code om te zetten. t_Image heb je sowieso niet nodig, dus die kun je replacen met "" (lege string dus), of met de juiste php functies "zoveel tekens van rechts pakken, dat je t_Image niet meeneemt in je string".
Daarna kijk je verder naar rechts. Je weet dat de _ en alles wat daarna komt ook niet boeiend is, dus kun je met de juiste php functie "zoveel tekens van links pakken tot je bij de _ bent".
Er zal in php ongetwijfeld een InStr-achtig iets zijn, waarmee je kan opvragen op welke positie een bepaald teken staat (of op welke positie de gezochte tekenreeks begint). SubString of iets dergelijks is er ook (om een deel van de string te pakken), dat, samen met je favoriete php-reference guide (hoofdstuk String-functies), moet je denk ik wel een aardig eind kunnen komen.

(en er zijn ongetwijfeld mooie regexpressies voor te verzinnen, maar niet door mij :P)

[edit]
en Bras typte minder en is dus sneller... zo'n functie is ook erg handig :)

Exact expert nodig?


  • _.Luke._
  • Registratie: September 2001
  • Laatst online: 26-07-2021
OK senks ben dur uit!

Luc

Trying is the first step towards faillure...


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

leve de regex :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • _.Luke._
  • Registratie: September 2001
  • Laatst online: 26-07-2021
Damn...

ik krijg de volgende foutmelding

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of sscanf(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer.

hoe kan dat?
en beter nog? hoe kan ik het anders doen... wil nl niet mijn INI aan gaan passen...


Luc

Trying is the first step towards faillure...


  • _.Luke._
  • Registratie: September 2001
  • Laatst online: 26-07-2021
Hmmm sorry was wat te vroeg... ben er uit...

wel wat omslachtig maar ach...het werkt..
PHP:
1
2
3
4
5
6
7
8
<?
$imagename = t_Image1_10.jpg

$imagename = explode("Image",$imagename);
$Temp = $imagename[1];
$Temp = explode("_",$Temp);
$ImageNumberCard = $Temp[0];
?>

$ImageNumberCard is nu 1...

Luc

Trying is the first step towards faillure...


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

_.Luke._:
wel wat omslachtig maar ach...het werkt..
iets minder omslachtig:
code:
1
2
3
preg_match ( "/t_Image([0-9]+)_([0-9]+).jpg/", $str, $match );
$imgNr = $match [ 1 ];
$imgNrSub = $match [ 2 ];

zoals ik al zei, leve de regex. Staat hoop over in de manual

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1