•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the PHP section within the Web Development category of DaniWeb, a massive community of 391,557 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 2,694 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our PHP advertiser: Lunarpages PHP Web Hosting
Views: 716 | Replies: 3
![]() |
•
•
Join Date: Apr 2007
Posts: 12
Reputation:
Rep Power: 2
Solved Threads: 0
Well, I were trying to make code that gets a XML element from the file and replaces with new data.
Here is my code.
Parsing command:
Here is command that function above executed:
And for example, if I execute command:
/level GOD 0
In GOD.xml we'll have:
When it should look like that:
The problem is in ExecuteCMD function.
I think it's about str_replace that just works wrong.
How to get an element from file and replace with new provided data correctly ?
Here is my code.
Parsing command:
•
•
•
•
function ExecuteCMD($forplayer, $what, $to)
{
$player_dir = 'D:\\Programy\\Open Tibia Server Project\\DeadTouch Binary\\data\\players\\';
$SetPlayer = file_get_contents($player_dir . "\\" . $forplayer . ".xml");
$SetPlayer = str_replace($what, $to, $SetPlayer);
$OpenFile = fopen($player_dir . "\\" . $forplayer . ".xml", "w+");
if ($OpenFile)
{
fwrite($OpenFile,$SetPlayer);
}
fclose($OpenFile);
}
Here is command that function above executed:
•
•
•
•
require_once('./config.php');
require_once('./pe_ha_pe.php');
$cmd = explode(" ", $_POST['cmd']);
$player_dir = $data . '\\players\\';
@ $acp_d_file = file_get_contents($player_dir . "\\" . $cmd[1] . ".xml");
@ $System = simplexml_load_string($acp_d_file);
if ($cmd[0] == "/level")
{
if (!$cmd[1] || !$cmd[2])
{
echo 'Not enough of parameters for <B>' . $cmd[0] . '</b> command...';
}
else
{
if (@ !$acp_o_file = fopen($player_dir . "\\" . $cmd[1] . ".xml", "r"))
{
echo 'Player does not exist or nickname is wrong.';
}
else
{
if ($System['level'] == $cmd[2])
{
echo 'Provided level and player level is same.';
}
else
{
ExecuteCMD($cmd[1], $System['level'], $cmd[2]);
echo 'Command ' . $cmd[0] . ' with value ' . $cmd[2] . ' used on ' . $cmd[1] . ': <font color="green">SUCCESS</font>';
}
}
}
}
And for example, if I execute command:
/level GOD 0
In GOD.xml we'll have:
•
•
•
•
<?xml version="0.0"?>
<player name="MaestroS" account="0152818" sex="0" lookdir="0" exp="015544804375" voc="01" level="01439" access="0" cap="09810" maglevel="0139" lastlogin="01178140167" lastlogout="01178132522" promoted="0" banned="0">
(...)
When it should look like that:
•
•
•
•
<?xml version="1.0"?>
<player name="MaestroS" account="152818" sex="0" lookdir="0" exp="15544804375" voc="1" level="0" access="0" cap="9810" maglevel="139" lastlogin="1178140167" lastlogout="1178132522" promoted="1" banned="0">
(...)
The problem is in ExecuteCMD function.
I think it's about str_replace that just works wrong.
How to get an element from file and replace with new provided data correctly ?
Last edited by MaestroS : May 5th, 2007 at 5:59 am.
What you _could_ do is..
say the XML element is <item>...
You could store all text before and including the <item> tag.
Then store all the text after and including the </item> tag.
Then you can do.
say the XML element is <item>...
You could store all text before and including the <item> tag.
Then store all the text after and including the </item> tag.
Then you can do.
$string = $before . $value . $after;
GardCMS :: Open Source CMS :: Gardcms.org
![]() |
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
•
•
•
•
•
•
•
•
DaniWeb PHP Marketplace
- Java and XML (Java)
- Pass XML file contents to a hash table. (Java)
- ASP.NET <--> XML <--> VB6.0 (ASP.NET)
- help required for implementing project using JAVA & XML (Java)
- searches appearing as .xml files in windows folder (Windows NT / 2000 / XP / 2003)
- Php parser error when xml version is mentioned (PHP)
Other Threads in the PHP Forum
- Previous Thread: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result
- Next Thread: Email Validation


Linear Mode