alleen cijfer weergeven

Status
Niet open voor verdere reacties.

leuthrick

Gebruiker
Lid geworden
17 sep 2008
Berichten
454
hallo,

ik wil een script maken dat van de tekst 001 - test pagina 1 er 001 kan van maken.

dus dat je - test pagina 1 weg haalt.(inclusie de spatie voor -).

en dat zo op eleke regel doet.

bv.

001 - test pagina 1
002 - test pagina 2
003 - test pagina 3
004 - test pagina 4
enz.
en hij moet er dit van maken:
001, 002, 003, 004

alvast bedankt
 
Waar komen die regels vandaan?

Uit een database?

Als ze regel voor regel worden ge-output kun je eventueel substr() gebruiken.

PHP:
$string = '001 - testpagina 1';
echo substr($string, 0 , 3);
 
het probleem is ze staan allemaal onder elkaar
001 - test pagina 1
002 - test pagina 2
003 - test pagina 3
004 - test pagina 5

het komt uit een txt bestandje het is voor mij te veel werk om van 200 a 300 regels de tekst er af te halen.
 
Hoe ziet de code er uit waarmee je dat .txt bestand uitleest?
 
Ik dacht dat je die regels al ergens had staan :(
(001 - testpagina 1 etc.)

Zoals ik het nu lees wil je alleen een lijstje van 001 tot 999.
Als dat zo is waarom gebruik je dan geen FOR-lus?
 
het lijstje heb ik ook alleen geen zin om hem uit te lezen:p

ik dacht gewoon aan
PHP:
$text = "001 - test pagina 1
002 - test pagina 2
003 - test pagina 3";
 
PHP gaat hem uitlezen dus wat is het probleem?

Lijkt mij handiger dat je vertelt wat je bedoeling hiermee is. :rolleyes:
 
Ik snap ook niet echt wat er bedoeld wordt, maar als je het nu eens zo doet:

PHP:
<?php

$aFile = file ( 'lijstje.txt' );

foreach ( $aFile as $iLine => $sContent ) {

  echo substr ( $sContent, 0, 3 ), ', ';

}

?>
 
Waarom niet gewoon dit?
PHP:
$max = 100;
for($i=1; $i <= $max; $i++) {
  if($i < 10) {
    $i = '0'. $i;
  }
  if($i < 100) {
    $i = '0'. $i;
  }
  echo $i .',';
}
 
omdat ik wou weten hoe zo iets zou werken wat ErikBooy007 uitlegden.

dat van 001 - test pagina 1 was maar een voorbeeld je.

maar het is ongelost.

bedankt iedereen
 
Laatst bewerkt:
Hoe ziet je bestand eruit? Want in het voorbeeldlijstje dat je ons eerder gaf, komen geen ( ) voor.
 
ik probeer de functie te leren.

dus ik probeer maar wat dingen.

anders wil ik dat hij van
PHP:
echo "test";
alleen
PHP:
echo ;

maakt

alvast bedankt
 
Laatst bewerkt:
Dat laatste snap ik ook niet echt, maar je wilt met de functie substr leren werken?

Het is heel gemakkelijk, dit zegt php.net:

PHP:
string substr  ( string $string  , int $start  [, int $length  ] )

Zoals je ziet returnt de functie een string, de eerste parameter is de string waar je slechts een stuk van wilt laten zien, de tweede parameter is de begin positie van de string die je wilt weergeven (let op: het eerste teken is 0, je kunt het ook zien als "hoeveel tekens wil ik van het begin van de string afknippen), het derde argument is optioneel en daarin kún je aangeven hoe lang je de geretourneerde tekst wilt hebben (in aantal tekens).

Voor je (kromme) voorbeeld zou je kunnen gebruiken:

PHP:
$sString = "test";

echo substr ( $sString, 0, 0 ); // geeft 
echo substr ( $sString, 0, 2 ); // geeft te
echo substr ( $sString, 2, 2 ); // geeft st
echo substr ( $sString, 1, 3 ); // geeft est
 
Laatst bewerkt:
oke dat snapte ik nog maar als je van
PHP:
echo "test";
naar
PHP:
echo ;
wild maken dat je dus alles tussen "" weg haald + de ""

alvast bedankt
 
Dat kan niet, de quotes zijn geen onderdeel van de string, dus kun je ze ook niet weghalen / overlaten.
 
en als je hebt:
test ?----------test---------? test test
test ?----------------test-----------------------------? test test
test ?--------test-----------------------------? test test

zou je het dan wel kunnen dat je test test test overhoud dus alles tussen de ? weghaald + de ?
 
Ja, dat kan wel:

PHP:
<?php

  $aContents = file ( 'file.txt' );

  foreach ( $aContents as $sContent ) {

    $end = ( strpos ( $sContent, '?' ) != -1 ) ? strpos ( $sContent, '?' ) : 0;

    $start = ( strpos ( $sContent, '?', $end + 1 ) != -1 ) ? strpos ( $sContent, '?', $end + 1 ) : $end;

  echo substr ( $sContent, 0, $end );
  echo substr ( $sContent, $start + 1, ( strlen ( $sContent ) - $start ) - 1 );

  }

?>
Niet getest, maar denk dat het ongeveer dit moet zijn.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan