Thursday, January 31, 2019

Website Builders: WordPress vs Squarespace



WordPress and Squarespace are the two most popular website building platforms among small business owners. WordPress is a free, open source, and perhaps the most flexible website builder you’ll find out there. Squarespace is no pushover either. Boasting high-quality designer templates to easily build a site, it has a large number of dedicated users who keep increasing by the day. Below, we compare the two platforms side by side to help you pick the best website platform for your organization.



Wednesday, January 30, 2019

C# Invoice post in tally XML format connect to web to tally - Static IP Configuration

Asp.net C# application invoice post in tally in XML format - Web base application connect to tally ERP using static IP 

public string xmlPosting(string xml)
    {
       
        WebRequest request = WebRequest.Create("http://00.000.00.000:9000");​//Static IP

        request.Method = "POST";
        request.Timeout = 99000;
        byte[] byteArray = Encoding.UTF8.GetBytes(xml);
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = byteArray.Length;
        Stream dataStream = request.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();
        WebResponse response = request.GetResponse();
        Response.Write(((HttpWebResponse)response).StatusDescription);
        dataStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(dataStream);
        string responseFromServer = reader.ReadToEnd();
        //Response.Write(responseFromServer);
        // Clean up the streams.
        reader.Close();
        dataStream.Close();
        response.Close();
        StringBuilder output = new StringBuilder();
        return XmlError(responseFromServer);
    }

Tuesday, January 29, 2019

ASP.Net Zero vs ASP.Net Boilerplate Framework


To start with, both, ASP.net Zero and ASP.Net Boilerplate framework are considered to be a strong infrastructure for modern web applications. ASP.NET Zero is an effective resolution for building web and mobile apps. Full source code is obtained from it and based on the business idea and need, it can be changed as desired. This structural model of ASP.NET Zero is centered on the open-source and community-driven ASP.Net Boilerplate framework. However, there are many differentiation that make them unique in many which ways. Let us understand them in detail and get into the nitty-gritties of both to them to get a clear the picture.

What is ASP.Net Zero and ASP.Net Boilerplate framework?

It is nothing but a Visual Studio resolution. It is put together centred on layered structural design and other software It delivers a firm, robust and accessible solution architecture, along with pre-built pages, to name a few. It does prove to be beneficial for all the business enthusiasts who do have a brilliant business idea in their mind and want to execute in form of a web application for the prospective clienteles. For building a web application by extending the business idea, then ASP.Net Zero with finest practices is taken as the base solution. This will not only save the precious time of the developers but also they do not have to start afresh. Requirements such as: user, role and permission management, audit logging, setting management, user profile management, localization and so on are taken care of in this visual studio solution. Case in point, a lot of pre-built functionalities are made responsible by it. What is more, it also makes your everyday development effort stress-free by means of a comprehensive web application structure.

On the other hand, ASP.NET Boilerplate automates common software development jobs by resolution, focusing on the business code. All in all, ASP.NET Boilerplate is an open source and nicely-documented application structure. It is not just a structure, as it delivers a solid architectural model centered on Domain Driven Design too, using all the finest practices in mind.

Friday, January 27, 2017

Monday, January 2, 2017

How to limit process number per user for linux user and apache/cgi

How to limit process number per user for linux user and apache/cgi



Instructions for installing PostgreSQL and Management over users and databases.

Included instructions for rebuilding of php with pgsql so you could use phpPgAdmin.


Monday, November 21, 2016

php.ini per folder CentOS WebPanel CWP

All server with CWP can have custom php.ini file set per user account or per folder.
User can manually create php.ini file and add values which needs to be changed in it.

Location of the global server php.ini file is

/usr/local/php/php.ini

Location of the global per account php.ini file is

/home/USERNAME/php.ini
You can also have per folder changes, example:
/home/USERNAME/public_html/website1.com/php.ini
/home/USERNAME/public_html/website2.com/php.ini
/home/USERNAME/public_html/website2.com/myapp/php.ini
How to test php.ini changes?
Simple create phpinfo.php file in the users public_html folder and add the following content in it.
Example location: /home/USERNAME/public_html/phpinfo.php
<?php
phpinfo();
?>

Now open url in your browser (Apache restart is NOT needed):
http://your-domain.com/phpinfo.php
PHP.ini values
http://php.net/manual/en/ini.list.php

Sunday, November 20, 2016

How can I add captcha in my contact form in PHP?

By distinguishing between humans and automated computer programs, CAPTCHA offers safety and security in a number of ways. Why use CAPTCHA:
1) Protecting Registration Forms in Websites
2) Preventing Spam Comments
3) Making Online Shopping More Secure
4) Protecting Email Accounts
It is very easy to implement a Captcha in any html forms using php. you can go through any of below mention links to implement it.
Happy coding.

Friday, November 18, 2016

Automatic www/non-www URL handling

When you set up a website, there are two ways people can access it: www.yourdomain.com, or just yourdomain.com. This creates a couple of problems. First, unless you've set the site's cookie domain to .yourdomain.com, when someone logs in at yourdomain.com they won't be logged in at www.yourdomain.com -- which leaves them confused if they end up on the other version from a link they found somewhere. Secondly, search engines don't like the duplication.

The solution for this has always been to add redirection into the .htaccess file to redirect www URLs to their non-www equivalents or vice versa. Many of you have done this in WSN using the extra .htaccess content option in the SEO settings.

The latest WSN 10 beta adds automatic handling of this situation, whenever URL rewriting is enabled on a site. It checks the directory url value to see whether you want www or not, so you can change it either by changing the directory URL at Admin -> Settings -> System Configuation or by changing the selection at Admin -> Settings -> SEO -> Domain Format (which will in turn update your directory URL for you). WSN writes the appropriate redirection rules to the .htaccess automatically.

Having a duplicate redirection (one you set in the extra .htaccess content as well as the new automatic redirection) shouldn't be a problem, works fine in my tests, so you don't have to change anything -- but can feel free to remove any redirection you added whenever you're ready, for clarity.

CentOS Web Panel (CWP) features and services


CentOS Web Panel (CWP) is a free web panel to manage your Dedicated Server and Virtual Private Server. Basically it is a replicate of Cpanel with main features integrated for enhanced server management.

Here are our features and services at CentOS Web Panel:

***currently including Admin and Client panel***


CWP automatically installs full LAMP on your desired server featuring:
(apache,php, phpmyadmin, webmail, mailserver…)

What are the Installation and Configuration characteristics during Installation of CWP?
- Apache Web Server (Mod Security + OWASP rules optional)
- PHP 5.4 (suPHP, SuExec + PHP version switcher)
- MySQL/MariaDB + phpMyAdmin
- Postfix + Dovecot + roundcube webmail (Antivirus, Spamassassin optional)
- CSF Firewall
- File System Lock (no more website hacking, all your files are locked from changes)
- Backups (optional)
- AutoFixer for server configuration

3rd Party Aplications
- CloudLinux + CageFS + PHP Selector
- Softaculous – Script Installer (Free and Premium)

CentOS Web Panel (CWP)
- Setups Server for Web Hosting (websites like WordPress…)
- API for easier account management, and whmcs billing api
- NAT-ed version, support for NAT-ed IPs
- Free Hosting Module, account activation provisioning for sites that have a free hosting

Web Server
- Varnish Cache server (improve your server performances up to three times)
- Nginx Reverse Proxy (get you static files delivered in the fastest way)
- Compiles Apache from source (improves performance up to 15%)
- Apache reCompiler + Additional modules installation with one click
- Apache server status, configuration
- Apache Redirects Manager
- Edit apache vhosts, vhosts templates, include configuration
- Rebuild all apache Virtual hosts with one click
- suPHP & suExec (improved security)
- Mod Security + OWASP rules (one click install, easy management)
- Tomcat 8 server management & install in one click
- DoS protection from the Slow-Loris attacks
- Apache with spamhaus RBL protection (Protecting http PUT,POST,CONNECT)
- Perl cgi script support

PHP
- Compiles PHP from source (improves up to 20% on performances)
- PHP Switcher (switch between PHP versions like: 5.2, 5.3, 5.4, 5.5, 5.6, 7.x)
- PHP Selector select PHP version per user or per folder (PHP 4.4, 5.2, 5.3, 5.4, 5.5, 5.6, 7.x)
- Simple php editor
- Simple php.ini generator in the users panel
- PHP addons with one click
- PHP.ini editor & PHP info & List modules
- php.ini per user account (you can add changes in /home/USER/php.ini)
- FFMPEG, For Video streaming websites)
- CloudLinux + PHP Selector
- ioncube, php-imap …

User Management
- Add, List, Edit adn Remove Users
- User Monitoring (list users open files, listening sockets…)
- Shell access management
- User Limit Managment (Quota and Inodes)
- Limit Processes: The maximum available number of processes per account.
- Limit Open Files: The maximum available number of open files per account.
- User FTP & File Manager
- CloudLinux + CageFS
- Dedicated IP per account

DNS
- FreeDNS (Free DNS Server, no need for additional IPs)
- Add, Edit, List and Remove DNS zones
- Edit nameserver IPs
- DNS zone template editor
- New Easy DNS Zone Manager (with ajax)
- New DNS Zone list with Additional resolving information using google (also checking rDNS, nameservers….)

Email
- postfix & dovecot
- MailBoxes, Alias
- Roundcube webmail
- Postfix Mail queue manager
- rDNS Checker Module (check you rDNS records)
- AntiSPAM (Spamhaus cronjob)
- SpamAssassin, RBL checking, AmaViS, ClamAV, OpenDKIM
- SPF & DKIM Integration
- Re-Build Postfix/Dovecot Mail server with (AntiVirus, AntiSpam Protection)
- Email Auto Responder
- Email Explore, read all mailboxes from one location.
- Mail Routing (local or remote MX Exchanger)

System
- Hardware Information (CPU core and clock info)
- Memory Information (Memory usage info)
- Disk Info (Detailed Disk status)
- Software Info (kernel version, uptime…)
- Services Status (Quick services restart eg. Apache, FTP,Mail…)
- ChkConfig Manager (Quick list and manage your services)
- Services Monitor (automatic restart of services and email notifications)
- Network port usage
- Network configuration
- SSHD configuration
- Auto-Fixer (checks important configuration and tries to auto-fix issues)

Monitoring
- Live Monitoring (Monitor services eg. top, apache stats, mysql…)
- Use Java SSH Terminal/Console within panel
- Services Configuration (eg. Apache, PHP, MySQL…)
- Run shell commands in screen/background

Security
- CSF Firewall (Best Linux Firewall)
- SSL generator
- SSL Certificate Manager (quick and easy installation of SSL Certs)
- Letsencrypt, Free SSL certificates for all your domains
- CloudLinux + CageFS
- CSF/LFD BruteForce protection
- IP access control
- Mod Security + OWASP rules (one click install, easy management)
- DoS protection from the Slow-Loris attacks (for Apache)
- File System Lock (no more website hacking, all your files are locked from changes)
- PHP now shows the script name and path in top or process lists
- Apache is limiting number of php processes per user
- Automated Backups
- Hide system and other user processes

SQL
- MySQL Database Managment
- Add local or remote access user
- Live Monitor MySQL process list
- Create, Remove database
- Add additional users per database
- MySQL server configuration
- PhpMyAdmin (database managment)
- PostgreSQL, phpPgAdmin Support
- Remote MySQL support (remove mysql load from web server)
- MongoDB Manager/Installer

Additional options
- TeamSpeak 3 Manager (Voice servers)
- Shoutcast Manager (Shoutcast streaming servers)
- Auto-update
- Backup manager
- File Manager
- Scripts folder “/scripts” over 15+ scripts
- Virtual FTP users per domain
- cPanel Account Migration (restores files, databases and database users)
- Torrent SeedBox (one click install with Deluge WebGU)
- SSH key generator

and many many other options…

Thursday, November 17, 2016

A Day in the Life of a Programmer







The reality of being a programmer is somehow portrayed on this GIF. This situation merely happens when a newbie programmer seeks help from a fellow programmer.
Sometimes, it is also a challenge for an expert programmer to extend help to our fellow programmer; but yes, reaching out a hand should never be a worry.
I hope you can relate on this GIF, and gracefully extend your expertise to help or teach those who are in need of you.
Though programming is hard to understand and to solve, it is always fun; and can even be more enjoyable with hands helping each other.

Wednesday, November 16, 2016

Tuesday, November 15, 2016

CENTOS WEB PANEL – SYSTEM REQUIREMENTS



Make sure that you complete the following tasks before you start the installation process:

1. Setup Hostname

This hostname cannot be the same as any domain that is on your server (for example, if example.com is a domain on your server, use hostname.example.com as your fully qualified hostname).

You can use the following command for hostname setup eg. srv1.example.com
hostname srv1.example.com
2. Setup Server IP addresses

  • Define additional IP address, subnet address, and default gateway IP address for your server — your service provider can provide you with this information.


3. Software Requirements

  • You must have a clean/fresh installation of supported operating systems:
  • CentOS 6, RedHat 6 or CloudLinux 6, MINIMAL installation and English version only!
  • CentOS 7 is NOT supported.


4. Hardware Requirements

  • 32 bit operating systems require a minimum of 512 MB RAM
  • 64 bit operating systems require a minimum of 1024 MB RAM (recommended)
  • Recommended System: 4 GB+ RAM so you would have the full functionality such as Anti-virus scan of emails.

Monday, November 14, 2016

Host Multiple Domains on One Server/IP with Apache or nginx

Configure Apache/Nginx to host multiple websites
If you are on dedicated or VPS like DigitalOcean or any other server and planning to host multiple websites on a single server then here is how you can do it either with Apache HTTP or Nginx web server.
This assumes you have already mapped DNS to your host, like following two domains I have mapped to DigitalOcean.
  1. bestflare.com
  2. usefulread.com
Before you implement this, to give you an idea how it works. The concept to have multiple websites on a single instance is called Virtual Server. Virtual server configuration is defined within web server configuration and based on server/IP address, a request is getting forwarded to respective Document Root.

Configure Virtual Host in Apache to host multiple domains

  • Login into Apache HTTP Server
  • Go to apache conf location. ( in default installation – you will find it here /etc/httpd/conf/httpd.conf)
  • Take a backup of httpd.conf file
  • Create a VirtualHost container like below I have done for two domains.
<VirtualHost *:80>
ServerAdmin hello@chandank.com
   DocumentRoot /opt/htdocs/bestflare
   ServerName bestflare.com
   ErrorLog logs/bestflare.com-error_log
   CustomLog logs/bestflare.com-access_log common
</VirtualHost>
<VirtualHost *:80>
   ServerAdmin hello@chandank.com
   DocumentRoot /opt/htdocs/usefulread
   ServerName usefulread.com
   ErrorLog logs/usefulread.com-error_log
   CustomLog logs/usefulread.com-access_log common
</VirtualHost>
Note: Change the value for ServerAdmin, DocumentRoot, ServerName, ErrorLog, CustomLog based on your requirement.
  • Restart Apache HTTP and test both urls.

Configure Virtual Host in Nginx to host multiple domains

  • Login into Nginx server
  • Go to virtual.conf location (in default location – you will find it here /etc/nginx/conf.d/virtual.conf)
  • Take a backup of virtual.conf
  • Create server block for both URL’s as I have shown below.
server {
listen 80;
   root /opt/htdocs/bestflare;
index index.html index.htm;
   server_name bestflare.com;
   location / {
       try_files $uri $uri/ =404;
   }
}
server {
   listen 80;
   root /opt/htdocs/usefulread;
   index index.html index.htm;
   server_name usefulread.com;
   location / {
       try_files $uri $uri/ =404;
   }
}
Note: Change the value for root, server_name based on your requirement.
  • Restart Nginx and test both URL’s

Why We Love OpenCart

1. OpenCart is Free

2. Open-Source, Customizable and Flexible

3. Responsive Design

4. Free and Paid Functionality Extensions

5. SEO Ready

6. Analytics, Statistics and Advanced Data Tracking

7. Secure Payment and Shipping Methods

8. Multi-Store and Multi-Lingual Capabilities

9. Coupons, Specials, Reward Points and Gift Vouchers

10. Large User Base and Community


Sunday, November 13, 2016

Saturday, November 12, 2016

How TO Setup Remote Backup CWP


Instructions for adding ssh pub key on the remote backup server.
Replace the USERNAME with the existing username on the remote server, it’s not recommended to use the root user.
This instructions are only for the backups on the remote server.
To Enable remote backup in your CWP.admin go to CWP Settings –> Backup Configuration
You will need to enter the login details into the fields of “Remote Backup Settings”
Don’t forget to generate the new remote access Key.
On the remote backup server you need to add the pub key
cd ~USERNAME
mkdir .ssh
chmod 700 .ssh
nano .ssh/authorized_keys

Now add all content from the file /root/.ssh/backup/id_rsa.pub to .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
chown -R USERNAME:USERNAME .ssh
chown USERNAME:USERNAME .ssh/authorized_keys
You can use test connection button in CWP.admin to check connectivity with the remote backup server.
To connect and check content on the backup server you can use ssh key access:
ssh USERNAME@SERVER-IP -i /root/.ssh/backup/id_rsa

Thursday, November 10, 2016

vQmod Scripts and Syntax


Scripting

The Golden Rules

First things to set in your mind...
  • The <search> tag can only be a single line, though doesn't have to be a whole line, as partial matches work too. You should learn how to use the offset attribute to properly encompass all needed lines, but that doesn't mean you should encompass many lines. Instead of trying to include many lines from top down, try starting at the bottom and finding lines going up.
  • Less is more! Whenever possible, try to match the smallest, yet still unique part of the code. That will improve the chances of being more future-resistant and avoid breaking other mods that may have changes close to yours.
  • Pay attention to all the attribute options for each tag. There is a lot of power that is overlooked by people skimming over the syntax

How to make vQmod Scripts

vQmod currently uses an xml formatted parser by default but other parsers can be created in the future as well.
A simple replace script example looks like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <modification
                xmlns="https://github.com/vqmod/vqmod"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="https://github.com/vqmod/vqmod https://raw.githubusercontent.com/vqmod/vqmod/master/vqmod.xsd"
                >
        <id>Replace 123 with ABC</id>
        <version>1.0.0</version>
        <vqmver>2.5.0</vqmver>
        <author>qphoria</author>

        <file name="relative/path/myfile.php">
            <operation>
                <search position="replace"><![CDATA[
                $var = '123';
                ]]></search>

                <add><![CDATA[
                $var = 'ABC';
                ]]></add>
            </operation>
        </file> 
    </modification>
This script simply changes the value of a variable of "myfile.php" from "123" to "ABC" before it gets included.

Syntax

vQmod supports a number of parameters:
modification
  • This is the highest level of the file and there can only be one
modification / id
  • This is the name and description of the mod.
  • Format: Free form text. (Informational)
modification / version
  • This is the version of the mod.
  • Format: Number and Decimal (1.0.0) (Informational)
modification / vqmver
  • This is the minimum required version of VirtualQMod needed for the script to work.
  • Format: Number and Decimal (1.0.0) (Informational)
  • A required="true" attribute can be optionally set to disable the script if it doesn't meet the required version (Added from 2.4.0)
modification / author
  • This is the author of the mod.
  • Format: Free form text (Informational)
modification / file
  • This is the name of the file to modify
  • Requires attribute "name" as relative filename to the location of the main index.php file (e.g. catalog/controller/product/product.php). Can be delimited with commas to apply to multiple files at once (2.3.0 +) Name attribute supports a wildcard (*) character for dynamic path building. Each wildcard is limited to a single directory level.
     - catalog/view/theme/*/template/product/product.tpl
     - catalog/view/theme/*/*/product/product.tpl
     - etc
  • There can be multiple file tags in a single xml file. Each file can have its own set of operations
  • Optional attribute "path" can be used to prefix file name's to avoid repetition. This is simply prepended to the file names and no validation is attempted (2.3.0 +)
  • Optional attribute "error" set to log|skip|abort
    • skip means it will simply ignore this file.
    • log is the same as skip, but logs the error. (default)
    • abort means to log the error and cancel the remaining operations in that particular xml script. It does not revert changes to other files already made in that script and doesn't stop other xml files.
    • Wildcard paths will ignore the "error" attribute completely
modification / file / operation
  • This is the wrapper of the actual operation occurring.
  • There can be multiple operations to the same file tag.
  • Optional attribute "info" suggested. May be used by vQmod/vQmod Manager for OC in the future but at present isn't used. This is however ideal for making files easier to read
  • Optional attribute "error" set to skip|log|abort
    • skip means all other operations will be applied even if one cannot. There will be no error in the log.
    • log is the same as skip, but logs the error.
    • abort means to log the error and revert to the original source. (default)
modification / file / operation / ignoreif
  • This allows for a search to be made on a file. This search works across multiple lines not just single lines. This tag is optional and if the search is found, the operation is skipped
    • Optional attribute "regex' set to true|false. Format of data inside tag then requires delimiters for regex as it uses the standard preg_match method for php. This attribute defaults to false
modification / file / operation / search
  • This is the first required step of the operation.
  • Can only search single lines, both fully and partially. But offset and index attributes will assist.
  • Automatically trims whitespace and linebreaks
  • One <search> tag per <operation> tag
  • Use CDATA tags to wrap code.
  • Required attribute "position" set to before|after|replace|top|bottom|all|ibefore|iafter.
    • replace will replace the data in the search tag with the data in the add tag. (default)
    • before will insert the add data before the search data
    • after will insert the add data after the search data
    • top will insert the add data at the top of the file. The search data is ignored.
    • bottom will insert the add data at the bottom of the file. The search data is ignored.
    • all will completely replace all the code in the file with the add data. The search data is ignored. Deprecated as of 2.4.0
    • ibefore will insert the code before the search inline instead of the line before
    • iafter will insert the code afterthe search inline instead of the line before
  • Optional attribute "offset" to work with the position
    • if the search position is before and offset 3 it will put the add data before the line, 3 lines above the searched line
    • if the search position is after and offset 3 it will put the add data after the line, 3 lines below the searched line
    • if the search position is replace and offset 3 it will remove the code from the search line and the next 3 lines and replace it with the add data
    • if the search position is top and offset 3 it will put the code before the line, 3 lines below the top of the file
    • if the search position is bottom and offset 3 it will put the code after the line, 3 lines above the bottom of the file
  • Optional attribute "index" for specifying which instances of a search tag should be acted on
    • If the search string is "echo" and there are 5 echos in the file, but only want to replace the 1st and 3rd, use index="1,3"
    • Comma delimited for multiple instances starting with "1"
    • Leave out or set to FALSE to replace all instances. (default)
  • Optional attribute "regex" for specifying whether or not to search a regex pattern.
    • If true, the search data should be a valid regex pattern
    • Leave out or set to FALSE to use normal string search (default)
    • Does not apply to ibefore and iafter
  • Optional attribute "trim" set to true|false
    • true will trim away whitespace and linebreaks.
    • leave out or set to true to trim. (default is true)
modification / file / operation / add
  • This is the second required step of the operation.
  • Can be multiple lines
  • One <add> tag per <operation> tag.
  • Location of added data depends on the position attribute of the search command.
  • Use CDATA tags to wrap code.
  • NEW IN 2.6.0<add> tag now supports all the search attributes.
  • Attributes in the <add> tag will override attributes in the <search> tag.
  • Optional attribute "position" set to before|after|replace|top|bottom|ibefore|iafter.
    • replace will replace the data in the search tag with the data in the add tag. (default)
    • before will insert the add data before the search data
    • after will insert the add data after the search data
    • top will insert the add data at the top of the file. The search data is ignored.
    • bottom will insert the add data at the bottom of the file. The search data is ignored.
    • ibefore will insert the code before the search inline instead of the line before
    • iafter will insert the code afterthe search inline instead of the line before
  • Optional attribute "offset" to work with the position
    • if the search position is before and offset 3 it will put the add data before the line, 3 lines above the searched line
    • if the search position is after and offset 3 it will put the add data after the line, 3 lines below the searched line
    • if the search position is replace and offset 3 it will remove the code from the search line and the next 3 lines and replace it with the add data
    • if the search position is top and offset 3 it will put the code before the line, 3 lines below the top of the file
    • if the search position is bottom and offset 3 it will put the code after the line, 3 lines above the bottom of the file
  • Optional attribute "index" for specifying which instances of a search tag should be acted on
    • If the search string is "echo" and there are 5 echos in the file, but only want to replace the 1st and 3rd, use index="1,3"
    • Comma delimited for multiple instances starting with "1"
    • Leave out or set to FALSE to replace all instances. (default)
  • Optional attribute "regex" for specifying whether or not to search a regex pattern.
    • If true, the search data should be a valid regex pattern
    • Leave out or set to FALSE to use normal string search (default)
    • Does not apply to ibefore and iafter
  • Optional attribute "trim" set to true|false
    • true will trim away whitespace and linebreaks.
    • leave out or set to true to trim. (default is true)
<![CDATA[ ]]>
  • These are called CDATA tags and they are used by xml to specify that the data between should not be evaluated. It's recommended you always use these for data between the and operation tags