Browse Source
Merge branch 'PHP-5.5' into PHP-5.6
Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5: updated NEWS Fixed bug #66431 Special Character via COM Interface (CP_UTF8)pull/668/head
4 changed files with 113 additions and 1 deletions
-
6ext/com_dotnet/com_olechar.c
-
6ext/com_dotnet/com_variant.c
-
42ext/com_dotnet/tests/bug66431_0.phpt
-
60ext/com_dotnet/tests/bug66431_1.phpt
@ -0,0 +1,42 @@ |
|||
--TEST-- |
|||
Bug #66431 Special Character via COM Interface (CP_UTF8), Scripting.FileSystemObject |
|||
--SKIPIF-- |
|||
<?php |
|||
if (!extension_loaded("com_dotnet")){ echo "skip COM/.Net support not present"; } |
|||
?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
$text= "Xin chào cộng đồng PHP"; |
|||
$fpath = str_replace("/", "\\", dirname(__FILE__) . "/bug66431.txt"); |
|||
|
|||
$fso = new COM("Scripting.FileSystemObject"); |
|||
$fh = $fso->OpenTextFile($fpath, 2, true); |
|||
$fh->Write($text); |
|||
$fh->Close(); |
|||
|
|||
$check_text = file_get_contents($fpath); |
|||
|
|||
$result = ($check_text == $text); |
|||
|
|||
var_dump($result); |
|||
|
|||
if (!$result) { |
|||
echo "Expected: '$check_text'\n"; |
|||
echo "Have: '$text'\n"; |
|||
} |
|||
|
|||
?> |
|||
===DONE=== |
|||
--CLEAN-- |
|||
<?php |
|||
|
|||
$fpath = str_replace("/", "\\", dirname(__FILE__) . "/bug66431.txt"); |
|||
|
|||
if (file_exists($fpath)) { |
|||
unlink($fpath); |
|||
} |
|||
?> |
|||
--EXPECT-- |
|||
bool(true) |
|||
===DONE=== |
|||
@ -0,0 +1,60 @@ |
|||
--TEST-- |
|||
Bug #66431 Special Character via COM Interface (CP_UTF8), Application.Word |
|||
--SKIPIF-- |
|||
<?php |
|||
if (!extension_loaded("com_dotnet")){ echo "skip COM/.Net support not present"; } |
|||
|
|||
try { |
|||
new COM("word.application", NULL, CP_UTF8); |
|||
} catch (Exception $e) { |
|||
die('skip ' . $e->getMessage(); |
|||
} |
|||
|
|||
?> |
|||
--FILE-- |
|||
<?php |
|||
|
|||
$text= "Xin chào cộng đồng PHP"; |
|||
$fpath = str_replace("/", "\\", dirname(__FILE__) . "/bug66431.docx"); |
|||
|
|||
com_load_typelib('Word.Application'); |
|||
|
|||
$Wrd = new COM("word.application", NULL, CP_UTF8); |
|||
$Wrd->Documents->Add(); |
|||
$Wrd->Selection->TypeText($text); |
|||
$Wrd->ActiveDocument->SaveAs($fpath); |
|||
$Wrd->ActiveDocument->Close(false); |
|||
$Wrd->Application->Quit(); |
|||
unset($Wrd); |
|||
|
|||
$Wrd = new COM("word.application", NULL, CP_UTF8); |
|||
$Wrd->Documents->Open($fpath, NULL, false); |
|||
$check_text = $Wrd->ActiveDocument->Range($Wrd->ActiveDocument->Sentences(1)->Start, $Wrd->ActiveDocument->Sentences(1)->End)->Text; |
|||
$Wrd->ActiveDocument->Close(false); |
|||
$Wrd->Application->Quit(); |
|||
unset($Wrd); |
|||
|
|||
/* trim the returned text as we'll get windows eol from a word doc. */ |
|||
$result = (trim($check_text) == $text); |
|||
|
|||
var_dump($result); |
|||
|
|||
if (!$result) { |
|||
echo "Expected: '$check_text'\n"; |
|||
echo "Have: '$text'\n"; |
|||
} |
|||
|
|||
?> |
|||
===DONE=== |
|||
--CLEAN-- |
|||
<?php |
|||
|
|||
$fpath = str_replace("/", "\\", dirname(__FILE__) . "/bug66431.docx"); |
|||
|
|||
if (file_exists($fpath)) { |
|||
unlink($fpath); |
|||
} |
|||
?> |
|||
--EXPECT-- |
|||
bool(true) |
|||
===DONE=== |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue