php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.11.2006, 12:40  
Neuer Benutzer
 
Registriert seit: 04.06.2006
Beiträge: 4
Ilinsekt
Standard Problem bei Stringverarbeitung in PHP

Hi@all!

Ich habe ein kleines Prob. Und zwar habe ich diesen Code:

1 | <html>
2 | <head>
3 | <title>Testseite</title>
4 | </head>
5 | <body>
6 |
7 | <?php
8 |
9 | error_reporting(E_ALL);
10 |
11 |
12 | if (!isset($_GET['nullgleichung']) or $_GET['nullgleichung']=="") {}
13 | else
14 | {
15 |
16 |
17 | $potenzen=substr_count($_GET['nullgleichung'],'^'); //Anzahl der Cirkoflexe(=Potenzen)
18 | $variablen=substr_count($_GET['nullgleichung'],'x'); //Anzahl der X (=Variablen)
19 |
20 | $varpos[-1]=-2; //wichtig für die for-Schleife, definiert eine Variable
21 | $xnull2[-1]=$_GET['nullgleichung']; //wichtig für die for-Schleife, definiert eine Variable
22 | for ($a=0;$a<$variablen;$a++) //Die for-Schleife
23 | {
24 | $varpos[$a]=strpos($xnull2[$a-1],'x',$varpos[$a-1]+2); //Position der Variable x
25 | $grundstring[$a]=substr($xnull2[$a-1],$varpos[$a]-1,1); //Das Zeichen, das vor x steht
26 |
27 | if (ord($grundstring[$a])!=43 and ord($grundstring[$a])!=42 and ord($grundstring[$a])!=45 and ord($grundstring[$a])!=47) //prüft, ob vor dem x eine Grundrechenart steht
28 | {
29 | $xnull2[$a]=substr_replace($xnull2[$a-1],'*x',$varpos[$a],1); //ersetzt x durch *x
30 | }
31 |
32 | }
33 |
34 |
35 | $xnull1=preg_replace("/x/i",'$null',$xnull2[$a-1]); //Ersetzt alle x durch $null
36 | $xnull=str_replace($xnull1,$xnull1.'+0-0/1*1',$xnull1); //fügt am Ende der Gleichung ein +0-0/1*1 hinzu, wichtig für Zeile 56, sonst gibt es undefined.
37 |
38 | $grundposition[-1]=-6; //wichtig für die for-Schleife, definiert eine Variable
39 | $grundpos[-1]=-6; //wichtig für die for-Schleife, definiert eine Variable
40 | $xpotenz[-1]=$xnull; //wichtig für die for-Schleife, definiert eine Variable
41 |
42 |
43 | for ($i=0;$i<$potenzen;$i++) //for-Schleife
44 | {
45 |
46 | $nullpos[$i]=strpos($xpotenz[$i-1],'$null^',$grundpos[$i-1]+6); //Position von $null^
47 |
48 | $pluspos[$i]=strpos($xpotenz[$i-1],'+',$nullpos[$i]); //Position des nächsten Pluszeichens
49 | $minuspos[$i]=strpos($xpotenz[$i-1],'-',$nullpos[$i]); //Position des nächsten Minuszeichens
50 | $malpos[$i]=strpos($xpotenz[$i-1],'*',$nullpos[$i]); //Position des nächsten Mal-Zeichens
51 | $geteiltpos[$i]=strpos($xpotenz[$i-1],'/',$nullpos[$i]); //Position des nächsten Geteilt-Durch-Zeichens
52 |
53 | $grundarray=array(1=>$pluspos[$i],2=>$minuspos[$i],3=>$malpos[$i],4=>$geteiltpos[$i]); //Array aus den Positionen
54 |
55 |
56 | $grundpos[$i]=min($grundarray); //kleinste Position einer Grundrechenart
57 |
58 | $potenzpos[$i]=strpos($xpotenz[$i-1],'^'); //Position der Potenzen hinter dem Cirkoflex
59 | $potenz[$i]=substr($xpotenz[$i-1],$potenzpos[$i]+1,$grundpos[$i]-1-$potenzpos[$i]); //Die Potenz als Teilstring
60 |
61 | $xpotenz[$i]=str_replace('$null^'."$potenz[$i]",'pow($null,'.$potenz[$i].')',$xpotenz[$i-1]);//Umwandlung der Potenz in PHP-Code
62 |
63 | }
64 |
65 | echo $_GET['nullgleichung']."........".$xnull."..........".$xpotenz[$i-1;
66 | }
67 | ?>
68 |
69 |
70 |
71 |
72 |
73 |
74 |


75 | <span class='normal'>Hier können Sie die Nullstelle einer beliebigen Gleichung mit einer Variablen berechnen. Die Variable muss X heißen. Potenzen werden als x^y angegeben</span>
76 | <form action='405.php' method='get'>
77 | <table border='0' cellpadding='0' cellspacing='4'>
78 | <tr>
79 | <td align='right'>Gleichung:</td>
80 | <td><input class='mOFF' name='nullgleichung' type='text' size='20' maxlength='160'></td>
81 | </tr><tr>
82 | <td align='right'><input type='submit' value='Berechnen!'></td>
83 | </tr>
84 | </table>
85 | </form>
86 |
87 | </body>
88 | </html>


Der soll für eine Gleichung, die ich eingebe, die x durch $null ersetzen und davor ein* hinzufügen, falls da kein +-*/ steht. Leider kriege ich immer, wenn ich ihn ausführe, einige Warnungen und Notizen, dass in Zeile soundso (je nach Gleichung) der Offset undefiniert ist und in der Funktion strpos() der Offset nicht im String enthalten ist. Wenn ich in Zeile 27 die and durch or ersetze, kriege ich keine Meldungen, aber dann fügt der in jedem Fall ein * vor dem x ein, auch wenn da ein+-*/ steht.

Kann mir jemand helfen?

Greetz, Ilinsekt


/edit: Problem gelöst, kann geclosed werden.
Ilinsekt ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Array Problem [Ansatz ?] PHP Tipps 2005 0 27.01.2005 18:24
[Erledigt] Problem bei Massenmails versenden mit der Funktion mail PHP-Fortgeschrittene 3 19.01.2005 13:36
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php stringverarbeitung, stringverarbeitung php, php string verarbeitung, nullgleichung, null durch 0 ersetzen php, php potenzrechnung, php strngverarbeitung, php potenzrechnen string, substr_count minus zeichen, php html null mit 0 ersetzen, alles durch null ersetzt, stringverarbeitung, php potenz schleife, potenz for schleife php, php var minus, smarty variable minus, php plus in variable setzen, potenzen php, $_get ersetzt \, php rechnen string

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.