- PHP Source: http://museum.php.net/php5/php-5.3.5.tar.gz
- File header:
config.w32.h
- Microsoft Visual Studio 2010
- XAMPP
Output: php_huypv.dll
Bị lỗi Error C2371: 'socklen_t' : redefinition thì vào file php.h, tìm socketlen_t comment 3 dòng dưới đây:
#ifndef HAVE_SOCKLEN_T
typedef unsigned int socklen_t;
#endif
Viết code C++ để có được thư viện DLL chứa các hàm PHP sau:
1. Hàm không tham số, trả về 1 xâu định trước
function getHello() {
return 'Hello, huypv';
}
2. Hàm có 1 tham số xâu, trả về chính xâu đó
function getString($str) {
return $str;
}
3. Hàm có 1 tham số xâu, 1 tham số boolean tùy chọn, trả về xâu đó hoặc xâu đó kết hợp với 1 xâu đã định nghĩa trước
function getMyString($str, $append = false) {
$ret = $append ? ('huypv: ' . $str) : $str;
return $ret;
}
4. Hàm không giới hạn tham số, trả về xâu nối các tham số string
5. Hàm không tham số, trả về một mảng
function getArray() {
return array(1, 'Hai', 'ba' => 'Ba', 'bon' => array('Tu', '4'));
}
6. Hàm không tham số, in ra xâu tùy biến được trong php.ini (có giá trị mặc định sẵn nếu không thiết lập)
function printMyIniString() {
echo ini_get('huypv.mobile');
}
7. Hàm có 1 tham số mảng, in ra các giá trị là string trong mảng đó.
function printMyArray($arr) {
foreach ($arr as $element) {
if (is_string($element)) echo $element;
}
}
Nguồn tham khảo:
- http://www.dreamincode.net/forums/topic/244215-introduction-to-creating-a-php-extension-for-windows/
- http://stackoverflow.com/questions/3606125/convert-zval-to-char
- http://docstore.mik.ua/orelly/webprog/php/ch14_07.htm
- http://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend/