Skip to content

Commit 324c914

Browse files
committed
Update Example
1 parent 27f0043 commit 324c914

21 files changed

+667
-32
lines changed

examples/callback_example.php

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,56 @@
11
<?php
22

3-
$text = $sanitizer->callback(function ($value) {
3+
declare(strict_types=1);
4+
5+
require_once __DIR__ . '/../src/Utils.php';
6+
require_once __DIR__ . '/../src/Sanitization.php';
7+
8+
use PhpSanitization\PhpSanitization\Sanitization;
9+
use PhpSanitization\PhpSanitization\Utils;
10+
11+
// Initialize the sanitizer with the Utils dependency
12+
$sanitizer = new Sanitization(new Utils());
13+
14+
// Example 1: Simple callback that returns the input value
15+
echo "<h3>Example 1: Simple callback</h3>";
16+
$result1 = $sanitizer->callback(function ($value) {
417
return $value;
518
}, "This is a value");
19+
echo "Result: $result1<br><br>";
20+
21+
// Example 2: Callback that modifies data and returns it
22+
echo "<h3>Example 2: Process data with callback</h3>";
23+
$result2 = $sanitizer->callback(function ($data) {
24+
// First sanitize the data
25+
$sanitized = strip_tags($data);
26+
// Then transform it to uppercase
27+
return strtoupper($sanitized);
28+
}, "<p>This text will be <b>sanitized</b> and uppercased</p>");
29+
echo "Result: $result2<br><br>";
30+
31+
// Example 3: Callback with no parameters
32+
echo "<h3>Example 3: Callback without parameters</h3>";
33+
$result3 = $sanitizer->callback(function () {
34+
return "Generated at: " . date('Y-m-d H:i:s');
35+
});
36+
echo "Result: $result3<br><br>";
37+
38+
// Example 4: Method chaining with callback
39+
echo "<h3>Example 4: Method chaining</h3>";
40+
try {
41+
$result4 = $sanitizer
42+
->setData("<script>alert('XSS');</script>")
43+
->useSanitize();
44+
45+
echo "Sanitized data: $result4<br>";
46+
47+
// Process the result with a callback
48+
$processed = $sanitizer->callback(function ($data) {
49+
return "Processed result: {$data}";
50+
}, $result4);
51+
52+
echo "$processed<br>";
53+
} catch (\InvalidArgumentException $e) {
54+
echo "Error: " . $e->getMessage();
55+
}
656

7-
echo $text;

examples/data_getter_example.php

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,38 @@
11
<?php
22

3-
echo $sanitizer->getData();
3+
declare(strict_types=1);
4+
5+
require_once __DIR__ . '/../src/Utils.php';
6+
require_once __DIR__ . '/../src/Sanitization.php';
7+
8+
use PhpSanitization\PhpSanitization\Sanitization;
9+
use PhpSanitization\PhpSanitization\Utils;
10+
11+
// Initialize the sanitizer with the Utils dependency
12+
$sanitizer = new Sanitization(new Utils());
13+
14+
// Set some data first so we have something to retrieve
15+
$sanitizer->setData("This is sample data set with setData() method");
16+
17+
// Basic usage of getData
18+
echo "<h3>Basic getData() usage:</h3>";
19+
echo "Retrieved data: " . $sanitizer->getData() . "<br><br>";
20+
21+
// Demonstrate the type-safety of our modernized library
22+
echo "<h3>Type safety demonstration:</h3>";
23+
24+
// Set different types of data
25+
$sanitizer->setData("<b>HTML string</b>");
26+
echo "HTML string: " . $sanitizer->getData() . "<br>";
27+
28+
$sanitizer->setData([1, 2, 3, 4, 5]);
29+
echo "Array data: ";
30+
print_r($sanitizer->getData());
31+
echo "<br><br>";
32+
33+
// Demonstrate chained method calls
34+
echo "<h3>Method chaining:</h3>";
35+
echo $sanitizer
36+
->setData("<script>alert('getData works!');</script>")
37+
->useSanitize();
38+

examples/data_setter_example.php

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,38 @@
11
<?php
22

3+
declare(strict_types=1);
4+
5+
require_once __DIR__ . '/../src/Utils.php';
6+
require_once __DIR__ . '/../src/Sanitization.php';
7+
8+
use PhpSanitization\PhpSanitization\Sanitization;
9+
use PhpSanitization\PhpSanitization\Utils;
10+
11+
// Initialize the sanitizer with the Utils dependency
12+
$sanitizer = new Sanitization(new Utils());
13+
14+
// Basic data setting example
15+
echo "<h3>Basic Data Setting:</h3>";
316
$sanitizer->setData("Lorem ipsum dolor sit amet.");
17+
echo 'Data has been set to: ' . $sanitizer->getData() . '<br><br>';
18+
19+
// Demonstrate method chaining (new feature in the modernized library)
20+
echo "<h3>Method Chaining:</h3>";
21+
22+
// Example 1: Set data and immediately sanitize it
23+
$result1 = $sanitizer
24+
->setData("<script>alert('XSS');</script>")
25+
->useSanitize();
26+
27+
echo "Example 1 - Set and sanitize: " . $result1 . "<br><br>";
28+
29+
// Example 2: Multiple operations in a chain
30+
$maliciousData = "<a href='javascript:alert(\"XSS\")'>Click me</a>";
31+
echo "Original data: " . htmlspecialchars($maliciousData) . "<br>";
32+
33+
$result2 = $sanitizer
34+
->setData($maliciousData)
35+
->useSanitize();
36+
37+
echo "Sanitized with method chaining: " . $result2 . "<br><br>";
438

5-
echo '$data has been set to [Lorem ipsum dolor sit amet.]';

examples/email_validate_example.php

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,30 @@
11
<?php
22

3-
echo $sanitizer->validateEmail("[email protected]") ? "true" : "false";
3+
declare(strict_types=1);
4+
5+
require_once __DIR__ . '/../src/Utils.php';
6+
require_once __DIR__ . '/../src/Sanitization.php';
7+
8+
use PhpSanitization\PhpSanitization\Sanitization;
9+
use PhpSanitization\PhpSanitization\Utils;
10+
11+
// Initialize the sanitizer with the Utils dependency
12+
$sanitizer = new Sanitization(new Utils());
13+
14+
// Basic email validation (uses default provider list and DNS checking)
15+
$result1 = $sanitizer->validateEmail("[email protected]");
16+
echo "Basic validation: ";
17+
echo $result1 ? "Valid" : "Invalid";
18+
echo "<br>";
19+
20+
// Email validation with custom provider list
21+
$customProviders = ['company.com', 'myorg.org'];
22+
$result2 = $sanitizer->validateEmail("[email protected]", $customProviders);
23+
echo "Custom provider validation: ";
24+
echo $result2 ? "Valid" : "Invalid";
25+
echo "<br>";
26+
27+
// Email validation without DNS checking (useful for testing)
28+
$result3 = $sanitizer->validateEmail("[email protected]", [], false);
29+
echo "Validation without DNS checking: ";
30+
echo $result3 ? "Valid" : "Invalid";

examples/escape_sql_query_example.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
11
<?php
22

3-
echo $sanitizer->useEscape("SELECT * FROM `users` WHERE `username` = 'admin';");
3+
declare(strict_types=1);
4+
5+
require_once __DIR__ . '/../src/Utils.php';
6+
require_once __DIR__ . '/../src/Sanitization.php';
7+
8+
use PhpSanitization\PhpSanitization\Sanitization;
9+
use PhpSanitization\PhpSanitization\Utils;
10+
11+
// Initialize the sanitizer with the Utils dependency
12+
$sanitizer = new Sanitization(new Utils());
13+
14+
// Escape a SQL query to prevent SQL injection
15+
$result = $sanitizer->useEscape("SELECT * FROM `users` WHERE `username` = 'admin'");
16+
echo $result; // Will output the SQL with properly escaped quotes

examples/index.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
<?php
2+
declare(strict_types=1);
23

3-
include_once '../src/Sanitization.php';
4-
include_once '../src/Utils.php';
4+
require_once __DIR__ . '/../src/Utils.php';
5+
require_once __DIR__ . '/../src/Sanitization.php';
56

67
use PhpSanitization\PhpSanitization\Sanitization;
78
use PhpSanitization\PhpSanitization\Utils;
8-
9-
$sanitizer = new Sanitization(new Utils);
109
?>
1110

1211
<!DOCTYPE html>
@@ -96,6 +95,10 @@
9695
<h2>Callback Function:</h2>
9796

9897
<p><b>Output:</b> <?php include_once './callback_example.php'; ?></p>
98+
99+
<h2>Recursive Array Sanitization (New in v2.0):</h2>
100+
101+
<p><b>Output:</b> <?php include_once './recursive_array_sanitize_example.php'; ?></p>
99102
</body>
100103

101104
</html>

examples/is_associative_exmaple.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
<?php
22

3+
declare(strict_types=1);
4+
5+
require_once __DIR__ . '/../src/Utils.php';
6+
require_once __DIR__ . '/../src/Sanitization.php';
7+
8+
use PhpSanitization\PhpSanitization\Utils;
9+
310
$array = ["key" => "value"];
411

5-
echo $sanitizer->isAssociative($array) ? "true" : "fale";
12+
$utils = new Utils();
13+
14+
echo $utils->isAssociative($array) ? "true" : "false";

examples/is_empty_example.php

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
<?php
22

3-
$variable = "this is a text";
3+
declare(strict_types=1);
4+
5+
require_once __DIR__ . '/../src/Utils.php';
6+
require_once __DIR__ . '/../src/Sanitization.php';
7+
8+
use PhpSanitization\PhpSanitization\Utils;
9+
10+
// Create the Utils instance directly
11+
$utils = new Utils();
12+
13+
// Test different types of values for emptiness
14+
$nonEmptyString = "this is a text";
15+
$emptyString = "";
16+
$whitespaceString = " \t \n";
17+
$emptyArray = [];
18+
$nonEmptyArray = [1, 2, 3];
19+
20+
// Check each value type
21+
echo "Non-empty string: " . ($utils->isEmpty($nonEmptyString) ? "empty" : "not empty") . "<br>";
22+
echo "Empty string: " . ($utils->isEmpty($emptyString) ? "empty" : "not empty") . "<br>";
23+
echo "Whitespace string: " . ($utils->isEmpty($whitespaceString) ? "empty" : "not empty") . "<br>";
24+
echo "Empty array: " . ($utils->isEmpty($emptyArray) ? "empty" : "not empty") . "<br>";
25+
echo "Non-empty array: " . ($utils->isEmpty($nonEmptyArray) ? "empty" : "not empty") . "<br>";
426

5-
echo $sanitizer->isEmpty($variable) ? "true" : "false";

examples/is_valid_example.php

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,55 @@
11
<?php
22

3-
echo $sanitizer->isValid("127.0.0.1", FILTER_VALIDATE_IP) ? "true" : "false";
3+
declare(strict_types=1);
4+
5+
require_once __DIR__ . '/../src/Utils.php';
6+
require_once __DIR__ . '/../src/Sanitization.php';
7+
8+
use PhpSanitization\PhpSanitization\Sanitization;
9+
use PhpSanitization\PhpSanitization\Utils;
10+
11+
// Initialize the sanitizer with the Utils dependency
12+
$sanitizer = new Sanitization(new Utils());
13+
14+
// Define test data
15+
$tests = [
16+
'ip' => [
17+
'value' => '127.0.0.1',
18+
'filter' => FILTER_VALIDATE_IP
19+
],
20+
'email' => [
21+
'value' => '[email protected]',
22+
'filter' => FILTER_VALIDATE_EMAIL
23+
],
24+
'url' => [
25+
'value' => 'https://github.com/farisc0de',
26+
'filter' => FILTER_VALIDATE_URL
27+
],
28+
'int' => [
29+
'value' => '42',
30+
'filter' => FILTER_VALIDATE_INT
31+
],
32+
'invalid_ip' => [
33+
'value' => '999.999.999.999',
34+
'filter' => FILTER_VALIDATE_IP
35+
]
36+
];
37+
38+
echo "<h3>Validation Examples:</h3>";
39+
foreach ($tests as $type => $test) {
40+
// Use our modernized isValid method to check various inputs
41+
$result = $sanitizer->isValid($test['value'], $test['filter']);
42+
echo "Validating $type ({$test['value']}): " . ($result ? "<span style='color:green'>Valid</span>" : "<span style='color:red'>Invalid</span>") . "<br>";
43+
}
44+
45+
// Example of using the enhanced email validation instead
46+
echo "<h3>Enhanced Email Validation:</h3>";
47+
$emailToCheck = "[email protected]";
48+
$result = $sanitizer->validateEmail($emailToCheck);
49+
echo "Validating email ($emailToCheck) with DNS check: " . ($result ? "<span style='color:green'>Valid</span>" : "<span style='color:red'>Invalid</span>") . "<br>";
50+
51+
// Demonstrate with custom providers
52+
$customProviders = ['example.com', 'github.com'];
53+
$result2 = $sanitizer->validateEmail($emailToCheck, $customProviders);
54+
echo "Validating with custom providers: " . ($result2 ? "<span style='color:green'>Valid</span>" : "<span style='color:red'>Invalid</span>") . "<br>";
55+

examples/preg_replace_example.php

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,56 @@
11
<?php
22

3-
echo $sanitizer->usePregReplace("/([A-Z])\w+/", "This is a Text");
3+
declare(strict_types=1);
4+
5+
require_once __DIR__ . '/../src/Utils.php';
6+
require_once __DIR__ . '/../src/Sanitization.php';
7+
8+
use PhpSanitization\PhpSanitization\Sanitization;
9+
use PhpSanitization\PhpSanitization\Utils;
10+
11+
// Initialize the sanitizer with the Utils dependency
12+
$sanitizer = new Sanitization(new Utils());
13+
14+
// Original text
15+
$originalText = "This is a Text with 123 numbers and special ch@racters!";
16+
echo "<h3>Original Text:</h3>";
17+
echo "$originalText<br><br>";
18+
19+
// Since usePregReplace is now private, we demonstrate regex pattern replacement
20+
// using callbacks and PHP's native functions
21+
echo "<h3>Regular Expression Examples:</h3>";
22+
23+
// Example 1: Remove capital words
24+
$result1 = $sanitizer->callback(function($str) {
25+
return preg_replace('/([A-Z])\w+/', '', $str);
26+
}, $originalText);
27+
28+
echo "Example 1 - Remove capital words: $result1<br><br>";
29+
30+
// Example 2: Replace numbers with [NUM]
31+
$result2 = $sanitizer->callback(function($str) {
32+
return preg_replace('/\d+/', '[NUM]', $str);
33+
}, $originalText);
34+
35+
echo "Example 2 - Replace numbers: $result2<br><br>";
36+
37+
// Example 3: Replace special characters
38+
$result3 = $sanitizer->callback(function($str) {
39+
return preg_replace('/[^a-zA-Z0-9\s]/', '*', $str);
40+
}, $originalText);
41+
42+
echo "Example 3 - Replace special characters: $result3<br><br>";
43+
44+
// Example 4: Complex pattern matching
45+
$emailText = "Contact us at [email protected] or [email protected]";
46+
echo "<h3>Email Extraction:</h3>";
47+
echo "Original: $emailText<br>";
48+
49+
$result4 = $sanitizer->callback(function($str) {
50+
// Extract email addresses
51+
preg_match_all('/[\w._%+-]+@[\w.-]+\.[\w]{2,6}/', $str, $matches);
52+
return "Extracted emails: " . implode(", ", $matches[0]);
53+
}, $emailText);
54+
55+
echo "$result4<br>";
56+

0 commit comments

Comments
 (0)