Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML] Specyficzne str_replace?, Howto?
Tilosag
post 10.04.2007, 21:16:43
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 10.04.2007

Ostrzeżenie: (0%)
-----


  1. <?php
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  6. <meta http-equiv="Creation-date" content="2007-04-10T18:55:03Z">
  7. <meta name="Authoring-tool" content="Pajaczek NxG PRO v5.6.1">
  8. </head>
  9.  
  10. <body>
  11.  
  12. <form enctype="multipart/form-data" action="code.php" method="POST">
  13.  
  14. <table border="1">
  15. <tr>
  16. <td>
  17.  
  18. <!-- MAX_FILE_SIZE must precede the file input field -->
  19.  
  20. <!-- Name of input element determines name in $_FILES array -->
  21. Plik: <input name="plik" type="file" />
  22.  
  23.  
  24.  
  25. </td>
  26. </tr>
  27. <tr>
  28. <td>Potworek by&#322; na pozycji:</td>
  29. <td>Potworek jest na pozycji:</td>
  30. </tr>
  31. <tr>
  32. <td>X
  33. <input type="text" name="x1" value="" /></td>
  34. <td>X
  35. <input type="text" name="x2" value="" /></td>
  36. </tr>
  37. <tr>
  38. <td>Y
  39. <input type="text" name="y1" value="" /></td>
  40. <td>Y
  41. <input type="text" name="y2" value="" /></td>
  42. </tr>
  43. <tr>
  44. <td>Z
  45. <input type="text" name="z1" value="" /></td>
  46. <td>Z
  47. <input type="text" name="z2" value="" /></td>
  48. </tr>
  49. </table>
  50.  
  51. <table width="100$" height="100%">
  52. <tr>
  53. <td align="center" valign="middle" width="300px">
  54. <input type="submit" name="submit" value="Wykonaj" /></td>
  55. </tr>
  56. </table>
  57.  
  58. </form>
  59.  
  60. </body>
  61. </html>
  62. ?>


  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  5. <meta http-equiv="Creation-date" content="2007-04-10T19:49:52Z">
  6. <meta name="Authoring-tool" content="Pajaczek NxG PRO v5.6.1">
  7. </head>
  8. <body>
  9.  
  10.  
  11.  
  12. <?php
  13. $roznicax=$_POST['x2']-$_POST['x1'];
  14. $roznicay=$_POST['y2']-$_POST['y1'];
  15. $roznicaz=$_POST['z2']-$_POST['z1'];
  16.  
  17. print("Różnica X: $roznicax");
  18. print('<br />');
  19. print("Różnica Y: $roznicay");
  20. print('<br />');
  21. print("Różnica Z: $roznicaz");
  22.  
  23.  
  24.  
  25. $uploaddir = '/Program Files/WebServ/httpd/spawn/XML/';
  26. $uploadfile = $uploaddir . basename($_FILES['plik']['name']);
  27.  
  28. echo '<pre>';
  29. if (move_uploaded_file($_FILES['plik']['tmp_name'], $uploadfile)) {
  30. echo "Pierwszy stpień obliczeń - DONE.n";
  31. } else {
  32. echo "Possible file upload attack!n";
  33. }
  34.  
  35. print "</pre>";
  36.  
  37. $fd=fopen($uploadfile,"r+");
  38. $fstring = fread($fd , 10000); // jak zrobić, żeby zamiast 10000 było filesize, tyle że do pliku $plik , który się znajduje w folderze podrzędnym spawn??
  39.  
  40. $replace = str_replace('x="', "x=[0-9]+$roznicax", $fd); // <-- najważniejszy kawałek
  41.  
  42. $fout=fwrite($fd, $replace);
  43.  
  44.  
  45. ?>
  46.  
  47. </body>
  48. </html>



Jak zrobić tak, żeby szukał w pliku x=" (tu jakakolwiek wartość liczbowa) " , a później dodawał do niej $różnicax questionmark.gif?

Oczywiście wszystkie x= mają być zmienione.

I żeby zapisywał wszystko do folderu /gotowe/

To co zrobiłem, działa... kulawo tongue.gif

Ten post edytował Tilosag 10.04.2007, 21:21:01
Go to the top of the page
+Quote Post
nospor
post 11.04.2007, 08:37:31
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ponizszy przyklad doda 5:
  1. <?php
  2. function addToX($matches)
  3. {
  4. return 'x="'.($matches[1]+5).'"';
  5. }
  6. $text = 'x="1" asladosa x="3" sad sadasdasd x="4"';
  7. $search = '/x="(d+)"/';
  8. $search,
  9. "addToX",
  10. $text);
  11. ?>

Ty sobie przerob by dodawal tyle co chcesz tongue.gif

Cytat
jak zrobić, żeby zamiast 10000 było filesize, tyle że do pliku $plik , który się znajduje w folderze podrzędnym spawn
No to zrob pelna sciezke do tego pliku i juz


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tilosag
post 11.04.2007, 12:05:25
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 10.04.2007

Ostrzeżenie: (0%)
-----


Cytat
'/x="(\d+)"/'



Gdzie mogę znaleźć trochę wiedzy na temat jak ustawiać takie bajery?

deee nie kumam tego:
  1. <?php
  2. function szukaj($matches) // do czego mają służyć matches i co to za zmienna?
  3. {
  4. return 'x="'.($matches[1]+0).'"'; // return x , czyli żeby wyświetlił X , tak?
  5. }
  6. $text = 'x="1" asladosa x="3" sad sadasdasd x="4"';
  7. $search = '/x="(d+)"/';
  8. echo preg_replace_callback( //1. argument to Text do szukania, drugi to funkcja którą ma powtórzyć i 3 to Text?questionmark.gif
  9. $search,
  10. "szukaj",
  11. $text);
  12. ?>


Ten post edytował Tilosag 11.04.2007, 12:19:11
Go to the top of the page
+Quote Post
nospor
post 11.04.2007, 12:40:24
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Gdzie mogę znaleźć trochę wiedzy na temat jak ustawiać takie bajery?

Poszukaj jakiegos kursu do wyrazen regularnych

Cytat
do czego mają służyć matches i co to za zmienna?

Cytat
1. argument to Text do szukania, drugi to funkcja którą ma powtórzyć i 3 to Text?questionmark.gif

Zajrzyj do manuala co robi preg_replace_callback(), jakie przyjmuje parametry a nie sie ..... pytasz.

Cytat
return 'x="'.($matches[1]+0).'"'; // return x , czyli żeby wyświetlił X , tak?
e? teraz dodajesz 0, to jesli miales x="2" to nadal bedziesz mial x="2" bo 2 + 0 = 2

ps:
..... - mialo byc "głupio" ale ponoc nie ma głupich pytan winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tilosag
post 11.04.2007, 12:48:29
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 10.04.2007

Ostrzeżenie: (0%)
-----


  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  5. <meta http-equiv="Creation-date" content="2007-04-11T11:32:31Z">
  6. <meta name="Authoring-tool" content="Pajaczek NxG PRO v5.6.1">
  7. </head>
  8. <body>
  9.  
  10.  
  11.  
  12. <?php
  13. $roznicax=$_POST['x2']-$_POST['x1'];
  14. $roznicay=$_POST['y2']-$_POST['y1'];
  15. $roznicaz=$_POST['z2']-$_POST['z1'];
  16.  
  17. print("Różnica X: $roznicax");
  18. print('<br />');
  19. print("Różnica Y: $roznicay");
  20. print('<br />');
  21. print("Różnica Z: $roznicaz");
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28. $uploaddir = '/Program Files/WebServ/httpd/spawn/XML/';
  29. $uploadfile = $uploaddir . basename($_FILES['plik']['name']);
  30.  
  31. echo '<pre>';
  32. if (move_uploaded_file($_FILES['plik']['tmp_name'], $uploadfile)) {
  33. echo "Pierwszy stpień obliczeń - DONE.n";
  34. } else {
  35. echo "Possible file upload attack!n";
  36. }
  37.  
  38. print "</pre>";
  39.  
  40. if ($fd=fopen($uploadfile,"r+"))
  41. {
  42. print "fopen done <br />";
  43. }
  44. if ($fstring = fread($fd , filesize($uploadfile)))
  45. {
  46. print "fread done <br />";
  47. }
  48. if (print ($fstring))
  49.  {
  50. print 'print done <br />';
  51. }
  52.  
  53. //$replace = preg_replace_callback('/x="(d+)"/', )
  54. /*
  55. function addToX($matches)
  56. {
  57.   return 'x="'.($matches[1]+"$roznicax").'"';
  58. }
  59. $text = "$fstring";
  60. $search = '/x="(d+)"/';
  61. $replace = preg_replace_callback(
  62. $search,
  63. "addToX",
  64. $text);
  65.  
  66.  
  67.  
  68. $fout=fwrite($fd, $replace);
  69.  
  70.  
  71. */
  72.  
  73. ?>


To jest jakieś dziwne!!!

Ten skrypt nie zmienia ani literki w pliku!!! ;/

  1. żnica X: 580
  2. żnica Y: 0
  3. żnica Z: 0
  4.  
  5. Pierwszy stpień obliczeń - DONE.
  6.  
  7. fopen done
  8. fread done
  9. print done


/\ to wszystko, co wyświetla...

Ten post edytował Tilosag 11.04.2007, 12:53:01
Go to the top of the page
+Quote Post
nospor
post 11.04.2007, 12:51:59
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Ten skrypt nie zmienia ani literki w pliku!!! ;/

1) wykomentowales kod ktory zmienia, wiec sie nie dziw ze nie zmienia
2) twoj plik ma taka strukture X: 580, a podales wczesniej by zamienial taka: x="tuliczba" wiec znowu sie niedziw....
3) return 'x="'.($matches[1]+"$roznicax").'"'; - $roznicax nie bedzie widoczna w tej funkcji. poczytaj o zasiegu:
http://pl.php.net/manual/pl/language.variables.scope.php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tilosag
post 11.04.2007, 13:01:49
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 10.04.2007

Ostrzeżenie: (0%)
-----


Kod
<spawn centerx="808" centery="459" centerz="8" radius="7">
<monster name="Rat" x="0" y="-1" spawntime="80"/>
<monster name="Rat" x="-1" y="1" spawntime="60"/>
<monster name="Rat" x="1" y="0" spawntime="60"/>
<monster name="Rat" x="1" y="6" spawntime="80"/>
</spawn>
<spawn centerx="817" centery="461" centerz="8" radius="7">
<monster name="Rat" x="1" y="-1" spawntime="100"/>
<monster name="Rat" x="-2" y="2" spawntime="70"/>
<monster name="Rat" x="0" y="3" spawntime="60"/>
<monster name="Rat" x="0" y="-7" spawntime="60"/>

1. Nawet z kodem nic nie zmienia.
2. Ma strukturę x=" "!
3. Czyli :

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  5. <meta http-equiv="Creation-date" content="2007-04-11T11:32:31Z">
  6. <meta name="Authoring-tool" content="Pajaczek NxG PRO v5.6.1">
  7. </head>
  8. <body>
  9.  
  10.  
  11.  
  12. <?php
  13. $GLOBALS['$roznicax']=$_POST['x2']-$_POST['x1'];
  14. $GLOBALS['$roznicay']=$_POST['y2']-$_POST['y1'];
  15. $GLOBALS['$roznicaz']=$_POST['z2']-$_POST['z1'];
  16.  
  17. print("Różnica X: $roznicax");
  18. print('<br />');
  19. print("Różnica Y: $roznicay");
  20. print('<br />');
  21. print("Różnica Z: $roznicaz");
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28. $uploaddir = '/Program Files/WebServ/httpd/spawn/XML/';
  29. $uploadfile = $uploaddir . basename($_FILES['plik']['name']);
  30.  
  31. echo '<pre>';
  32. if (move_uploaded_file($_FILES['plik']['tmp_name'], $uploadfile)) {
  33. echo "Pierwszy stpień obliczeń - DONE.n";
  34. } else {
  35. echo "Possible file upload attack!n";
  36. }
  37.  
  38. print "</pre>";
  39.  
  40. if ($fd=fopen($uploadfile,"r+"))
  41. {
  42. print "fopen done <br />";
  43. }
  44. if ($fstring = fread($fd , filesize($uploadfile)))
  45. {
  46. print "fread done <br />";
  47. }
  48. if (print ($fstring))
  49.  {
  50. print 'print done <br />';
  51. }
  52.  
  53. //$replace = preg_replace_callback('/x="(d+)"/', )
  54.  
  55. function addToX($matches) //credits to nospor
  56. {
  57. return 'x="'.($matches[1]+$GLOBALS['$roznicax']).'"';
  58. }
  59. $text = "$fstring";
  60. $search = '/x="(d+)"/';
  61. $replace = preg_replace_callback(
  62. $search,
  63. "addToX",
  64. $text);
  65.  
  66.  
  67.  
  68. $fout=fwrite($fd, $replace);
  69.  
  70.  
  71.  
  72. ?>
  73.  
  74. </body>
  75. </html>
Go to the top of the page
+Quote Post
nospor
post 11.04.2007, 13:06:14
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ad2) sorki, zle zrozumialem to co pokazales

No ale nie zauwazyles, ze kod:
  1. <?php
  2. if (print ($fstring))
  3.  {
  4. print 'print done <br />';
  5. }
  6. ?>

Wyswietla ci tylko "print done" a powinien jeszcze wyswietlic zawartosc pliku? Skoro nie wyswietlil to mozna sie domyslic ze nie wczytal, jak nie wczytal to tym bardziej funkcja ci tego nie zmieni skoro nie ma co zmieniac. smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Tilosag
post 11.04.2007, 17:04:03
Post #9





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 10.04.2007

Ostrzeżenie: (0%)
-----


Poddaje się, za Chiny nie mogę zrobić zmiennej globalnej. Nigdy nie wyświetla mi wyniku wewnątrz funkcji, a w manualu jest napisane, że

[zmoderowane]

Ten post edytował nospor 15.04.2007, 15:26:27
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:24