[PHP] str_replace wil geen tekst vervangen door cijfer.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Possstema
  • Registratie: Juli 2002
  • Laatst online: 07-04 11:50
Heeft iemand enig idee waarom str_replace op regel 15/16 een letter niet door een getal wil vervangen? Ik heb settype ook al geprobeert met waarde. Als string voor str_replace en als int erna. Ik heb op PHP.net ook geen functie gevonden voor iets met een integer. (heb search ook al gebruikt). Het hele schript is trouwens bedoeld om ascii waardes (dus van 0 tot 255) om te laten zetten naar binaire code.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function ab($gwaarde)
    { $bits = 8; $stapnr = 1; $bitnr = 128;
    while($bits >= 1)
    { $stap[$stapnr] = $gwaarde - $bitnr;
    if ($stap[$stapnr] < 0)
    {echo "0";}
    else
    {echo "1"; $gwaarde = $stap[$stapnr];}
    $bits = $bits - 1;  $stapnr = $stapnr + 1;
    $bitnr = $bitnr / 2; } echo " "; }

$waarde = $_POST[waarde];
function o($a, $bn)
{$waarde = str_replace($a, $bn, $waarde);}
o("a", "97");
echo $waarde, ab($waarde);
?>

Acties:
  • 0 Henk 'm!

  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 16-09 23:43

mOrPhie

❤️❤️❤️❤️🤍

En preg_replace? Zal die het wel goed doen?
http://nl.php.net/manual/en/function.preg-replace.php

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


Acties:
  • 0 Henk 'm!

  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 21-08 15:00
probeer het eens op deze manier
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php 
function ab($gwaarde) 
    { $bits = 8; $stapnr = 1; $bitnr = 128; 
    while($bits >= 1) 
    { $stap[$stapnr] = $gwaarde - $bitnr; 
    if ($stap[$stapnr] < 0) 
    {echo "0";} 
    else 
    {echo "1"; $gwaarde = $stap[$stapnr];} 
    $bits = $bits - 1;    $stapnr = $stapnr + 1; 
    $bitnr = $bitnr / 2; } echo " "; } 

$waarde = $_POST[waarde]; 
function o($a, $bn,$waarde) 
{$waarde = str_replace($a, $bn, $waarde);} 
o("a", "97",$waarde); 
echo $waarde, ab($waarde); 
?> 


Je functie ziet $waarde niet zonder meer omdat je deze niet als parameter mee geeft.
een andere (doch slordigere oplossing zou zijn:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php 
function ab($gwaarde) 
    { $bits = 8; $stapnr = 1; $bitnr = 128; 
    while($bits >= 1) 
    { $stap[$stapnr] = $gwaarde - $bitnr; 
    if ($stap[$stapnr] < 0) 
    {echo "0";} 
    else 
    {echo "1"; $gwaarde = $stap[$stapnr];} 
    $bits = $bits - 1;    $stapnr = $stapnr + 1; 
    $bitnr = $bitnr / 2; } echo " "; } 

$waarde = $_POST[waarde]; 
function o($a, $bn) 
{
global $waarde;
$waarde = str_replace($a, $bn, $waarde);
} 
o("a", "97"); 
echo $waarde, ab($waarde); 
?> 

Icons are overrated


Acties:
  • 0 Henk 'm!

  • Possstema
  • Registratie: Juli 2002
  • Laatst online: 07-04 11:50
maar dan is de lol eraf :) . Ik wou gewoon ff kijken of ik het voormekaar kon krijgen aangezien ik nogmaar een beginnelingetje ben ;) .

Acties:
  • 0 Henk 'm!

  • Possstema
  • Registratie: Juli 2002
  • Laatst online: 07-04 11:50
Helmet schreef op 06 July 2003 @ 12:38:
probeer het eens op deze manier

(CODE 1)

Je functie ziet $waarde niet zonder meer omdat je deze niet als parameter mee geeft.
een andere (doch slordigere oplossing zou zijn:

(CODE 2)
Die eerste manier werkt niet. maar de 2e wel. (vraag me niet waarom). Ik wist trouwens niet dat zoeiets als global bestond (zo zie je maar wat voor 'n noob ;) )
Maar ik heb al ff opgezocht wat het doet enzo. Maar waarom zou deze 2e manier slordiger zijn :?

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Die eerste werkt als je een & voor de $waarde in de functieheader zet, zodat je hem by reference ipv by value meegeeft.

[ Voor 10% gewijzigd door ACM op 06-07-2003 13:11 ]


Acties:
  • 0 Henk 'm!

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 03-09 14:12
Possstema schreef op 06 July 2003 @ 13:07:
Maar waarom zou deze 2e manier slordiger zijn :?
OVer het algemeen wordt het gebruik van globals afgeraden, omdat het dan niet duidelijk is welke variabelen een functie bewerkt / verwacht.

Acties:
  • 0 Henk 'm!

Verwijderd

Wat jij wilt bereiken kun je beter op een andere manier doen. Zoals Helmet al aangaf kun je het op deze manier aanpakken:
PHP:
1
2
3
4
5
6
7
<?
function o($a, $bn) { 
global $waarde; // neen!
$waarde = str_replace($a, $bn, $waarde); 
} 
o("a", "97"); 
?>


maar in dit geval is global totaal overbodig, als je het op de volgende manier aanpakt:

PHP:
1
2
3
4
5
6
7
<?
function o($a, $bn, $waarde) { 
return str_replace($a, $bn, $waarde); 
} 

$waarde = o("a", 97, $waarde);
?>

werkt het mooi en goed :)
Pagina: 1